msvcrt: Added _wcsnicoll_l implementation.

oldstable
Jactry Zeng 2013-03-31 00:00:30 +08:00 committed by Alexandre Julliard
parent d2763e43d1
commit 5af20ef180
6 changed files with 23 additions and 7 deletions

View File

@ -1495,7 +1495,7 @@
@ cdecl _wcsnicmp(wstr wstr long) msvcrt._wcsnicmp
@ stub _wcsnicmp_l
@ cdecl _wcsnicoll(wstr wstr long) msvcrt._wcsnicoll
@ stub _wcsnicoll_l
@ cdecl _wcsnicoll_l(wstr wstr long ptr) msvcrt._wcsnicoll_l
@ cdecl _wcsnset(wstr long long) msvcrt._wcsnset
@ stub _wcsnset_s
@ cdecl _wcsrev(wstr) msvcrt._wcsrev

View File

@ -1858,7 +1858,7 @@
@ cdecl _wcsnicmp(wstr wstr long) msvcrt._wcsnicmp
@ stub _wcsnicmp_l
@ cdecl _wcsnicoll(wstr wstr long) msvcrt._wcsnicoll
@ stub _wcsnicoll_l
@ cdecl _wcsnicoll_l(wstr wstr long ptr) msvcrt._wcsnicoll_l
@ cdecl _wcsnset(wstr long long) msvcrt._wcsnset
@ stub _wcsnset_s
@ cdecl _wcsrev(wstr) msvcrt._wcsrev

View File

@ -1155,7 +1155,7 @@
@ cdecl _wcsnicmp(wstr wstr long) msvcrt._wcsnicmp
@ stub _wcsnicmp_l
@ cdecl _wcsnicoll(wstr wstr long) msvcrt._wcsnicoll
@ stub _wcsnicoll_l
@ cdecl _wcsnicoll_l(wstr wstr long ptr) msvcrt._wcsnicoll_l
@ cdecl _wcsnset(wstr long long) msvcrt._wcsnset
@ stub _wcsnset_s
@ cdecl _wcsrev(wstr) msvcrt._wcsrev

View File

@ -1149,7 +1149,7 @@
@ cdecl _wcsnicmp(wstr wstr long) msvcrt._wcsnicmp
@ stub _wcsnicmp_l
@ cdecl _wcsnicoll(wstr wstr long) msvcrt._wcsnicoll
@ stub _wcsnicoll_l
@ cdecl _wcsnicoll_l(wstr wstr long ptr) msvcrt._wcsnicoll_l
@ cdecl _wcsnset(wstr long long) msvcrt._wcsnset
@ stub _wcsnset_s
@ cdecl _wcsrev(wstr) msvcrt._wcsrev

View File

@ -1114,7 +1114,7 @@
@ cdecl _wcsnicmp(wstr wstr long) ntdll._wcsnicmp
# stub _wcsnicmp_l(wstr wstr long ptr)
@ cdecl _wcsnicoll(wstr wstr long) MSVCRT__wcsnicoll
# stub _wcsnicoll_l(wstr wstr long ptr)
@ cdecl _wcsnicoll_l(wstr wstr long ptr) MSVCRT__wcsnicoll_l
@ cdecl _wcsnset(wstr long long) MSVCRT__wcsnset
# stub _wcsnset_s(wstr long long)
@ cdecl _wcsrev(wstr) MSVCRT__wcsrev

View File

@ -101,13 +101,29 @@ INT CDECL MSVCRT__wcsicoll( const MSVCRT_wchar_t* str1, const MSVCRT_wchar_t* st
return MSVCRT__wcsicoll_l(str1, str2, NULL);
}
/*********************************************************************
* _wcsnicoll_l (MSVCRT.@)
*/
int CDECL MSVCRT__wcsnicoll_l(const MSVCRT_wchar_t* str1, const MSVCRT_wchar_t* str2,
MSVCRT_size_t count, 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, count, str2, count)-CSTR_EQUAL;
}
/*********************************************************************
* _wcsnicoll (MSVCRT.@)
*/
INT CDECL MSVCRT__wcsnicoll( const MSVCRT_wchar_t* str1, const MSVCRT_wchar_t* str2, MSVCRT_size_t count )
{
return CompareStringW(get_locinfo()->lc_handle[MSVCRT_LC_COLLATE],
NORM_IGNORECASE, str1, count, str2, count)-CSTR_EQUAL;
return MSVCRT__wcsnicoll_l(str1, str2, count, NULL);
}
/*********************************************************************