Jacek Caban : kernel32: Support MUI_LANGUAGE_ID flag in EnumUILanguages.

Alexandre Julliard julliard at winehq.org
Wed Feb 13 15:30:40 CST 2019


Module: wine
Branch: master
Commit: 5bb421239771d759d3a2ce1e584def62a4abdaee
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=5bb421239771d759d3a2ce1e584def62a4abdaee

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Feb 13 13:47:58 2019 +0100

kernel32: Support MUI_LANGUAGE_ID flag in EnumUILanguages.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernel32/locale.c       | 4 ++--
 dlls/kernel32/tests/locale.c | 8 ++++++++
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/dlls/kernel32/locale.c b/dlls/kernel32/locale.c
index 9f539dd..eedb0be 100644
--- a/dlls/kernel32/locale.c
+++ b/dlls/kernel32/locale.c
@@ -4814,7 +4814,7 @@ BOOL WINAPI EnumUILanguagesA(UILANGUAGE_ENUMPROCA pUILangEnumProc, DWORD dwFlags
 	SetLastError(ERROR_INVALID_PARAMETER);
 	return FALSE;
     }
-    if(dwFlags) {
+    if(dwFlags & ~MUI_LANGUAGE_ID) {
 	SetLastError(ERROR_INVALID_FLAGS);
 	return FALSE;
     }
@@ -4843,7 +4843,7 @@ BOOL WINAPI EnumUILanguagesW(UILANGUAGE_ENUMPROCW pUILangEnumProc, DWORD dwFlags
 	SetLastError(ERROR_INVALID_PARAMETER);
 	return FALSE;
     }
-    if(dwFlags) {
+    if(dwFlags & ~MUI_LANGUAGE_ID) {
 	SetLastError(ERROR_INVALID_FLAGS);
 	return FALSE;
     }
diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
index 0c05311..126b08c 100644
--- a/dlls/kernel32/tests/locale.c
+++ b/dlls/kernel32/tests/locale.c
@@ -3762,6 +3762,14 @@ static void test_EnumUILanguageA(void)
   SetLastError(ERROR_SUCCESS);
   ret = pEnumUILanguagesA(luilocale_proc2A, 0, 0);
   ok(ret, "Expected ret != 0, got %d, error %d\n", ret, GetLastError());
+  ok(enumCount == 1, "enumCount = %u\n", enumCount);
+
+  enumCount = 0;
+  SetLastError(ERROR_SUCCESS);
+  ret = pEnumUILanguagesA(luilocale_proc2A, MUI_LANGUAGE_ID, 0);
+  ok(ret || broken(!ret && GetLastError() == ERROR_INVALID_FLAGS), /* winxp */
+     "Expected ret != 0, got %d, error %d\n", ret, GetLastError());
+  if (ret) ok(enumCount == 1, "enumCount = %u\n", enumCount);
 
   SetLastError(ERROR_SUCCESS);
   ret = pEnumUILanguagesA(NULL, 0, 0);




More information about the wine-cvs mailing list