X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=functions%2F_PDCLIB%2Fstrtox_prelim.c;h=69255278ac80eb70eb8ead79fbbcd0c26101da49;hp=8b0f44236317d8d7217a647c67f6e2843783a222;hb=d02f38605b53cdff5460cc6b9e1b2a80c3a2ba4c;hpb=3f6094115e79a45413f08361b68b71eb08da306e diff --git a/functions/_PDCLIB/strtox_prelim.c b/functions/_PDCLIB/strtox_prelim.c index 8b0f442..6925527 100644 --- a/functions/_PDCLIB/strtox_prelim.c +++ b/functions/_PDCLIB/strtox_prelim.c @@ -39,20 +39,19 @@ const char * _PDCLIB_strtox_prelim( const char * p, char * sign, int * base ) { *base = 10; } - return p; + return ( ( *base >= 2 ) && ( *base <= 36 ) ) ? p : NULL; } #ifdef TEST #include <_PDCLIB_test.h> -int main() +int main( void ) { int base = 0; char sign = '\0'; char test1[] = " 123"; char test2[] = "\t+0123"; char test3[] = "\v-0x123"; - BEGIN_TESTS; TESTCASE( _PDCLIB_strtox_prelim( test1, &sign, &base ) == &test1[2] ); TESTCASE( sign == '+' ); TESTCASE( base == 10 ); @@ -71,6 +70,10 @@ int main() TESTCASE( _PDCLIB_strtox_prelim( test3, &sign, &base ) == &test3[2] ); TESTCASE( sign == '-' ); TESTCASE( base == 10 ); + base = 1; + TESTCASE( _PDCLIB_strtox_prelim( test3, &sign, &base ) == NULL ); + base = 37; + TESTCASE( _PDCLIB_strtox_prelim( test3, &sign, &base ) == NULL ); return TEST_RESULTS; }