aboutsummaryrefslogtreecommitdiff
path: root/posix/bug-regex1.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-02-07 01:28:35 +0000
committerUlrich Drepper <drepper@redhat.com>2001-02-07 01:28:35 +0000
commit672fd41bbcc594603afb7ce444ae2ffd23dc0bdc (patch)
treed0624e070a96313c60bc2f171d408f1ff74b3953 /posix/bug-regex1.c
parent5c0111e9aa2ba87f496d279bd6c1c3776fd76c64 (diff)
downloadglibc-672fd41bbcc594603afb7ce444ae2ffd23dc0bdc.zip
glibc-672fd41bbcc594603afb7ce444ae2ffd23dc0bdc.tar.gz
glibc-672fd41bbcc594603afb7ce444ae2ffd23dc0bdc.tar.bz2
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.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/posix/bug-regex1.c b/posix/bug-regex1.c
new file mode 100644
index 0000000..262a22e
--- /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 (&regex, '\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, &regex);
+ if (s != NULL)
+ {
+ puts ("re_compile_pattern return non-NULL value");
+ result = 1;
+ }
+ else
+ {
+ match = re_match (&regex, "an", 2, 0, &regs);
+ 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, &regex);
+ if (s != NULL)
+ {
+ puts ("re_compile_pattern return non-NULL value");
+ result = 1;
+ }
+ else
+ {
+ match = re_match (&regex, "an", 2, 0, &regs);
+ if (match != 2)
+ {
+ printf ("re_match returned %d, expected 2\n", match);
+ result = 1;
+ }
+ else
+ puts (" -> OK");
+ }
+
+ return result;
+}