From 23fdfbc39253736ae07c13631ab0dd089117a642 Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Wed, 29 Sep 2010 09:57:52 +0200 Subject: [PATCH] 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 7b8be69d43e..79517e50155 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 27c4088caf6..3795264a431 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 00ccade529f..c0ed8b6dcc5 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 5325227b7e5..341093bea04 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 d192c2372f3..47a50b6f39f 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; +}