Module: wine Branch: master Commit: d2763e43d10160eaf5e0c057e32d68d4f9289b6b URL: http://source.winehq.org/git/wine.git/?a=commit;h=d2763e43d10160eaf5e0c057e3...
Author: Jactry Zeng jactry92@gmail.com Date: Sat Mar 30 22:59:02 2013 +0800
msvcrt: Added _wcsicoll_l implementation.
---
dlls/msvcr100/msvcr100.spec | 2 +- dlls/msvcr110/msvcr110.spec | 2 +- dlls/msvcr80/msvcr80.spec | 2 +- dlls/msvcr90/msvcr90.spec | 2 +- dlls/msvcrt/msvcrt.spec | 2 +- dlls/msvcrt/wcs.c | 19 +++++++++++++++++-- 6 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index ab52ff7..0c363bd 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1485,7 +1485,7 @@ @ cdecl _wcsicmp(wstr wstr) msvcrt._wcsicmp @ stub _wcsicmp_l @ cdecl _wcsicoll(wstr wstr) msvcrt._wcsicoll -@ stub _wcsicoll_l +@ cdecl _wcsicoll_l(wstr wstr ptr) msvcrt._wcsicoll_l @ cdecl _wcslwr(wstr) msvcrt._wcslwr @ stub _wcslwr_l @ cdecl _wcslwr_s(wstr long) msvcrt._wcslwr_s diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 7776dee..2d9e69e 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1848,7 +1848,7 @@ @ cdecl _wcsicmp(wstr wstr) msvcrt._wcsicmp @ stub _wcsicmp_l @ cdecl _wcsicoll(wstr wstr) msvcrt._wcsicoll -@ stub _wcsicoll_l +@ cdecl _wcsicoll_l(wstr wstr ptr) msvcrt._wcsicoll_l @ cdecl _wcslwr(wstr) msvcrt._wcslwr @ stub _wcslwr_l @ cdecl _wcslwr_s(wstr long) msvcrt._wcslwr_s diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index e635e96..0faa5f7 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -1145,7 +1145,7 @@ @ cdecl _wcsicmp(wstr wstr) msvcrt._wcsicmp @ stub _wcsicmp_l @ cdecl _wcsicoll(wstr wstr) msvcrt._wcsicoll -@ stub _wcsicoll_l +@ cdecl _wcsicoll_l(wstr wstr ptr) msvcrt._wcsicoll_l @ cdecl _wcslwr(wstr) msvcrt._wcslwr @ stub _wcslwr_l @ cdecl _wcslwr_s(wstr long) msvcrt._wcslwr_s diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 9bcdccb..f7c751a 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -1139,7 +1139,7 @@ @ cdecl _wcsicmp(wstr wstr) msvcrt._wcsicmp @ stub _wcsicmp_l @ cdecl _wcsicoll(wstr wstr) msvcrt._wcsicoll -@ stub _wcsicoll_l +@ cdecl _wcsicoll_l(wstr wstr ptr) msvcrt._wcsicoll_l @ cdecl _wcslwr(wstr) msvcrt._wcslwr @ stub _wcslwr_l @ cdecl _wcslwr_s(wstr long) msvcrt._wcslwr_s diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 30ac113..5193104 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -1104,7 +1104,7 @@ @ cdecl _wcsicmp(wstr wstr) MSVCRT__wcsicmp # stub _wcsicmp_l(wstr wstr ptr) @ cdecl _wcsicoll(wstr wstr) MSVCRT__wcsicoll -# stub _wcsicoll_l(wstr wstr ptr) +@ cdecl _wcsicoll_l(wstr wstr ptr) MSVCRT__wcsicoll_l @ cdecl _wcslwr(wstr) ntdll._wcslwr # stub _wcslwr_l(wstr ptr) @ cdecl _wcslwr_s(wstr long) MSVCRT__wcslwr_s diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c index 9d45a24..776ef20 100644 --- a/dlls/msvcrt/wcs.c +++ b/dlls/msvcrt/wcs.c @@ -78,12 +78,27 @@ INT CDECL MSVCRT__wcsicmp( const MSVCRT_wchar_t* str1, const MSVCRT_wchar_t* str }
/********************************************************************* + * _wcsicoll_l (MSVCRT.@) + */ +int CDECL MSVCRT__wcsicoll_l(const MSVCRT_wchar_t* str1, const MSVCRT_wchar_t* str2, MSVCRT__locale_t locale) +{ + MSVCRT_pthreadlocinfo locinfo; + + if(!locale) + locinfo = get_locinfo(); + else + locinfo = locale->locinfo; + + return CompareStringW(locinfo->lc_handle[MSVCRT_LC_COLLATE], NORM_IGNORECASE, + str1, -1, str2, -1)-CSTR_EQUAL; +} + +/********************************************************************* * _wcsicoll (MSVCRT.@) */ INT CDECL MSVCRT__wcsicoll( const MSVCRT_wchar_t* str1, const MSVCRT_wchar_t* str2 ) { - return CompareStringW(get_locinfo()->lc_handle[MSVCRT_LC_COLLATE], - NORM_IGNORECASE, str1, -1, str2, -1)-CSTR_EQUAL; + return MSVCRT__wcsicoll_l(str1, str2, NULL); }
/*********************************************************************