aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--stdio-common/tstdiomisc.c17
-rw-r--r--stdio-common/vfscanf.c11
3 files changed, 16 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 3cfe7f0..35d92d3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
1998-11-13 Ulrich Drepper <drepper@cygnus.com>
+ * 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 e99457f..1affac5 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 d2302dd..1b6dc65 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 ();
}
}