>From 66521f5b70559b58498d47a0afb92b174f12d78f Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 4 Jul 2015 07:16:32 -0700 Subject: [PATCH 3/6] dfa: '.' and '[^x]' now consistently match newline * src/dfa.c (parse_bracket_exp, lex, add_utf8_anychar) (match_anychar): RE_DOT_NEWLINE and RE_HAT_LISTS_NOT_NEWLINE are about LF, not about eolbyte. This patch does not affect 'grep', but may affect other users of dfa.c. --- src/dfa.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/dfa.c b/src/dfa.c index 8901f69..c7b659e 100644 --- a/src/dfa.c +++ b/src/dfa.c @@ -1242,7 +1242,7 @@ parse_bracket_exp (void) assert (!dfa->multibyte); notset (ccl); if (syntax_bits & RE_HAT_LISTS_NOT_NEWLINE) - clrbit (eolbyte, ccl); + clrbit ('\n', ccl); } return CSET + charclass_index (ccl); @@ -1487,7 +1487,7 @@ lex (void) zeroset (ccl); notset (ccl); if (!(syntax_bits & RE_DOT_NEWLINE)) - clrbit (eolbyte, ccl); + clrbit ('\n', ccl); if (syntax_bits & RE_DOT_NOT_NULL) clrbit ('\0', ccl); laststart = false; @@ -1759,7 +1759,7 @@ add_utf8_anychar (void) if (i == 1) { if (!(syntax_bits & RE_DOT_NEWLINE)) - clrbit (eolbyte, c); + clrbit ('\n', c); if (syntax_bits & RE_DOT_NOT_NULL) clrbit ('\0', c); } @@ -2991,7 +2991,7 @@ match_anychar (struct dfa *d, state_num s, position pos, int context; /* Check syntax bits. */ - if (wc == (wchar_t) eolbyte) + if (wc == (wchar_t) '\n') { if (!(syntax_bits & RE_DOT_NEWLINE)) return 0; -- 2.1.0