diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-02-07 01:28:35 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-02-07 01:28:35 +0000 |
commit | 672fd41bbcc594603afb7ce444ae2ffd23dc0bdc (patch) | |
tree | d0624e070a96313c60bc2f171d408f1ff74b3953 /posix/bug-regex1.c | |
parent | 5c0111e9aa2ba87f496d279bd6c1c3776fd76c64 (diff) | |
download | glibc-672fd41bbcc594603afb7ce444ae2ffd23dc0bdc.tar.gz glibc-672fd41bbcc594603afb7ce444ae2ffd23dc0bdc.tar.xz glibc-672fd41bbcc594603afb7ce444ae2ffd23dc0bdc.zip |
Update.
2001-02-06 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: First attempt to fix the broken code. Patch by Jes Sorensen.
Diffstat (limited to 'posix/bug-regex1.c')
-rw-r--r-- | posix/bug-regex1.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/posix/bug-regex1.c b/posix/bug-regex1.c new file mode 100644 index 0000000000..262a22e971 --- /dev/null +++ b/posix/bug-regex1.c @@ -0,0 +1,64 @@ +/* Test case by Jim Meyering <jim@meyering.net>. */ +#include <locale.h> +#include <stdio.h> +#include <string.h> +#include <regex.h> + +int +main (void) +{ + struct re_pattern_buffer regex; + struct re_registers regs; + const char *s; + int match; + int result = 0; + + memset (®ex, '\0', sizeof (regex)); + + setlocale (LC_ALL, "de_DE.ISO-8859-1"); + fwide (stdout, -1); + + re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_DEBUG); + + puts ("in C locale"); + setlocale (LC_ALL, "C"); + s = re_compile_pattern ("[anù]*n", 7, ®ex); + if (s != NULL) + { + puts ("re_compile_pattern return non-NULL value"); + result = 1; + } + else + { + match = re_match (®ex, "an", 2, 0, ®s); + if (match != 2) + { + printf ("re_match returned %d, expected 2\n", match); + result = 1; + } + else + puts (" -> OK"); + } + + puts ("in de_DE.ISO-8859-1 locale"); + setlocale (LC_ALL, "de_DE.ISO-8859-1"); + s = re_compile_pattern ("[anù]*n", 7, ®ex); + if (s != NULL) + { + puts ("re_compile_pattern return non-NULL value"); + result = 1; + } + else + { + match = re_match (®ex, "an", 2, 0, ®s); + if (match != 2) + { + printf ("re_match returned %d, expected 2\n", match); + result = 1; + } + else + puts (" -> OK"); + } + + return result; +} |