msvcrt: Implement wcsnicoll.
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 @@
}
/*********************************************************************
+ * _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 _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 _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);