diff options
Diffstat (limited to 'libc/stdio')
-rw-r--r-- | libc/stdio/scanf.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libc/stdio/scanf.c b/libc/stdio/scanf.c index 48d53c7f3..9ac3d3c9c 100644 --- a/libc/stdio/scanf.c +++ b/libc/stdio/scanf.c @@ -35,6 +35,11 @@ * * May 15, 2003 * Hopefully fix handling of 0 bytes with %s, %c, and %[ specifiers. + * + * July 17, 2003 + * Bug fix from Peter Kjellerstedt <peter.kjellerstedt@axis.com>. vfscanf was + * not setting the FILE bufread member to flag the end of the buffer. + * Also, do not set bufgetc member if getc macro support is disabled. */ #define _ISOC99_SOURCE /* for LLONG_MAX primarily... */ @@ -128,7 +133,10 @@ int vsscanf(__const char *sp, __const char *fmt, va_list ap) string->filedes = -2; string->modeflags = (__FLAG_NARROW|__FLAG_READONLY); string->bufstart = string->bufpos = (unsigned char *) ((void *) sp); - string->bufgetc = string->bufstart + strlen(sp); +#ifdef __STDIO_GETC_MACRO + string->bufgetc = +#endif /* __STDIO_GETC_MACRO */ + string->bufread = string->bufstart + strlen(sp); #ifdef __STDIO_MBSTATE __INIT_MBSTATE(&(string->state)); |