Jacek Caban : kernel32: Fixed handling LOCALE_NAME_USER_DEFAULT in GetLocaleInfoEx.

Alexandre Julliard julliard at winehq.org
Mon Aug 29 11:07:22 CDT 2016


Module: wine
Branch: master
Commit: 505406fc83b65dd1f9ebcbaabb582f0fabec1b0a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=505406fc83b65dd1f9ebcbaabb582f0fabec1b0a

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Aug 26 22:13:17 2016 +0200

kernel32: Fixed handling LOCALE_NAME_USER_DEFAULT in GetLocaleInfoEx.

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

---

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

diff --git a/dlls/kernel32/locale.c b/dlls/kernel32/locale.c
index fefa373..b04d190 100644
--- a/dlls/kernel32/locale.c
+++ b/dlls/kernel32/locale.c
@@ -1726,7 +1726,7 @@ INT WINAPI GetLocaleInfoEx(LPCWSTR locale, LCTYPE info, LPWSTR buffer, INT len)
     if (!lcid) return 0;
 
     /* special handling for neutral locale names */
-    if (info == LOCALE_SNAME && strlenW(locale) == 2)
+    if (info == LOCALE_SNAME && locale && strlenW(locale) == 2)
     {
         if (len && len < 3)
         {
diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
index 7cb7859..701f8d7 100644
--- a/dlls/kernel32/tests/locale.c
+++ b/dlls/kernel32/tests/locale.c
@@ -4283,7 +4283,7 @@ static void test_IdnToUnicode(void)
 static void test_GetLocaleInfoEx(void)
 {
     static const WCHAR enW[] = {'e','n',0};
-    WCHAR bufferW[80];
+    WCHAR bufferW[80], buffer2[80];
     INT ret;
 
     if (!pGetLocaleInfoEx)
@@ -4354,6 +4354,12 @@ static void test_GetLocaleInfoEx(void)
             ok(!lstrcmpW(bufferW, ptr->name), "%s: got wrong LOCALE_SNAME %s\n", wine_dbgstr_w(ptr->name), wine_dbgstr_w(bufferW));
             ptr++;
         }
+
+        ret = pGetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT, LOCALE_SNAME, bufferW, sizeof(bufferW)/sizeof(WCHAR));
+        ok(ret && ret == lstrlenW(bufferW)+1, "got ret value %d\n", ret);
+        ret = GetLocaleInfoW(GetUserDefaultLCID(), LOCALE_SNAME, buffer2, sizeof(buffer2)/sizeof(WCHAR));
+        ok(ret && ret == lstrlenW(buffer2)+1, "got ret value %d\n", ret);
+        ok(!lstrcmpW(bufferW, buffer2), "LOCALE_SNAMEs don't match %s %s\n", wine_dbgstr_w(bufferW), wine_dbgstr_w(buffer2));
     }
 }
 




More information about the wine-cvs mailing list