Module: wine Branch: master Commit: ff7cf637df2b3dc3d58f6a320a855f4b8212c48c URL: http://source.winehq.org/git/wine.git/?a=commit;h=ff7cf637df2b3dc3d58f6a320a...
Author: Piotr Caban piotr@codeweavers.com Date: Thu May 12 11:39:22 2011 +0200
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 605997c..958c6cb 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 a3d8d57..1e7e890 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.@) */