Module: wine Branch: master Commit: dafa7611e9e77158f9fa17632066775a4811b5b5 URL: http://source.winehq.org/git/wine.git/?a=commit;h=dafa7611e9e77158f9fa176320...
Author: Jactry Zeng jactry92@gmail.com Date: Sat Mar 30 22:34:31 2013 +0800
msvcrt: Added _wcscoll_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 | 18 ++++++++++++++++-- 6 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 6476571..ab52ff7 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1477,7 +1477,7 @@ @ cdecl _wchmod(wstr long) msvcrt._wchmod @ extern _wcmdln msvcrt._wcmdln @ cdecl _wcreat(wstr long) msvcrt._wcreat -@ stub _wcscoll_l +@ cdecl _wcscoll_l(wstr wstr ptr) msvcrt._wcscoll_l @ cdecl _wcsdup(wstr) msvcrt._wcsdup @ cdecl _wcserror(long) msvcrt._wcserror @ cdecl _wcserror_s(ptr long long) msvcrt._wcserror_s diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index c8c99f1..7776dee 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1840,7 +1840,7 @@ @ extern _wcmdln msvcrt._wcmdln @ cdecl _wcreat(wstr long) msvcrt._wcreat @ stub _wcreate_locale -@ stub _wcscoll_l +@ cdecl _wcscoll_l(wstr wstr ptr) msvcrt._wcscoll_l @ cdecl _wcsdup(wstr) msvcrt._wcsdup @ cdecl _wcserror(long) msvcrt._wcserror @ cdecl _wcserror_s(ptr long long) msvcrt._wcserror_s diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index cd83405..e635e96 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -1137,7 +1137,7 @@ @ cdecl _wchmod(wstr long) msvcrt._wchmod @ extern _wcmdln msvcrt._wcmdln @ cdecl _wcreat(wstr long) msvcrt._wcreat -@ stub _wcscoll_l +@ cdecl _wcscoll_l(wstr wstr ptr) msvcrt._wcscoll_l @ cdecl _wcsdup(wstr) msvcrt._wcsdup @ cdecl _wcserror(long) msvcrt._wcserror @ cdecl _wcserror_s(ptr long long) msvcrt._wcserror_s diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 6d19a3d..9bcdccb 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -1131,7 +1131,7 @@ @ cdecl _wchmod(wstr long) msvcrt._wchmod @ extern _wcmdln msvcrt._wcmdln @ cdecl _wcreat(wstr long) msvcrt._wcreat -@ stub _wcscoll_l +@ cdecl _wcscoll_l(wstr wstr ptr) msvcrt._wcscoll_l @ cdecl _wcsdup(wstr) msvcrt._wcsdup @ cdecl _wcserror(long) msvcrt._wcserror @ cdecl _wcserror_s(ptr long long) msvcrt._wcserror_s diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 89d9028..30ac113 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -1095,7 +1095,7 @@ @ cdecl _wchmod(wstr long) MSVCRT__wchmod @ extern _wcmdln MSVCRT__wcmdln @ cdecl _wcreat(wstr long) MSVCRT__wcreat -# stub _wcscoll_l(wstr wstr ptr) +@ cdecl _wcscoll_l(wstr wstr ptr) MSVCRT__wcscoll_l @ cdecl _wcsdup(wstr) MSVCRT__wcsdup # stub _wcsdup_dbg(wstr long str long) @ cdecl _wcserror(long) MSVCRT__wcserror diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c index 511a814..9d45a24 100644 --- a/dlls/msvcrt/wcs.c +++ b/dlls/msvcrt/wcs.c @@ -1038,12 +1038,26 @@ int CDECL MSVCRT_swprintf_p_l(MSVCRT_wchar_t *buffer, MSVCRT_size_t length, }
/********************************************************************* + * _wcscoll_l (MSVCRT.@) + */ +int CDECL MSVCRT__wcscoll_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], 0, str1, -1, str2, -1)-CSTR_EQUAL; +} + +/********************************************************************* * wcscoll (MSVCRT.@) */ int CDECL MSVCRT_wcscoll( const MSVCRT_wchar_t* str1, const MSVCRT_wchar_t* str2 ) { - return CompareStringW(get_locinfo()->lc_handle[MSVCRT_LC_COLLATE], - 0, str1, -1, str2, -1)-CSTR_EQUAL; + return MSVCRT__wcscoll_l(str1, str2, NULL); }
/*********************************************************************