diff --git a/dlls/kernel32/locale.c b/dlls/kernel32/locale.c index 5a6ff35b75b..d21a763e629 100644 --- a/dlls/kernel32/locale.c +++ b/dlls/kernel32/locale.c @@ -1812,7 +1812,7 @@ INT WINAPI GetLocaleInfoEx(LPCWSTR locale, LCTYPE info, LPWSTR buffer, INT len) /* special handling for neutral locale names */ if (locale && strlenW(locale) == 2) { - switch (info) + switch (info & ~LOCALE_LOCALEINFOFLAGSMASK) { case LOCALE_SNAME: if (len && len < 3) diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c index 91a870362c3..791f015766d 100644 --- a/dlls/kernel32/tests/locale.c +++ b/dlls/kernel32/tests/locale.c @@ -4499,6 +4499,10 @@ static void test_GetLocaleInfoEx(void) ok(ret == 1, "got %d\n", ret); ok(!bufferW[0], "got %s\n", wine_dbgstr_w(bufferW)); + ret = pGetLocaleInfoEx(enW, LOCALE_SPARENT | LOCALE_NOUSEROVERRIDE, bufferW, sizeof(bufferW)/sizeof(WCHAR)); + ok(ret == 1, "got %d\n", ret); + ok(!bufferW[0], "got %s\n", wine_dbgstr_w(bufferW)); + ret = pGetLocaleInfoEx(enW, LOCALE_SCOUNTRY, bufferW, sizeof(bufferW)/sizeof(WCHAR)); ok(ret == lstrlenW(bufferW)+1, "got %d\n", ret); if ((PRIMARYLANGID(LANGIDFROMLCID(GetSystemDefaultLCID())) != LANG_ENGLISH) ||