diff --git a/reactos/dll/win32/kernel32/winnls/string/sortkey.c b/reactos/dll/win32/kernel32/winnls/string/sortkey.c index 3e643ec4220..4bf57ccd313 100644 --- a/reactos/dll/win32/kernel32/winnls/string/sortkey.c +++ b/reactos/dll/win32/kernel32/winnls/string/sortkey.c @@ -225,6 +225,8 @@ static inline int compare_unicode_weights(int flags, const WCHAR *str1, int len1 len1--; len2--; } + if (len1 && !*str1) len1--; + if (len2 && !*str2) len2--; return len1 - len2; } @@ -274,6 +276,8 @@ static inline int compare_diacritic_weights(int flags, const WCHAR *str1, int le len1--; len2--; } + if (len1 && !*str1) len1--; + if (len2 && !*str2) len2--; return len1 - len2; } @@ -323,23 +327,16 @@ static inline int compare_case_weights(int flags, const WCHAR *str1, int len1, len1--; len2--; } + if (len1 && !*str1) len1--; + if (len2 && !*str2) len2--; return len1 - len2; } -static inline int real_length(const WCHAR *str, int len) -{ - while (len && !str[len - 1]) len--; - return len; -} - int wine_compare_string(int flags, const WCHAR *str1, int len1, const WCHAR *str2, int len2) { int ret; - len1 = real_length(str1, len1); - len2 = real_length(str2, len2); - ret = compare_unicode_weights(flags, str1, len1, str2, len2); if (!ret) { diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 5135963f5fa..5350d903ad3 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -278,7 +278,7 @@ kernel32 - reactos/dll/win32/kernel32/winnls/string/lang.c # Synced in r52754 reactos/dll/win32/kernel32/winnls/string/lcformat.c # Synced to WineStaging-1.7.55 reactos/dll/win32/kernel32/winnls/string/nls.c # Synced in r52754 - reactos/dll/win32/kernel32/winnls/string/sortkey.c # Synced to WineStaging-1.7.37 + reactos/dll/win32/kernel32/winnls/string/sortkey.c # Synced to WineStaging-1.7.55 msvcrt - reactos/lib/sdk/crt/except/cpp.c # Synced at 20080528