Mike Gibson : msvcrt: Implement wcsnicoll.

Alexandre Julliard julliard at winehq.org
Sun Dec 5 12:10:11 CST 2010


Module: wine
Branch: master
Commit: 23906816d87795c363f0199f33ff70f2732c6ab5
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=23906816d87795c363f0199f33ff70f2732c6ab5

Author: Mike Gibson <mike.gibson at storagecraft.com>
Date:   Fri Dec  3 10:12:23 2010 -0700

msvcrt: Implement wcsnicoll.

---

 dlls/msvcr100/msvcr100.spec |    2 +-
 dlls/msvcr70/msvcr70.spec   |    2 +-
 dlls/msvcr80/msvcr80.spec   |    2 +-
 dlls/msvcr90/msvcr90.spec   |    2 +-
 dlls/msvcrt/msvcrt.spec     |    2 +-
 dlls/msvcrt/wcs.c           |    9 +++++++++
 include/msvcrt/string.h     |    1 +
 include/msvcrt/wchar.h      |    1 +
 8 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index 1c2c66f..9f2a147 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -1299,7 +1299,7 @@
 @ stub _wcsncoll_l
 @ cdecl _wcsnicmp(wstr wstr long) msvcrt._wcsnicmp
 @ stub _wcsnicmp_l
-@ stub _wcsnicoll
+@ cdecl _wcsnicoll(wstr wstr long) msvcrt._wcsnicoll
 @ stub _wcsnicoll_l
 @ cdecl _wcsnset(wstr long long) msvcrt._wcsnset
 @ stub _wcsnset_s
diff --git a/dlls/msvcr70/msvcr70.spec b/dlls/msvcr70/msvcr70.spec
index 84a6512..f33a064 100644
--- a/dlls/msvcr70/msvcr70.spec
+++ b/dlls/msvcr70/msvcr70.spec
@@ -601,7 +601,7 @@
 @ cdecl _wcslwr(wstr) msvcrt._wcslwr
 @ stub _wcsncoll
 @ cdecl _wcsnicmp(wstr wstr long) msvcrt._wcsnicmp
-@ stub _wcsnicoll
+@ cdecl _wcsnicoll(wstr wstr long) msvcrt._wcsnicoll
 @ cdecl _wcsnset(wstr long long) msvcrt._wcsnset
 @ cdecl _wcsrev(wstr) msvcrt._wcsrev
 @ cdecl _wcsset(wstr long) msvcrt._wcsset
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 8ab1835..1512347 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -1152,7 +1152,7 @@
 @ stub _wcsncoll_l
 @ cdecl _wcsnicmp(wstr wstr long) msvcrt._wcsnicmp
 @ stub _wcsnicmp_l
-@ stub _wcsnicoll
+@ cdecl _wcsnicoll(wstr wstr long) msvcrt._wcsnicoll
 @ stub _wcsnicoll_l
 @ cdecl _wcsnset(wstr long long) msvcrt._wcsnset
 @ stub _wcsnset_s
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index f1a2bde..feaf80e 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -1139,7 +1139,7 @@
 @ stub _wcsncoll_l
 @ cdecl _wcsnicmp(wstr wstr long) msvcrt._wcsnicmp
 @ stub _wcsnicmp_l
-@ stub _wcsnicoll
+@ cdecl _wcsnicoll(wstr wstr long) msvcrt._wcsnicoll
 @ stub _wcsnicoll_l
 @ cdecl _wcsnset(wstr long long) msvcrt._wcsnset
 @ stub _wcsnset_s
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 379b7cd..9fe5f64 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -1073,7 +1073,7 @@
 # stub _wcsncoll_l
 @ cdecl _wcsnicmp(wstr wstr long) ntdll._wcsnicmp
 # stub _wcsnicmp_l
-@ stub _wcsnicoll #(wstr wstr long)
+@ cdecl _wcsnicoll(wstr wstr long)
 # stub _wcsnicoll_l
 @ cdecl _wcsnset(wstr long long) MSVCRT__wcsnset
 # stub _wcsnset_s
diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index 484679f..b01e60b 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -58,6 +58,15 @@ INT CDECL _wcsicoll( const MSVCRT_wchar_t* str1, const MSVCRT_wchar_t* str2 )
 }
 
 /*********************************************************************
+ *		_wcsnicoll (MSVCRT.@)
+ */
+INT CDECL _wcsnicoll( const MSVCRT_wchar_t* str1, const MSVCRT_wchar_t* str2, MSVCRT_size_t count )
+{
+  /* FIXME: handle collates */
+  return strncmpiW( str1, str2, count );
+}
+
+/*********************************************************************
  *		_wcsnset (MSVCRT.@)
  */
 MSVCRT_wchar_t* CDECL MSVCRT__wcsnset( MSVCRT_wchar_t* str, MSVCRT_wchar_t c, MSVCRT_size_t n )
diff --git a/include/msvcrt/string.h b/include/msvcrt/string.h
index 24bebd0..5c83631 100644
--- a/include/msvcrt/string.h
+++ b/include/msvcrt/string.h
@@ -88,6 +88,7 @@ int      __cdecl _wcsicmp(const wchar_t*,const wchar_t*);
 int      __cdecl _wcsicoll(const wchar_t*,const wchar_t*);
 wchar_t* __cdecl _wcslwr(wchar_t*);
 int      __cdecl _wcsnicmp(const wchar_t*,const wchar_t*,size_t);
+int      __cdecl _wcsnicoll(const wchar_t*,const wchar_t*,size_t);
 wchar_t* __cdecl _wcsnset(wchar_t*,wchar_t,size_t);
 wchar_t* __cdecl _wcsrev(wchar_t*);
 wchar_t* __cdecl _wcsset(wchar_t*,wchar_t);
diff --git a/include/msvcrt/wchar.h b/include/msvcrt/wchar.h
index 285168a..f7656b2 100644
--- a/include/msvcrt/wchar.h
+++ b/include/msvcrt/wchar.h
@@ -362,6 +362,7 @@ int      __cdecl _wcsicmp(const wchar_t*,const wchar_t*);
 int      __cdecl _wcsicoll(const wchar_t*,const wchar_t*);
 wchar_t* __cdecl _wcslwr(wchar_t*);
 int      __cdecl _wcsnicmp(const wchar_t*,const wchar_t*,size_t);
+int      __cdecl _wcsnicoll(const wchar_t*,const wchar_t*,size_t);
 wchar_t* __cdecl _wcsnset(wchar_t*,wchar_t,size_t);
 wchar_t* __cdecl _wcsrev(wchar_t*);
 wchar_t* __cdecl _wcsset(wchar_t*,wchar_t);




More information about the wine-cvs mailing list