Andrew Eikum : kernel32: Don' t care about case when finding matching locale.

Alexandre Julliard julliard at winehq.org
Wed Jan 25 13:18:53 CST 2017


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

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Tue Jan 24 14:44:11 2017 -0600

kernel32: Don't care about case when finding matching locale.

Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

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

diff --git a/dlls/kernel32/locale.c b/dlls/kernel32/locale.c
index 2bf1024..ca59751 100644
--- a/dlls/kernel32/locale.c
+++ b/dlls/kernel32/locale.c
@@ -390,7 +390,7 @@ static BOOL CALLBACK find_locale_id_callback( HMODULE hModule, LPCWSTR type,
         GetLocaleInfoW( lcid, LOCALE_SNAME | LOCALE_NOUSEROVERRIDE,
                         buffer, sizeof(buffer)/sizeof(WCHAR) ))
     {
-        if (!strcmpW( data->win_name, buffer ))
+        if (!strcmpiW( data->win_name, buffer ))
         {
             matches = 4;  /* everything matches */
             goto done;
@@ -400,7 +400,7 @@ static BOOL CALLBACK find_locale_id_callback( HMODULE hModule, LPCWSTR type,
     if (!GetLocaleInfoW( lcid, LOCALE_SISO639LANGNAME | LOCALE_NOUSEROVERRIDE,
                          buffer, sizeof(buffer)/sizeof(WCHAR) ))
         return TRUE;
-    if (strcmpW( buffer, data->lang )) return TRUE;
+    if (strcmpiW( buffer, data->lang )) return TRUE;
     matches++;  /* language name matched */
 
     if (data->country)
@@ -408,7 +408,7 @@ static BOOL CALLBACK find_locale_id_callback( HMODULE hModule, LPCWSTR type,
         if (GetLocaleInfoW( lcid, LOCALE_SISO3166CTRYNAME|LOCALE_NOUSEROVERRIDE,
                             buffer, sizeof(buffer)/sizeof(WCHAR) ))
         {
-            if (strcmpW( buffer, data->country )) goto done;
+            if (strcmpiW( buffer, data->country )) goto done;
             matches++;  /* country name matched */
         }
     }
diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
index 1bac846..05564c4 100644
--- a/dlls/kernel32/tests/locale.c
+++ b/dlls/kernel32/tests/locale.c
@@ -2704,6 +2704,7 @@ static void test_LocaleNameToLCID(void)
     INT ret;
     WCHAR buffer[LOCALE_NAME_MAX_LENGTH];
     static const WCHAR enW[] = {'e','n',0};
+    static const WCHAR esesW[] = {'e','s','-','e','s',0};
 
     if (!pLocaleNameToLCID)
     {
@@ -2744,6 +2745,10 @@ static void test_LocaleNameToLCID(void)
     ok(!lcid && GetLastError() == ERROR_INVALID_PARAMETER,
        "Expected lcid == 0, got %08x, error %d\n", lcid, GetLastError());
 
+    /* lower-case */
+    lcid = pLocaleNameToLCID(esesW, 0);
+    ok(lcid == MAKELCID(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN), SORT_DEFAULT), "Got wrong lcid for es-es: 0x%x\n", lcid);
+
     /* english neutral name */
     lcid = pLocaleNameToLCID(enW, 0);
     ok(lcid == MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT) ||




More information about the wine-cvs mailing list