summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/regex/regcomp.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index d5a226f0b..dff98bf06 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-11 Yaakov Selkowitz <yselkowitz@...>
+
+ * regex/regcomp.c (p_ere): Allow vertical-line following
+ left-parenthesis in ERE, as in glibc.
+
2012-06-10 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
* include/sys/elf_common.h (R_386_16): Define.
diff --git a/winsup/cygwin/regex/regcomp.c b/winsup/cygwin/regex/regcomp.c
index 30502f7f1..b44ba2c62 100644
--- a/winsup/cygwin/regex/regcomp.c
+++ b/winsup/cygwin/regex/regcomp.c
@@ -324,7 +324,10 @@ p_ere(struct parse *p,
conc = HERE();
while (MORE() && (c = PEEK()) != '|' && c != stop)
p_ere_exp(p);
+#ifndef __CYGWIN__
+ /* undefined behaviour according to POSIX; allowed by glibc */
(void)REQUIRE(HERE() != conc, REG_EMPTY); /* require nonempty */
+#endif
if (!EAT('|'))
break; /* NOTE BREAK OUT */