+2015-07-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ regex: match current GNU grep behavior
+ These symbols have not matched GNU grep behavior for quite some time.
+ Fix prompted by Balazs Kezes bug report at: http://bugs.gnu.org/20974
+ * lib/regex.h (RE_SYNTAX_GREP, RE_SYNTAX_EGREP):
+ Change to match current GNU behavior.
+ Simplify by expressing it as differences from POSIX BREs and EREs.
+ (RE_SYNTAX_POSIX_EGREP): No longer differs from GNU behavior.
+
2015-07-03 Jim Meyering <meyering@fb.com>
set-permissions.c: adjust acl_from_mode's cpp guard
| RE_INVALID_INTERVAL_ORD)
# define RE_SYNTAX_GREP \
- (RE_BK_PLUS_QM | RE_CHAR_CLASSES \
- | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \
- | RE_NEWLINE_ALT)
+ ((RE_SYNTAX_POSIX_BASIC | RE_NEWLINE_ALT) \
+ & ~(RE_CONTEXT_INVALID_DUP | RE_DOT_NOT_NULL))
# define RE_SYNTAX_EGREP \
- (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \
- | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \
- | RE_NEWLINE_ALT | RE_NO_BK_PARENS \
- | RE_NO_BK_VBAR)
+ ((RE_SYNTAX_POSIX_EXTENDED | RE_INVALID_INTERVAL_ORD | RE_NEWLINE_ALT) \
+ & ~(RE_CONTEXT_INVALID_OPS | RE_DOT_NOT_NULL))
+/* POSIX grep -E behavior is no longer incompatible with GNU. */
# define RE_SYNTAX_POSIX_EGREP \
- (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES \
- | RE_INVALID_INTERVAL_ORD)
+ RE_SYNTAX_EGREP
/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */
# define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC