From bdd8b2a77a5c1af548fdb994912001c4d49fcdf9 Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Sat, 10 Mar 2012 23:04:49 +0100 Subject: [PATCH] Added strnlen(3). --- libmaxsi/include/string.h | 2 +- libmaxsi/string.cpp | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libmaxsi/include/string.h b/libmaxsi/include/string.h index fad8c270..08225b3e 100644 --- a/libmaxsi/include/string.h +++ b/libmaxsi/include/string.h @@ -51,6 +51,7 @@ size_t strlen(const char*); char* strncat(char* restrict, const char* restrict, size_t); int strncmp(const char*, const char*, size_t); char* strncpy(char* restrict, const char* restrict, size_t); +size_t strnlen(const char*, size_t); char* strpbrk(const char*, const char*); char* strrchr(const char*, int); size_t strspn(const char*, const char*); @@ -66,7 +67,6 @@ int strcoll_l(const char*, const char*, locale_t); char* strerror_l(int, locale_t); int strerror_r(int, char*, size_t); char* strndup(const char*, size_t); -size_t strnlen(const char*, size_t); char* strsignal(int); size_t strxfrm(char* restrict, const char* restrict, size_t); size_t strxfrm_l(char* restrict, const char* restrict, size_t, locale_t); diff --git a/libmaxsi/string.cpp b/libmaxsi/string.cpp index 37500a4f..c72dddda 100644 --- a/libmaxsi/string.cpp +++ b/libmaxsi/string.cpp @@ -45,6 +45,13 @@ namespace Maxsi return Result; } + extern "C" size_t strnlen(const char* str, size_t maxlen) + { + size_t result; + for ( result = 0; maxlen - result && str[result]; result++ ) { } + return result; + } + DUAL_FUNCTION(char*, strcpy, Copy, (char* Dest, const char* Src)) { char* OriginalDest = Dest;