[PATCH] kernel32/tests: Fix some codepage test failures with Windows 10.

Zebediah Figura z.figura12 at gmail.com
Sat Jan 4 10:32:54 CST 2020


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
It seems that Windows is finally moving towards UTF-8; a new configurable option
in Control Panel causes UTF-8 to be returned from this function for all locales.

 dlls/kernel32/tests/codepage.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/dlls/kernel32/tests/codepage.c b/dlls/kernel32/tests/codepage.c
index 8fcc575a29e..bc172eacf3b 100644
--- a/dlls/kernel32/tests/codepage.c
+++ b/dlls/kernel32/tests/codepage.c
@@ -1057,7 +1057,7 @@ static void test_threadcp(void)
     static const LCID JAPANESE = MAKELCID(MAKELANGID(LANG_JAPANESE, SUBLANG_JAPANESE_JAPAN),     SORT_DEFAULT);
     static const LCID CHINESE  = MAKELCID(MAKELANGID(LANG_CHINESE,  SUBLANG_CHINESE_SIMPLIFIED), SORT_DEFAULT);
 
-    BOOL islead, islead_acp;
+    BOOL islead, islead_default;
     CPINFOEXA cpi;
     UINT cp, acp;
     int  i, num;
@@ -1152,8 +1152,8 @@ static void test_threadcp(void)
             ok(cpi.CodePage == lcids[i].threadcp, "wrong codepage %u for lcid %04x, should be %u\n",
                cpi.CodePage, lcids[i].lcid, lcids[i].threadcp);
         else
-            ok(cpi.CodePage == acp, "wrong codepage %u for lcid %04x, should be %u\n",
-               cpi.CodePage, lcids[i].lcid, acp);
+            ok(cpi.CodePage == acp || cpi.CodePage == CP_UTF8 /* Win10 1809+ */,
+                "wrong codepage %u for lcid %04x, should be %u\n", cpi.CodePage, lcids[i].lcid, acp);
 
         /* WideCharToMultiByte - CP_THREAD_ACP */
         num = WideCharToMultiByte(CP_THREAD_ACP, 0, foobarW, -1, NULL, 0, NULL, NULL);
@@ -1169,11 +1169,12 @@ static void test_threadcp(void)
     {
         SetThreadLocale(isleads_nocp[i].lcid);
 
-        islead_acp = IsDBCSLeadByteEx(CP_ACP,        isleads_nocp[i].testchar);
-        islead     = IsDBCSLeadByteEx(CP_THREAD_ACP, isleads_nocp[i].testchar);
+        GetCPInfoExA(CP_THREAD_ACP, 0, &cpi);
+        islead_default = IsDBCSLeadByteEx(cpi.CodePage, isleads_nocp[i].testchar);
+        islead = IsDBCSLeadByteEx(CP_THREAD_ACP, isleads_nocp[i].testchar);
 
-        ok(islead == islead_acp, "wrong islead %i for test char %x in lcid %04x.  should be %i\n",
-            islead, isleads_nocp[i].testchar, isleads_nocp[i].lcid, islead_acp);
+        ok(islead == islead_default, "wrong islead %i for test char %x in lcid %04x.  should be %i\n",
+            islead, isleads_nocp[i].testchar, isleads_nocp[i].lcid, islead_default);
     }
 
     /* IsDBCSLeadByteEx - locales with codepage */
-- 
2.24.1




More information about the wine-devel mailing list