Hans Leidekker : msvcrt: Implement wcsnlen.

Alexandre Julliard julliard at winehq.org
Wed Sep 29 12:00:14 CDT 2010


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

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Wed Sep 29 09:57:52 2010 +0200

msvcrt: Implement wcsnlen.

---

 dlls/msvcr100/msvcr100.spec |    2 +-
 dlls/msvcr80/msvcr80.spec   |    2 +-
 dlls/msvcr90/msvcr90.spec   |    2 +-
 dlls/msvcrt/msvcrt.spec     |    2 +-
 dlls/msvcrt/wcs.c           |   12 ++++++++++++
 5 files changed, 16 insertions(+), 4 deletions(-)

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 @@ unsigned __int64 CDECL MSVCRT__wcstoui64(const MSVCRT_wchar_t *nptr,
 {
     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;
+}




More information about the wine-cvs mailing list