diff options
author | Manuel Novoa III <mjn3@codepoet.org> | 2003-07-17 16:07:48 +0000 |
---|---|---|
committer | Manuel Novoa III <mjn3@codepoet.org> | 2003-07-17 16:07:48 +0000 |
commit | 7247787b5029fc53a58751ca299b92a7cd96537a (patch) | |
tree | 66c472a1cbef13395394d1a3933f1d7bee2b3642 /libc | |
parent | 654b5ef1061619193ac07ef247dad1faf790b793 (diff) |
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.
Diffstat (limited to 'libc')
-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)); |