From: Jactry Zeng jzeng@codeweavers.com
--- dlls/msvcrt/ctype.c | 2 +- dlls/msvcrt/tests/string.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/dlls/msvcrt/ctype.c b/dlls/msvcrt/ctype.c index a1805324c1f..73d63057a93 100644 --- a/dlls/msvcrt/ctype.c +++ b/dlls/msvcrt/ctype.c @@ -535,7 +535,7 @@ int CDECL _tolower_l(int c, _locale_t locale) else locinfo = locale->locinfo;
- if((unsigned)c < 256) + if((unsigned)c < 256 && locinfo->mb_cur_max == 1) return locinfo->pclmap[c];
if(locinfo->pctype[(c>>8)&255] & _LEADBYTE) diff --git a/dlls/msvcrt/tests/string.c b/dlls/msvcrt/tests/string.c index d1d3a092dd9..c131c7d0442 100644 --- a/dlls/msvcrt/tests/string.c +++ b/dlls/msvcrt/tests/string.c @@ -3391,25 +3391,25 @@ static void test_tolower(void) ret = p_tolower((signed char)0xd0); ok(ret == 0xd0, "Got %#x.\n", ret); ret = p_tolower((unsigned char)0xd0); - todo_wine ok(ret == (unsigned char)0xd0, "Got %#x.\n", ret); + ok(ret == (unsigned char)0xd0, "Got %#x.\n", ret);
ok(setlocale(LC_ALL, ".936") != NULL, "setlocale failed.\n"); ret = p_tolower((signed char)0xd0); ok(ret == (signed char)0xd0, "Got %#x.\n", ret); ret = p_tolower((unsigned char)0xd0); - todo_wine ok(ret == (unsigned char)0xd0, "Got %#x.\n", ret); + ok(ret == (unsigned char)0xd0, "Got %#x.\n", ret);
ok(setlocale(LC_ALL, ".949") != NULL, "setlocale failed.\n"); ret = p_tolower((signed char)0xd0); ok(ret == (signed char)0xd0, "Got %#x.\n", ret); ret = p_tolower((unsigned char)0xd0); - todo_wine ok(ret == (unsigned char)0xd0, "Got %#x.\n", ret); + ok(ret == (unsigned char)0xd0, "Got %#x.\n", ret);
ok(setlocale(LC_ALL, ".950") != NULL, "setlocale failed.\n"); ret = p_tolower((signed char)0xd0); ok(ret == (signed char)0xd0, "Got %#x.\n", ret); ret = p_tolower((unsigned char)0xd0); - todo_wine ok(ret == (unsigned char)0xd0, "Got %#x.\n", ret); + ok(ret == (unsigned char)0xd0, "Got %#x.\n", ret);
setlocale(LC_ALL, "C"); }