Subject: bug#18762: [PATCH] dfa: don't consider RE_DOT_NEWLINE and RE_DOT_NOT_NULL in matching with a bracket expression

From: Jim Meyering <[email-masked]>
Date: Sat, 18 Oct 2014 17:16:13 -0700

On Sat, Oct 18, 2014 at 4:30 PM, Norihiro Tanaka <[email-masked]> wrote:
> Thanks for the review.
>
> This is a potential bug fix.  However, match_mb_charset function isn't
> used in grep and gawk, as DFA treats MBCSET as BACKREF by following code
> if `backref' is provided.

dfa.c's match_mb_charset function *is* used, e.g., in a
command like this one:

  printf '\0' |src/grep -aE '^\s?$'

However, as I mentioned, so far I have been unable to
construct a combination of syntax_bits settings and input/RE pairs
that induces a change in behavior.

>  Therefore the fix never induces any semantic
> change in grep and gawk.
>
>               if (d->states[s].has_mbcset && backref)
>                 {
>                   *backref = 1;
>                   goto done;
>                 }
>
> Essentially, the function is able to be removed.  However, if we regard
> DFA as a library,  we should keep it.