From: Piotr Caban Subject: msvcrt: Fix _stricmp behavior on characters that doesn't fit into signed char Message-Id: <54070CD6.70004@codeweavers.com> Date: Wed, 03 Sep 2014 14:43:02 +0200 --- dlls/msvcrt/string.c | 2 +- dlls/msvcrt/tests/string.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/msvcrt/string.c b/dlls/msvcrt/string.c index bacab00..be65675 100644 --- a/dlls/msvcrt/string.c +++ b/dlls/msvcrt/string.c @@ -1766,7 +1766,7 @@ int __cdecl MSVCRT__strnicmp_l(const char *s1, const char *s2, MSVCRT_size_t count, MSVCRT__locale_t locale) { MSVCRT_pthreadlocinfo locinfo; - char c1, c2; + int c1, c2; if(s1==NULL || s2==NULL) return MSVCRT__NLSCMPERROR; diff --git a/dlls/msvcrt/tests/string.c b/dlls/msvcrt/tests/string.c index 5b9d951..1788035 100644 --- a/dlls/msvcrt/tests/string.c +++ b/dlls/msvcrt/tests/string.c @@ -2548,6 +2548,8 @@ static void test__stricmp(void) ok(ret > 0, "_stricmp returned %d\n", ret); ret = _stricmp("\xa5", "\xb9"); ok(ret == 0, "_stricmp returned %d\n", ret); + ret = _stricmp("a", "\xb9"); + ok(ret < 0, "_stricmp returned %d\n", ret); setlocale(LC_ALL, "C"); }