summaryrefslogtreecommitdiff
path: root/libc/stdio/scanf.c
diff options
context:
space:
mode:
authorManuel Novoa III <mjn3@codepoet.org>2002-09-06 15:34:42 +0000
committerManuel Novoa III <mjn3@codepoet.org>2002-09-06 15:34:42 +0000
commit8b02a71f53d75bd679c46141a0a2a8f8b26aef19 (patch)
treeedeaf6cbaa06a28eab43b852eb840948990020d5 /libc/stdio/scanf.c
parent742b3c935b43d864f0dc90b9af2ae6138654fd7a (diff)
Patch from Tero_Lyytik�inen <tero@paravant.fi> to fix bug in matchchar
case.
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);