Mercurial > hg > octave-jordi > gnulib-hg
changeset 18047:6303ffca4ba4
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.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Sat, 04 Jul 2015 08:25:21 -0700 |
parents | 7f8f2a88bb1f |
children | 7cb7c39a86df |
files | ChangeLog lib/regex.h |
diffstat | 2 files changed, 16 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +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
--- a/lib/regex.h +++ b/lib/regex.h @@ -244,19 +244,16 @@ | 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