X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=functions%2Fstdio%2Fvfscanf.c;h=f5b1f3f8864743c1b88944634af6c59ccbdfdde3;hb=35deadeb6e2db75a54461d5a3e862096aa0b25dd;hp=eda4226988d9c2b6222f624a613563331790accd;hpb=c541b161cd56c9de041d10827e13d5d9a5bfc151;p=pdclib.old diff --git a/functions/stdio/vfscanf.c b/functions/stdio/vfscanf.c index eda4226..f5b1f3f 100644 --- a/functions/stdio/vfscanf.c +++ b/functions/stdio/vfscanf.c @@ -25,6 +25,7 @@ int vfscanf( FILE * _PDCLIB_restrict stream, const char * _PDCLIB_restrict forma status.prec = 0; status.stream = stream; va_copy( status.arg, arg ); + // FIXME: This whole shebang should operate on STREAM, not S... while ( *format != '\0' ) { const char * rc; @@ -59,6 +60,11 @@ int vfscanf( FILE * _PDCLIB_restrict stream, const char * _PDCLIB_restrict forma } else { + /* NULL return code indicates matching error */ + if ( rc == NULL ) + { + break; + } /* Continue parsing after conversion specifier */ format = rc; }