[RFC PATCH 5/9] msvcrt: Make _iswctype_l results match iswctype.

Jeff Smith whydoubt at gmail.com
Thu Jan 9 00:53:45 CST 2020


Signed-off-by: Jeff Smith <whydoubt at gmail.com>
---
 dlls/msvcr120/tests/msvcr120.c | 4 +---
 dlls/msvcrt/tests/string.c     | 4 +---
 dlls/msvcrt/wcs.c              | 4 ++--
 dlls/ucrtbase/tests/string.c   | 4 +---
 4 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/dlls/msvcr120/tests/msvcr120.c b/dlls/msvcr120/tests/msvcr120.c
index 97862c0eaf..9d8a5f0321 100644
--- a/dlls/msvcr120/tests/msvcr120.c
+++ b/dlls/msvcr120/tests/msvcr120.c
@@ -1132,9 +1132,7 @@ static void test_iswctype(void)
         for (c = 0; c <= 0xffff; c++)
         {
             unsigned short wct = p__iswctype_l(c, 0xffff, locale);
-            todo_wine_if(wct & 0xf000) {
-                ok(base_wctype[c] == wct, "Character %#x in %s does not match C locale.\n", c, locales[i]);
-            }
+            ok(base_wctype[c] == wct, "Character %#x in %s does not match C locale.\n", c, locales[i]);
         }
     }
 }
diff --git a/dlls/msvcrt/tests/string.c b/dlls/msvcrt/tests/string.c
index 940e8166ae..3e52d56f00 100644
--- a/dlls/msvcrt/tests/string.c
+++ b/dlls/msvcrt/tests/string.c
@@ -4113,9 +4113,7 @@ static void test_iswctype(void)
         for (c = 0; c <= 0xffff; c++)
         {
             unsigned short wct = p__iswctype_l(c, 0xffff, locale);
-            todo_wine_if(wct & 0xf000) {
-                ok(base_wctype[c] == wct, "Character %#x in %s does not match C locale.\n", c, locales[i]);
-            }
+            ok(base_wctype[c] == wct, "Character %#x in %s does not match C locale.\n", c, locales[i]);
         }
     }
 }
diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index 5d0a80ba4f..600c4db008 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -1949,7 +1949,7 @@ int CDECL MSVCRT__iswxdigit_l( MSVCRT_wchar_t wc, MSVCRT__locale_t locale )
  */
 INT CDECL MSVCRT__iswctype_l( MSVCRT_wchar_t wc, MSVCRT_wctype_t type, MSVCRT__locale_t locale )
 {
-    return (get_char_typeW(wc) & 0xffff) & type;
+    return (get_char_typeW(wc) & 0xfff) & type;
 }
 
 /*********************************************************************
@@ -1957,7 +1957,7 @@ INT CDECL MSVCRT__iswctype_l( MSVCRT_wchar_t wc, MSVCRT_wctype_t type, MSVCRT__l
  */
 INT CDECL MSVCRT_iswctype( MSVCRT_wchar_t wc, MSVCRT_wctype_t type )
 {
-    return (get_char_typeW(wc) & 0xfff) & type;
+    return MSVCRT__iswctype_l( wc, type, NULL );
 }
 
 /*********************************************************************
diff --git a/dlls/ucrtbase/tests/string.c b/dlls/ucrtbase/tests/string.c
index ca219a97ce..2a77d8882a 100644
--- a/dlls/ucrtbase/tests/string.c
+++ b/dlls/ucrtbase/tests/string.c
@@ -458,9 +458,7 @@ static void test_iswctype(void)
         for (c = 0; c <= 0xffff; c++)
         {
             unsigned short wct = p__iswctype_l(c, 0xffff, locale);
-            todo_wine_if(wct & 0xf000) {
-                ok(base_wctype[c] == wct, "Character %#x in %s does not match C locale.\n", c, locales[i]);
-            }
+            ok(base_wctype[c] == wct, "Character %#x in %s does not match C locale.\n", c, locales[i]);
         }
     }
 }
-- 
2.23.0




More information about the wine-devel mailing list