From fcc10ffab6d696cdda8a1a33b8e1720d90f7a15b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 22 Jul 2000 07:26:13 +0000 Subject: Update. * stdio-common/vfscanf.c: Handle input -- with format %f correctly (it's no input error). * stdio-common/tstscanf.c: Add test case for format %f with input --. * stdio-common/scanf12.c: Correct expected result for first scanf. --- stdio-common/scanf12.c | 2 +- stdio-common/tstscanf.c | 17 +++++++++++++++-- stdio-common/vfscanf.c | 6 +++--- 3 files changed, 19 insertions(+), 6 deletions(-) (limited to 'stdio-common') diff --git a/stdio-common/scanf12.c b/stdio-common/scanf12.c index b557785377..db37e2fedc 100644 --- a/stdio-common/scanf12.c +++ b/stdio-common/scanf12.c @@ -7,7 +7,7 @@ main (void) double d; int c; - if (scanf ("%lg", &d) != EOF) + if (scanf ("%lg", &d) != 0) { printf ("scanf didn't failed\n"); exit (1); diff --git a/stdio-common/tstscanf.c b/stdio-common/tstscanf.c index 6db98eef31..4732657e53 100644 --- a/stdio-common/tstscanf.c +++ b/stdio-common/tstscanf.c @@ -277,7 +277,7 @@ main (int argc, char **argv) /* From PR libc/1313 reported by Ben Caradoc-Davies . */ float value; int res; - + res = sscanf ("0123", "%2f", &value); if (res != 1 || value != 1.0) { @@ -285,6 +285,19 @@ main (int argc, char **argv) result = 1; } } - + + fputs ("Test 10:\n", stdout); + { + float value; + int res; + + res = sscanf ("--", "%f", &value); + if (res != 0) + { + fputs ("test failed!\n", stdout); + result = 1; + } + } + exit (result); } diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c index 90d73bdbde..9457c4c17e 100644 --- a/stdio-common/vfscanf.c +++ b/stdio-common/vfscanf.c @@ -1270,7 +1270,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr) if (n == 10) { - /*Have not yet found the digit. */ + /* Have not yet found the digit. */ while (++from_level <= to_level) { /* Search all ten digits of this level. */ @@ -1491,7 +1491,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr) { /* This is no valid number. */ ungetc (c, s); - input_error (); + conv_error (); } #else /* Match against the decimal point. At this point @@ -1524,7 +1524,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr) c = *--cmpp; } - input_error (); + conv_error (); } if (width > 0) /* +1 because we substract below. */ -- cgit v1.2.3