X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=functions%2F_PDCLIB%2Fprint.c;h=5027c5fa8e5aaada9972292fa590a1c40b359a95;hb=a7a8d2f1c85c2d7760d4d3479e90466cc3a81b04;hp=8d19fe57e856ad3c6c564f81b758de4157febba2;hpb=e72505f84aa8d8730e46d955a2722af361112e4f;p=pdclib diff --git a/functions/_PDCLIB/print.c b/functions/_PDCLIB/print.c index 8d19fe5..5027c5f 100644 --- a/functions/_PDCLIB/print.c +++ b/functions/_PDCLIB/print.c @@ -42,15 +42,15 @@ i - pointer to number of characters already delivered in this call n - pointer to maximum number of characters to be delivered in this call s - the buffer into which the character shall be delivered - TODO: ref. fputs() for a better way to buffer handling */ #define DELIVER( x ) \ do { \ + int character = x; \ if ( status->i < status->n ) { \ if ( status->stream != NULL ) \ - putc( x, status->stream ); \ + putc( character, status->stream ); \ else \ - status->s[status->i] = x; \ + status->s[status->i] = character; \ } \ ++(status->i); \ } while ( 0 ) @@ -498,7 +498,7 @@ const char * _PDCLIB_print( const char * spec, struct _PDCLIB_status_t * status ++(status->current); } } - if ( status->i >= status->n ) + if ( status->i >= status->n && status->n > 0 ) { status->s[status->n - 1] = '\0'; } @@ -507,10 +507,10 @@ const char * _PDCLIB_print( const char * spec, struct _PDCLIB_status_t * status } #ifdef TEST -#include <_PDCLIB_test.h> +#define _PDCLIB_FILEID "_PDCLIB/print.c" +#define _PDCLIB_STRINGIO -#include -#include +#include <_PDCLIB_test.h> static int testprintf( char * buffer, const char * format, ... ) { @@ -538,13 +538,10 @@ static int testprintf( char * buffer, const char * format, ... ) #define TEST_CONVERSION_ONLY -#define TESTCASE_SPRINTF( x ) if ( strcmp( target, x ) == 0 ) {} \ - else { TEST_RESULTS += 1; printf( "FAILED: " __FILE__ ", line %d - \"%s\" != %s\n", __LINE__, target, #x ); } - int main( void ) { char target[100]; -#include "printf_testcases.incl" +#include "printf_testcases.h" return TEST_RESULTS; }