Module: wine Branch: master Commit: e07dbe2c0a179c4143422d30c475867a1d452c70 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e07dbe2c0a179c4143422d30c4...
Author: Piotr Caban piotr@codeweavers.com Date: Thu May 12 11:39:10 2011 +0200
msvcrt: Added _strcoll_l implementation.
---
dlls/msvcrt/msvcrt.spec | 2 +- dlls/msvcrt/string.c | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 1766dbf..605997c 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -919,7 +919,7 @@ @ cdecl _stati64(str ptr) MSVCRT_stati64 @ cdecl _statusfp() @ cdecl _strcmpi(str str) ntdll._strcmpi -# stub _strcoll_l(str str ptr) +@ cdecl _strcoll_l(str str ptr) MSVCRT_strcoll_l @ cdecl _strdate(ptr) @ cdecl _strdate_s(ptr long) @ cdecl _strdup(str) diff --git a/dlls/msvcrt/string.c b/dlls/msvcrt/string.c index 8316ff7..a3d8d57 100644 --- a/dlls/msvcrt/string.c +++ b/dlls/msvcrt/string.c @@ -31,6 +31,7 @@ #include <limits.h> #include <errno.h> #include "msvcrt.h" +#include "winnls.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(msvcrt); @@ -527,12 +528,22 @@ int CDECL MSVCRT__atoflt_l( MSVCRT__CRT_FLOAT *value, char *str, MSVCRT__locale_ }
/********************************************************************* + * _strcoll_l (MSVCRT.@) + */ +int CDECL MSVCRT_strcoll_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], 0, str1, -1, str2, -1)-2; +} + +/********************************************************************* * strcoll (MSVCRT.@) */ int CDECL MSVCRT_strcoll( const char* str1, const char* str2 ) { - /* FIXME: handle Windows locale */ - return strcoll( str1, str2 ); + return MSVCRT_strcoll_l(str1, str2, NULL); }
/*********************************************************************