[PATCH 2/2] kernelbase: Accept LINGUISTIC_IGNOREDIACRITIC & SORT_DIGITSASNUMBERS in CompareStringEx().
Gijs Vermeulen
gijsvrm at gmail.com
Sat Mar 20 11:22:05 CDT 2021
From: John Zourlios <john.kinigos at gmail.com>
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50362
Signed-off-by: Gijs Vermeulen <gijsvrm at gmail.com>
---
dlls/kernel32/tests/locale.c | 3 ---
dlls/kernelbase/locale.c | 3 ++-
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
index 6ba5bcdbd9c..75c86bbaf21 100644
--- a/dlls/kernel32/tests/locale.c
+++ b/dlls/kernel32/tests/locale.c
@@ -1864,12 +1864,9 @@ static void test_CompareStringA(void)
SetLastError(0xdeadbeef);
ret = CompareStringA(entry->lcid, entry->flags, entry->first, entry->first_len,
entry->second, entry->second_len);
-todo_wine_if (entry->flags == LINGUISTIC_IGNOREDIACRITIC)
-{
ok(ret == entry->ret, "%d: got %d, expected %d\n", i, ret, entry->ret);
ok(GetLastError() == (ret ? 0xdeadbeef : entry->le), "%d: got last error %d, expected %d\n",
i, GetLastError(), (ret ? 0xdeadbeef : entry->le));
-}
}
ret = CompareStringA(lcid, NORM_IGNORECASE, "Salut", -1, "Salute", -1);
diff --git a/dlls/kernelbase/locale.c b/dlls/kernelbase/locale.c
index 55df5598715..7623e387cdf 100644
--- a/dlls/kernelbase/locale.c
+++ b/dlls/kernelbase/locale.c
@@ -3056,7 +3056,8 @@ INT WINAPI CompareStringEx( const WCHAR *locale, DWORD flags, const WCHAR *str1,
{
DWORD supported_flags = NORM_IGNORECASE | NORM_IGNORENONSPACE | NORM_IGNORESYMBOLS | SORT_STRINGSORT |
NORM_IGNOREKANATYPE | NORM_IGNOREWIDTH | LOCALE_USE_CP_ACP;
- DWORD semistub_flags = NORM_LINGUISTIC_CASING | LINGUISTIC_IGNORECASE | 0x10000000;
+ DWORD semistub_flags = NORM_LINGUISTIC_CASING | LINGUISTIC_IGNORECASE | LINGUISTIC_IGNOREDIACRITIC |
+ SORT_DIGITSASNUMBERS | 0x10000000;
/* 0x10000000 is related to diacritics in Arabic, Japanese, and Hebrew */
INT ret;
static int once;
--
2.31.0
More information about the wine-devel
mailing list