diff --git a/ChangeLog b/ChangeLog index 3cfe7f0511..35d92d3b14 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 1998-11-13 Ulrich Drepper + * stdio-common/vfscanf.c: Don't return -1 in case of an invalid + format, jsut stop. + * version.h (VERSION): Bump to 2.0.102. * stdio-common/tstdiomisc.c (t2): Update test case for last scanf diff --git a/stdio-common/tstdiomisc.c b/stdio-common/tstdiomisc.c index e99457f510..1affac5b51 100644 --- a/stdio-common/tstdiomisc.c +++ b/stdio-common/tstdiomisc.c @@ -21,17 +21,24 @@ t2 (void) VAR = -1; \ retval = sscanf (INPUT, FORMAT, &VAR); \ printf ("sscanf (\"%s\", \"%s\", &x) => %d, x = %ld\n", \ - INPUT, FORMAT, retval, VAR); \ + INPUT, FORMAT, retval, (long int) VAR); \ result |= retval != EXP_RES || VAR != EXP_VAL SCAN ("12345", "%ld", N, 1, 12345); - SCAN ("12345", "%llllld", N, -1, -1); - SCAN ("12345", "%LLLLLd", N, -1, -1); + SCAN ("12345", "%llllld", N, 0, -1); + SCAN ("12345", "%LLLLLd", N, 0, -1); SCAN ("test ", "%*s%n", n, 0, 4); - SCAN ("test ", "%2*s%n", n, -1, -1); - SCAN ("12 ", "%l2d", n, -1, -1); + SCAN ("test ", "%2*s%n", n, 0, -1); + SCAN ("12 ", "%l2d", n, 0, -1); SCAN ("12 ", "%2ld", N, 1, 12); + n = -1; + N = -1; + retval = sscanf ("1 1", "%d %Z", &n, &N); + printf ("sscanf (\"1 1\", \"%%d %%Z\", &n, &N) => %d, n = %d, N = %ld\n", \ + retval, n, N); \ + result |= retval != 1 || n != 1 || N != -1; + return result; } diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c index d2302dd9a2..1b6dc6537d 100644 --- a/stdio-common/vfscanf.c +++ b/stdio-common/vfscanf.c @@ -85,11 +85,6 @@ __libc_cleanup_end (0); \ return EOF; \ } while (0) -# define fmt_error() do { \ - _IO_funlockfile (s); \ - __libc_cleanup_end (0); \ - return EOF; \ - } while (0) # define ARGCHECK(s, format) \ do \ { \ @@ -134,10 +129,6 @@ __set_errno (ENOMEM); \ return EOF; \ } while (0) -# define fmt_error() do { \ - funlockfile (s); \ - return EOF; \ - } while (0) # define ARGCHECK(s, format) \ do \ { \ @@ -1259,7 +1250,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr) default: /* If this is an unknown format character punt. */ - fmt_error (); + conv_error (); } }