From 7c6e85cf4eccbd51291ae41daec57d1967050b44 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Mon, 18 Jan 2016 10:32:26 -0800
Subject: [PATCH] regex: fix [ diagnostic

Problem and fix reported by Aharon Robbins in:
http://lists.gnu.org/archive/html/bug-gnulib/2016-01/msg00082.html
* lib/regcomp.c (REG_EBRACK_IDX): Fix misleading diagnostic about [.

* lib/regcomp.c (build_range_exp, build_charclass_op)
---
 ChangeLog     | 7 ++++++-
 lib/regcomp.c | 4 ++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ecb07463b1..d4779a12a0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,14 @@
 2016-01-18  Paul Eggert  <eggert@cs.ucla.edu>
 
+	regex: fix [ diagnostic
+	Problem and fix reported by Aharon Robbins in:
+	http://lists.gnu.org/archive/html/bug-gnulib/2016-01/msg00082.html
+	* lib/regcomp.c (REG_EBRACK_IDX): Fix misleading diagnostic about [.
+
 	regex: fix memory leaks
 	Problem and draft fix reported by Aharon Robbins in:
 	http://lists.gnu.org/archive/html/bug-gnulib/2016-01/msg00082.html
-	* lib/regcomp.c (build_range_exp, build_charclass_op):
+	* lib/regcomp.c (build_range_exp, build_charclass_op)
 	* lib/regex_internal.c (re_dfa_add_node):
 	Fix memory leak on failure.
 
diff --git a/lib/regcomp.c b/lib/regcomp.c
index 0369f26f81..1eda11009d 100644
--- a/lib/regcomp.c
+++ b/lib/regcomp.c
@@ -153,9 +153,9 @@ static const char __re_error_msgid[] =
     gettext_noop ("Invalid back reference") /* REG_ESUBREG */
     "\0"
 #define REG_EBRACK_IDX	(REG_ESUBREG_IDX + sizeof "Invalid back reference")
-    gettext_noop ("Unmatched [ or [^")	/* REG_EBRACK */
+    gettext_noop ("Unmatched [, [^, [:, [., or [=")	/* REG_EBRACK */
     "\0"
-#define REG_EPAREN_IDX	(REG_EBRACK_IDX + sizeof "Unmatched [ or [^")
+#define REG_EPAREN_IDX	(REG_EBRACK_IDX + sizeof "Unmatched [, [^, [:, [., or [=")
     gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */
     "\0"
 #define REG_EBRACE_IDX	(REG_EPAREN_IDX + sizeof "Unmatched ( or \\(")
-- 
2.39.5