[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] regex: match current GNU grep behavior
From: |
Paul Eggert |
Subject: |
[PATCH] regex: match current GNU grep behavior |
Date: |
Sat, 4 Jul 2015 08:26:18 -0700 |
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.
---
ChangeLog | 10 ++++++++++
lib/regex.h | 15 ++++++---------
2 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 36f5083..4931868 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2015-07-04 Paul Eggert <address@hidden>
+
+ 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 <address@hidden>
set-permissions.c: adjust acl_from_mode's cpp guard
diff --git a/lib/regex.h b/lib/regex.h
index dd12ee9..6f3bae3 100644
--- a/lib/regex.h
+++ b/lib/regex.h
@@ -244,19 +244,16 @@ extern reg_syntax_t re_syntax_options;
| 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
--
2.1.0
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] regex: match current GNU grep behavior,
Paul Eggert <=