summary refs log tree commit diff
path: root/posix/bug-regex16.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-01-16 19:20:36 +0000
committerUlrich Drepper <drepper@redhat.com>2003-01-16 19:20:36 +0000
commit7b7b9e70ea0d820c863c78fbf84fe52626a408d6 (patch)
treee790ee9854276c668b51c81e470d2aab2df0800c /posix/bug-regex16.c
parent850dcfcafe6c1cc9e59763a882a25a2f0c2c4d68 (diff)
downloadglibc-7b7b9e70ea0d820c863c78fbf84fe52626a408d6.tar.gz
glibc-7b7b9e70ea0d820c863c78fbf84fe52626a408d6.tar.xz
glibc-7b7b9e70ea0d820c863c78fbf84fe52626a408d6.zip
Update.
	* posix/regcomp.c (parse_bracket_exp): If build_charclass fails,
	set *err to the returned error, not to REG_ESPACE unconditionally.
	(build_word_op): Likewise.
	* posix/Makefile (tests): Add bug-regex16.
	* posix/bug-regex16.c: New test.

2003-01-16  Jakub Jelinek  <jakub@redhat.com>
Diffstat (limited to 'posix/bug-regex16.c')
-rw-r--r--posix/bug-regex16.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/posix/bug-regex16.c b/posix/bug-regex16.c
new file mode 100644
index 0000000000..1e41ccb718
--- /dev/null
+++ b/posix/bug-regex16.c
@@ -0,0 +1,35 @@
+/* Test re_compile_pattern error messages.  */
+
+#include <stdio.h>
+#include <string.h>
+#include <regex.h>
+
+int
+main (void)
+{
+  struct re_pattern_buffer re;
+  const char *s;
+  int ret = 0;
+
+  re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+  memset (&re, 0, sizeof (re));
+  s = re_compile_pattern ("[[.invalid_collating_symbol.]]", 30, &re);
+  if (s == NULL || strcmp (s, "Invalid collation character"))
+    {
+      printf ("re_compile_pattern returned %s\n", s);
+      ret = 1;
+    }
+  s = re_compile_pattern ("[[=invalid_equivalence_class=]]", 31, &re);
+  if (s == NULL || strcmp (s, "Invalid collation character"))
+    {
+      printf ("re_compile_pattern returned %s\n", s);
+      ret = 1;
+    }
+  s = re_compile_pattern ("[[:invalid_character_class:]]", 29, &re);
+  if (s == NULL || strcmp (s, "Invalid character class name"))
+    {
+      printf ("re_compile_pattern returned %s\n", s);
+      ret = 1;
+    }
+  return ret;
+}