X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=functions%2F_PDCLIB%2Fatomax.c;h=eaf7ced007d8f3f9114e5af0533b7b9a607c9a74;hb=d865c4403fc91d1f1ac95ba76febcee9f429bb97;hp=6835b14e9f45d1a0d591bfb64272562b00c1a658;hpb=d02f38605b53cdff5460cc6b9e1b2a80c3a2ba4c;p=pdclib diff --git a/functions/_PDCLIB/atomax.c b/functions/_PDCLIB/atomax.c index 6835b14..eaf7ced 100644 --- a/functions/_PDCLIB/atomax.c +++ b/functions/_PDCLIB/atomax.c @@ -1,18 +1,14 @@ -/* $Id$ */ - -/* Release $Name$ */ - /* _PDCLIB_atomax( const char * ) This file is part of the Public Domain C Library (PDCLib). Permission is granted to use, modify, and / or redistribute at will. */ -#define _PDCLIB_INT_H _PDCLIB_INT_H -#include <_PDCLIB_int.h> #include #include +#ifndef REGTEST + _PDCLIB_intmax_t _PDCLIB_atomax( const char * s ) { _PDCLIB_intmax_t rc = 0; @@ -22,22 +18,28 @@ _PDCLIB_intmax_t _PDCLIB_atomax( const char * s ) while ( isspace( *s ) ) ++s; if ( *s == '+' ) ++s; else if ( *s == '-' ) sign = *(s++); - while ( ( x = memchr( _PDCLIB_digits, *(s++), 10 ) ) != NULL ) + /* TODO: Earlier version was missing tolower() but was not caught by tests */ + while ( ( x = memchr( _PDCLIB_digits, tolower(*(s++)), 10 ) ) != NULL ) { rc = rc * 10 + ( x - _PDCLIB_digits ); } return ( sign == '+' ) ? rc : -rc; } +#endif + #ifdef TEST -#include <_PDCLIB_test.h> + +#include "_PDCLIB_test.h" int main( void ) { +#ifndef REGTEST /* basic functionality */ TESTCASE( _PDCLIB_atomax( "123" ) == 123 ); /* testing skipping of leading whitespace and trailing garbage */ TESTCASE( _PDCLIB_atomax( " \n\v\t\f123xyz" ) == 123 ); +#endif return TEST_RESULTS; }