diff --git a/libmaxsi/include/string.h b/libmaxsi/include/string.h index fa75115f..fad8c270 100644 --- a/libmaxsi/include/string.h +++ b/libmaxsi/include/string.h @@ -48,6 +48,7 @@ char* strcpy(char* restrict, const char* restrict); char* strdup(const char*); char* strerror(int); 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); char* strpbrk(const char*, const char*); @@ -64,7 +65,6 @@ char* stpncpy(char* restrict, const char* restrict, size_t); 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* strndup(const char*, size_t); size_t strnlen(const char*, size_t); char* strsignal(int); diff --git a/libmaxsi/string.cpp b/libmaxsi/string.cpp index ce950df1..f7a47098 100644 --- a/libmaxsi/string.cpp +++ b/libmaxsi/string.cpp @@ -84,6 +84,19 @@ namespace Maxsi return OriginalDest; } + extern "C" char* strncat(char* dest, const char* src, size_t len) + { + size_t destlen = Length(dest); + size_t i; + + for ( i = 0; i < len && src[i]; i++ ) + { + dest[destlen + i] = src[i]; + } + dest[destlen+i] = 0; + return dest; + } + DUAL_FUNCTION(int, strcmp, Compare, (const char* A, const char* B)) { while ( true )