* stdio-common/Makefile (tests): Add bug14.
* stdio-common/bug14.c: New file.
2003-01-15 Ulrich Drepper <drepper@redhat.com>
+ * stdio-common/Makefile (tests): Add bug14.
+ * stdio-common/bug14.c: New file.
+
* stdio-common/vfscanf.c: When recognizing multibyte characters in
string reset the byte counter after mbrtowc reported it is not a
partial character. Reported by Al Viro <aviro@redhat.com>.
-# Copyright (C) 1991-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1991-2002, 2003 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
scanf1 scanf2 scanf3 scanf4 scanf5 scanf7 scanf8 scanf9 scanf10 \
scanf11 scanf12 tst-tmpnam tst-cookie tst-obprintf tst-sscanf \
tst-swprintf tst-fseek tst-fmemopen test-vfprintf tst-gets \
- tst-perror tst-sprintf tst-rndseek tst-fdopen tst-fphex
+ tst-perror tst-sprintf tst-rndseek tst-fdopen tst-fphex bug14
test-srcs = tst-unbputc tst-printf
--- /dev/null
+/* Test case by Al Viro <aviro@redhat.com>. */
+#include <locale.h>
+#include <wchar.h>
+#include <stdio.h>
+
+/* MB_CUR_MAX multibyte ones (6 UTF+0080, in this case) */
+static const char string[] = "\
+\xc2\x80\xc2\x80\xc2\x80\xc2\x80\xc2\x80\xc2\x80";
+
+int
+main (void)
+{
+ if (setlocale (LC_ALL, "de_DE.utf8") == NULL)
+ {
+ puts ("cannot set locale");
+ exit (1);
+ }
+
+ wchar_t s[7];
+ int n = sscanf (string, "%l[\x80\xc2]", s);
+ if (n != 1)
+ {
+ printf ("return values %d != 1\n", n);
+ exit (1);
+ }
+
+ return 0;
+}