From ff7cf637df2b3dc3d58f6a320a855f4b8212c48c Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Thu, 12 May 2011 11:39:22 +0200 Subject: [PATCH] msvcrt: Added _stricoll_l implementation. --- dlls/msvcrt/msvcrt.spec | 2 +- dlls/msvcrt/string.c | 30 ++++++++++++++++++++---------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 605997c9589..958c6cbd6b6 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -929,7 +929,7 @@ @ cdecl _stricmp(str str) ntdll._stricmp # stub _stricmp_l(str str ptr) @ cdecl _stricoll(str str) MSVCRT__stricoll -# stub _stricoll_l(str str ptr) +@ cdecl _stricoll_l(str str ptr) MSVCRT__stricoll_l @ cdecl _strlwr(str) @ cdecl _strlwr_l(str ptr) @ cdecl _strlwr_s(ptr long) diff --git a/dlls/msvcrt/string.c b/dlls/msvcrt/string.c index a3d8d57a5ea..1e7e8909763 100644 --- a/dlls/msvcrt/string.c +++ b/dlls/msvcrt/string.c @@ -547,6 +547,26 @@ int CDECL MSVCRT_strcoll( const char* str1, const char* str2 ) } /********************************************************************* + * _stricoll_l (MSVCRT.@) + */ +int CDECL MSVCRT__stricoll_l( const char* str1, const char* str2, MSVCRT__locale_t locale ) +{ + if(!locale) + locale = get_locale(); + + return CompareStringA(locale->locinfo->lc_handle[MSVCRT_LC_CTYPE], NORM_IGNORECASE, + str1, -1, str2, -1)-2; +} + +/********************************************************************* + * _stricoll (MSVCRT.@) + */ +int CDECL MSVCRT__stricoll( const char* str1, const char* str2 ) +{ + return MSVCRT__stricoll_l(str1, str2, NULL); +} + +/********************************************************************* * strcpy_s (MSVCRT.@) */ int CDECL MSVCRT_strcpy_s( char* dst, MSVCRT_size_t elem, const char* src ) @@ -644,16 +664,6 @@ MSVCRT_size_t CDECL MSVCRT_strxfrm( char *dest, const char *src, MSVCRT_size_t l return strxfrm( dest, src, len ); } -/********************************************************************* - * _stricoll (MSVCRT.@) - */ -int CDECL MSVCRT__stricoll( const char* str1, const char* str2 ) -{ - /* FIXME: handle collates */ - TRACE("str1 %s str2 %s\n", debugstr_a(str1), debugstr_a(str2)); - return lstrcmpiA( str1, str2 ); -} - /******************************************************************** * _atoldbl (MSVCRT.@) */ -- 2.11.4.GIT