From: Jeff Smith Subject: [RFC PATCH 5/9] msvcrt: Make _iswctype_l results match iswctype. Message-Id: <20200109065349.2549777-5-whydoubt@gmail.com> Date: Thu, 9 Jan 2020 00:53:45 -0600 In-Reply-To: <20200109065349.2549777-1-whydoubt@gmail.com> References: <20200109065349.2549777-1-whydoubt@gmail.com> Signed-off-by: Jeff Smith --- 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