Module: wine Branch: master Commit: 505406fc83b65dd1f9ebcbaabb582f0fabec1b0a URL: http://source.winehq.org/git/wine.git/?a=commit;h=505406fc83b65dd1f9ebcbaabb...
Author: Jacek Caban jacek@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@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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)); } }