summaryrefslogtreecommitdiff
path: root/libc/stdio/scanf.c
diff options
context:
space:
mode:
Diffstat (limited to 'libc/stdio/scanf.c')
-rw-r--r--libc/stdio/scanf.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libc/stdio/scanf.c b/libc/stdio/scanf.c
index 7ebde12ea..7c316cdf8 100644
--- a/libc/stdio/scanf.c
+++ b/libc/stdio/scanf.c
@@ -29,6 +29,9 @@
*
* So uClibc's *scanf functions conform to the standard, and glibc's
* implementation doesn't for the "100ergs" case mentioned above.
+ *
+ * Sep 6, 2002
+ * Patch from Tero_Lyytikäinen <tero@paravant.fi> to fix bug in matchchar case.
*/
#define _ISOC99_SOURCE /* for LLONG_MAX primarily... */
@@ -581,6 +584,7 @@ int vfscanf(FILE *fp, const char *format, va_list ap)
} else { /* Match the current fmt char. */
matchchar:
if (scan_getc_nw(&sc) != *fmt) {
+ scan_ungetc(&sc);
goto done;
}
scan_getc_nw(&sc);