diff options
author | Ulrich Drepper <drepper@redhat.com> | 2002-07-15 23:37:22 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2002-07-15 23:37:22 +0000 |
commit | 706d1dee4692cc5419275fcddc4518933ff2a39e (patch) | |
tree | c795b0e8236092f2345ac7803181e41c13c5427c /libio/bug-rewind.c | |
parent | c3da4f0cba685e6918d2babb286bd731ae7eab71 (diff) | |
download | glibc-706d1dee4692cc5419275fcddc4518933ff2a39e.zip glibc-706d1dee4692cc5419275fcddc4518933ff2a39e.tar.gz glibc-706d1dee4692cc5419275fcddc4518933ff2a39e.tar.bz2 |
Update.
2002-07-15 Ulrich Drepper <drepper@redhat.com>
* libio/wfileops.c (_IO_wfile_seekoff): Reposition wide pointers
and adjust state for seek position. [PR libc/4070]
* libio/Makefile (tests): Add bug-rewind.
* libio/bug-rewind.c: New file.
Diffstat (limited to 'libio/bug-rewind.c')
-rw-r--r-- | libio/bug-rewind.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/libio/bug-rewind.c b/libio/bug-rewind.c new file mode 100644 index 0000000..2a30d28 --- /dev/null +++ b/libio/bug-rewind.c @@ -0,0 +1,52 @@ +#include <stdio.h> +#include <wchar.h> + +#define PASSED 0 +#define FAILED 3 + + +int +main (void) +{ + FILE *fptr; + char arg1; + char arg2; + int ret, ret1, ret2, result, num; + + ret1 = 0; + ret2 = 0; + + if ((fptr = fopen ("./wrewind.dat", "w+")) == NULL) + { + printf ("Unable to open file.\n"); + return 1; + } + + if ((ret = fwprintf (fptr, L"cderf")) <= 0) + { + printf ("Unable to write to file with fwprintf().\n"); + fclose (fptr); + return 2; + } + + rewind (fptr); + ret1 = fwscanf (fptr, L"%c%c", &arg1, &arg2); + + rewind (fptr); + ret2 = fwscanf (fptr, L"%c%n%c", &arg1, &num, &arg2); + + if (arg2 != 'd') + { + result = FAILED; + printf ("rewind after first fwscanf failed\n"); + } + else + { + printf ("Passed\n"); + result = PASSED; + } + + + fclose (fptr); + return result; +} |