msvcrt: Implement wcsnlen.
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index 7b8be69..79517e5 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -1644,7 +1644,7 @@
@ cdecl wcsncmp(wstr wstr long) msvcrt.wcsncmp
@ cdecl wcsncpy(ptr wstr long) msvcrt.wcsncpy
@ cdecl wcsncpy_s(ptr long wstr long) msvcrt.wcsncpy_s
-@ stub wcsnlen
+@ cdecl wcsnlen(wstr long) msvcrt.wcsnlen
@ cdecl wcspbrk(wstr wstr) msvcrt.wcspbrk
@ cdecl wcsrchr(wstr long) msvcrt.wcsrchr
@ stub wcsrtombs
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 27c4088..3795264 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -1498,7 +1498,7 @@
@ cdecl wcsncmp(wstr wstr long) msvcrt.wcsncmp
@ cdecl wcsncpy(ptr wstr long) msvcrt.wcsncpy
@ cdecl wcsncpy_s(ptr long wstr long) msvcrt.wcsncpy_s
-@ stub wcsnlen
+@ cdecl wcsnlen(wstr long) msvcrt.wcsnlen
@ cdecl wcspbrk(wstr wstr) msvcrt.wcspbrk
@ cdecl wcsrchr(wstr long) msvcrt.wcsrchr
@ stub wcsrtombs
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 00ccade..c0ed8b6 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -1482,7 +1482,7 @@
@ cdecl wcsncmp(wstr wstr long) msvcrt.wcsncmp
@ cdecl wcsncpy(ptr wstr long) msvcrt.wcsncpy
@ cdecl wcsncpy_s(ptr long wstr long) msvcrt.wcsncpy_s
-@ stub wcsnlen
+@ cdecl wcsnlen(wstr long) msvcrt.wcsnlen
@ cdecl wcspbrk(wstr wstr) msvcrt.wcspbrk
@ cdecl wcsrchr(wstr long) msvcrt.wcsrchr
@ stub wcsrtombs
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 5325227..341093b 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -1444,7 +1444,7 @@
@ cdecl wcsncmp(wstr wstr long) ntdll.wcsncmp
@ cdecl wcsncpy(ptr wstr long) ntdll.wcsncpy
@ cdecl wcsncpy_s(ptr long wstr long) MSVCRT_wcsncpy_s
-# stub wcsnlen
+@ cdecl wcsnlen(wstr long) MSVCRT_wcsnlen
@ cdecl wcspbrk(wstr wstr) MSVCRT_wcspbrk
@ cdecl wcsrchr(wstr long) ntdll.wcsrchr
# stub wcsrtombs
diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index d192c23..47a50b6 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -1737,3 +1737,15 @@
{
return MSVCRT__wcstoui64_l(nptr, endptr, base, NULL);
}
+
+/******************************************************************
+ * wcsnlen (MSVCRT.@)
+ */
+MSVCRT_size_t CDECL MSVCRT_wcsnlen(const MSVCRT_wchar_t *s, MSVCRT_size_t maxlen)
+{
+ MSVCRT_size_t i;
+
+ for (i = 0; i < maxlen; i++)
+ if (!s[i]) break;
+ return i;
+}