diff options
Diffstat (limited to 'stdio-common/bug14.c')
-rw-r--r-- | stdio-common/bug14.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/stdio-common/bug14.c b/stdio-common/bug14.c new file mode 100644 index 0000000000..31ef754358 --- /dev/null +++ b/stdio-common/bug14.c @@ -0,0 +1,28 @@ +/* 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; +} |