diff --git a/libmaxsi/include/string.h b/libmaxsi/include/string.h index 354296e1..6f109b30 100644 --- a/libmaxsi/include/string.h +++ b/libmaxsi/include/string.h @@ -48,6 +48,7 @@ char* strdup(const char*); char* strerror(int); size_t strlen(const char*); int strncmp(const char*, const char*, size_t); +char* strncpy(char* restrict, const char* restrict, size_t); char* strrchr(const char*, int); size_t strspn(const char*, const char*); char* strtok(char* restrict, const char* restrict); @@ -62,7 +63,6 @@ int strcoll_l(const char*, const char*, locale_t); char* strerror_l(int, locale_t); int strerror_r(int, char*, size_t); char* strncat(char* restrict, const char* restrict, size_t); -char* strncpy(char* restrict, const char* restrict, size_t); char* strndup(const char*, size_t); size_t strnlen(const char*, size_t); char* strpbrk(const char*, const char*); diff --git a/libmaxsi/string.cpp b/libmaxsi/string.cpp index 1c7cd5c7..b7bb7ff7 100644 --- a/libmaxsi/string.cpp +++ b/libmaxsi/string.cpp @@ -59,6 +59,14 @@ namespace Maxsi return OriginalDest; } + extern "C" char* strncpy(char* dest, const char* src, size_t len) + { + size_t i; + for ( i = 0; i < len && src[i]; i++ ) { dest[i] = src[i]; } + for ( ; i < len; i++ ) { dest[i] = '\0'; } + return dest; + } + DUAL_FUNCTION(char*, strcat, Cat, (char* Dest, const char* Src)) { char* OriginalDest = Dest;