[PATCH 3/4] msvcrt: Added _wcsnicoll_l implementation.
Jactry Zeng
jactry92 at gmail.com
Sat Mar 30 14:37:08 CDT 2013
-------------- next part --------------
From efb0c53b962f14437b5234f44eab504761ed6fe2 Mon Sep 17 00:00:00 2001
From: Jactry Zeng <jactry92 at gmail.com>
Date: Sun, 31 Mar 2013 00:00:30 +0800
Subject: msvcrt: Added _wcsnicoll_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 | 20 ++++++++++++++++++--
6 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index 0c363bd..1531da9 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -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
diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec
index 2d9e69e..c851928 100644
--- a/dlls/msvcr110/msvcr110.spec
+++ b/dlls/msvcr110/msvcr110.spec
@@ -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
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 0faa5f7..e33c694 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -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
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index f7c751a..fb549cf 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -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
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 5193104..ff96b36 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -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
diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index 1170e93..8e17621 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -102,12 +102,28 @@ INT CDECL MSVCRT__wcsicoll( const MSVCRT_wchar_t* str1, const MSVCRT_wchar_t* st
}
/*********************************************************************
+ * _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);
}
/*********************************************************************
--
1.7.9.5
More information about the wine-patches
mailing list