aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-07-07 18:29:30 +0000
committerUlrich Drepper <drepper@redhat.com>2007-07-07 18:29:30 +0000
commitc2c7bd3f865be02443c65e9a4e57b7d96cde145a (patch)
treead0701b8bfa0433293d95247e5b24730d7f23652 /stdio-common/bug18.c
parent* sysdeps/sh/tls.h: Include stdlib.h, list.h, sysdep.h and (diff)
downloadglibc-c2c7bd3f865be02443c65e9a4e57b7d96cde145a.tar.gz
glibc-c2c7bd3f865be02443c65e9a4e57b7d96cde145a.tar.bz2
glibc-c2c7bd3f865be02443c65e9a4e57b7d96cde145a.zip
[BZ #4745]
2007-07-07 Ulrich Drepper <drepper@redhat.com> [BZ #4745] * libio/strops.c (_IO_str_underflow): Clear errno before returning EOF. * stdio-common/Makefile (tests): Add bug18. * stdio-common/bug18.c: New file.
Diffstat (limited to 'stdio-common/bug18.c')
-rw-r--r--stdio-common/bug18.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/stdio-common/bug18.c b/stdio-common/bug18.c
new file mode 100644
index 0000000000..c3a86e5786
--- /dev/null
+++ b/stdio-common/bug18.c
@@ -0,0 +1,42 @@
+#include <assert.h>
+#include <errno.h>
+#include <stdio.h>
+
+
+static int
+do_test (void)
+{
+ printf("setting errno to EINTR\n");
+ errno = EINTR;
+
+ printf("checking sscanf\n");
+
+ char str[] = "7-11";
+ int i, j, n;
+
+ i = j = n = 0;
+ sscanf (str, " %i - %i %n", &i, &j, &n);
+ printf ("found %i-%i (length=%i)\n", i, j, n);
+
+ int result = 0;
+ if (i != 7)
+ {
+ printf ("i is %d, expected 7\n", i);
+ result = 1;
+ }
+ if (j != 11)
+ {
+ printf ("j is %d, expected 11\n", j);
+ result = 1;
+ }
+ if (n != 4)
+ {
+ printf ("n is %d, expected 4\n", j);
+ result = 1;
+ }
+
+ return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"