diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index ed283d9aa74..7c1e10021f7 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -1389,7 +1389,7 @@ @ cdecl strncmp(str str long) msvcrt.strncmp @ cdecl strncpy(ptr str long) msvcrt.strncpy @ stub strncpy_s -@ stub strnlen +@ cdecl strnlen(str long) msvcrt.strnlen @ cdecl strpbrk(str str) msvcrt.strpbrk @ cdecl strrchr(str long) msvcrt.strrchr @ cdecl strspn(str str) msvcrt.strspn diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index cbfc6e21a5e..f95f92b3b4c 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -1373,7 +1373,7 @@ @ cdecl strncmp(str str long) msvcrt.strncmp @ cdecl strncpy(ptr str long) msvcrt.strncpy @ stub strncpy_s -@ stub strnlen +@ cdecl strnlen(str long) msvcrt.strnlen @ cdecl strpbrk(str str) msvcrt.strpbrk @ cdecl strrchr(str long) msvcrt.strrchr @ cdecl strspn(str str) msvcrt.strspn diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 058b9ae2d24..988d48e0509 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -1327,7 +1327,7 @@ @ cdecl strncmp(str str long) ntdll.strncmp @ cdecl strncpy(ptr str long) ntdll.strncpy # stub strncpy_s -# stub strnlen +@ cdecl strnlen(str long) MSVCRT_strnlen @ cdecl strpbrk(str str) ntdll.strpbrk @ cdecl strrchr(str long) ntdll.strrchr @ cdecl strspn(str str) ntdll.strspn diff --git a/dlls/msvcrt/string.c b/dlls/msvcrt/string.c index a5f9a193164..2a7c9afd2da 100644 --- a/dlls/msvcrt/string.c +++ b/dlls/msvcrt/string.c @@ -314,3 +314,16 @@ MSVCRT_ulong CDECL MSVCRT_strtoul(const char* nptr, char** end, int base) return ret; } + +/****************************************************************** + * strnlen (MSVCRT.@) + */ +MSVCRT_size_t CDECL MSVCRT_strnlen(const char *s, MSVCRT_size_t maxlen) +{ + MSVCRT_size_t i; + + for(i=0; i