X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=functions%2Fstring%2Fstrdup.c;h=78dd01d4f645f3e49215fdd0b45f4cac794a62d3;hp=bbd1e93be1c0485f6b61be1b312f4b09c0540d17;hb=abc15df6b9fae3374d24c7cf5c3ab94c605b2a6d;hpb=8894c921674bb116d0a7b8f23a55311e7a768019 diff --git a/functions/string/strdup.c b/functions/string/strdup.c index bbd1e93..78dd01d 100644 --- a/functions/string/strdup.c +++ b/functions/string/strdup.c @@ -1,49 +1,49 @@ -/* [XSI] char * strdup( const char * ) - - This file is part of the Public Domain C Library (PDCLib). - Permission is granted to use, modify, and / or redistribute at will. -*/ - -#ifdef REGTEST -#define _POSIX_C_SOURCE 200809L -#endif - -#include -#include - -#ifndef REGTEST - -char *strdup(const char *s) -{ - char* ns = NULL; - if(s) { - size_t len = strlen(s) + 1; - ns = malloc(len); - if(ns) - strncpy(ns, s, len); - } - return ns; -} - -#endif - -#ifdef TEST -#include "_PDCLIB_test.h" - -int main( void ) -{ - const char *teststr = "Hello, world"; - const char *teststr2 = "An alternative test string with non-7-bit characters \xFE\x8C\n"; - char *testres, *testres2; - - TESTCASE((testres = strdup(teststr)) != NULL); - TESTCASE((testres2 = strdup(teststr2)) != NULL); - TESTCASE(strcmp(testres, teststr) == 0); - TESTCASE(strcmp(testres2, teststr2) == 0); - free(testres); - free(testres2); - - return TEST_RESULTS; -} - -#endif +/* [XSI] char * strdup( const char * ) + + This file is part of the Public Domain C Library (PDCLib). + Permission is granted to use, modify, and / or redistribute at will. +*/ + +#ifdef REGTEST +#define _POSIX_C_SOURCE 200809L +#endif + +#include +#include + +#ifndef REGTEST + +char *strdup(const char *s) +{ + char* ns = NULL; + if(s) { + size_t len = strlen(s) + 1; + ns = malloc(len); + if(ns) + strncpy(ns, s, len); + } + return ns; +} + +#endif + +#ifdef TEST +#include "_PDCLIB_test.h" + +int main( void ) +{ + const char *teststr = "Hello, world"; + const char *teststr2 = "An alternative test string with non-7-bit characters \xFE\x8C\n"; + char *testres, *testres2; + + TESTCASE((testres = strdup(teststr)) != NULL); + TESTCASE((testres2 = strdup(teststr2)) != NULL); + TESTCASE(strcmp(testres, teststr) == 0); + TESTCASE(strcmp(testres2, teststr2) == 0); + free(testres); + free(testres2); + + return TEST_RESULTS; +} + +#endif