X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=functions%2F_PDCLIB%2Fscan.c;h=615d82e0f32ee659d5c9756ac90781b62f9cc660;hb=d1aaf8b626ae8f729bc81dd7f15a16d8ccc0b227;hp=15b1d503c32a5fa9481c48f65d625a08922508bb;hpb=31fdebd6d624ffce068548cb4d63f4ec583cec04;p=pdclib diff --git a/functions/_PDCLIB/scan.c b/functions/_PDCLIB/scan.c index 15b1d50..615d82e 100644 --- a/functions/_PDCLIB/scan.c +++ b/functions/_PDCLIB/scan.c @@ -16,6 +16,8 @@ #include #include +#ifndef REGTEST + /* Using an integer's bits as flags for both the conversion flags and length modifiers. */ @@ -39,7 +41,7 @@ */ static int GET( struct _PDCLIB_status_t * status ) { - int rc; + int rc = EOF; if ( status->stream != NULL ) { rc = getc( status->stream ); @@ -160,7 +162,7 @@ const char * _PDCLIB_scan( const char * spec, struct _PDCLIB_status_t * status ) status->width = (int)strtol( spec, (char**)&spec, 10 ); if ( spec == prev_spec ) { - status->width = SIZE_MAX; + status->width = UINT_MAX; } /* Optional length modifier @@ -384,7 +386,8 @@ const char * _PDCLIB_scan( const char * spec, struct _PDCLIB_status_t * status ) } case 'p': status->base = 16; - status->flags |= E_unsigned; + // TODO: Like _PDCLIB_print, E_pointer(?) + status->flags |= E_unsigned | E_long; break; case 'n': { @@ -588,7 +591,7 @@ const char * _PDCLIB_scan( const char * spec, struct _PDCLIB_status_t * status ) /* TODO: Floats. */ return NULL; } - +#endif #ifdef TEST #define _PDCLIB_FILEID "_PDCLIB/scan.c" @@ -596,6 +599,7 @@ const char * _PDCLIB_scan( const char * spec, struct _PDCLIB_status_t * status ) #include <_PDCLIB_test.h> +#ifndef REGTEST static int testscanf( char const * s, char const * format, ... ) { struct _PDCLIB_status_t status; @@ -612,13 +616,16 @@ static int testscanf( char const * s, char const * format, ... ) va_end( status.arg ); return status.n; } +#endif #define TEST_CONVERSION_ONLY int main( void ) { +#ifndef REGTEST char source[100]; #include "scanf_testcases.h" +#endif return TEST_RESULTS; }