diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | dfa.c | 3 | ||||
-rw-r--r-- | regex.h | 12 |
3 files changed, 18 insertions, 3 deletions
@@ -1,3 +1,9 @@ +Sun May 8 20:27:27 2011 Arnold D. Robbins <arnold@skeeve.com> + + * dfa.c: Sync with GNU grep. + * regex.h: Sync with GLIBC in preparation for submitting updates + back. + Thu May 5 21:22:44 2011 Arnold D. Robbins <arnold@skeeve.com> * eval.c (r_interpret): PROCINFO sorting only takes effect @@ -598,7 +598,8 @@ setbit_case_fold ( else { #if MBS_SUPPORT - if (wctob ((unsigned char)b) == b) + int b2 = wctob ((unsigned char) b); + if (b2 == EOF || b2 == b) #endif setbit (b, c); } @@ -155,10 +155,18 @@ typedef unsigned long int reg_syntax_t; If not set, then the GNU regex operators are recognized. */ # define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) +/* If this bit is set, turn on internal regex debugging. + If not set, and debugging was on, turn it off. + This only works if regex.c is compiled -DDEBUG. + We define this bit always, so that all that's needed to turn on + debugging is to recompile regex.c; the calling code can always have + this bit set, and it won't affect anything in the normal case. */ +# define RE_DEBUG (RE_NO_GNU_OPS << 1) + /* If this bit is set, a syntactically invalid interval is treated as a string of ordinary characters. For example, the ERE 'a{1' is treated as 'a\{1'. */ -# define RE_INVALID_INTERVAL_ORD (RE_NO_GNU_OPS << 1) +# define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) /* If this bit is set, then ignore case when matching. If not set, then case is significant. */ @@ -175,7 +183,7 @@ typedef unsigned long int reg_syntax_t; /* If this bit is set, then no_sub will be set to 1 during re_compile_pattern. */ -#define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) +# define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) #endif /* This global variable defines the particular regexp syntax to use (for |