GNU bug report logs -
#21670
surprising bug in grep -e with anchors
Previous Next
Reported by: greg boyd <gboyd.ccsf <at> gmail.com>
Date: Sun, 11 Oct 2015 23:57:02 UTC
Severity: normal
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
On Sun, 11 Oct 2015 21:34:05 -0700
Paul Eggert <eggert <at> cs.ucla.edu> wrote:
> greg boyd wrote:
> > test case (single line)
> > abchelloabc
> >
> > grep does not find the line with grep -e '^hello' nor with grep -e 'hello$'
> > however, the line is output with
> > grep -e '^hello' -e 'hello$'
>
> Oooo, that's a good one. Give your student extra credit! As it happens, the bug was recently fixed by this patch by Norihiro Tanaka:
>
> http://git.savannah.gnu.org/cgit/grep.git/commit/?id=256a4b494fe1c48083ba73b4f62607234e4fefd5
>
> and the fix should appear in the next grep release. However, since the patch was supposed to affect only performance, it appears that the bug fix was due to luck, and I'm taking the liberty of adding your student's test case by installing the attached further patch, to help prevent this bug from coming back in a future version.
I found above patch is also buggy. It is never fix. It returns shorter
`must' than expected. e.g. `must' for pattern `.hello' is `hello', but
returns `hell' by this bug. Next, `must' for pattern `^hello' is `hello'
but returns `hell'. It will cause slite performance down, and disappear
bug#21670, BTW, I guess the bug does not change external behavior.
First patch fixes the bug. After the patch is applied, bug#21670
appears again. And, second patch fixes bug#21670.
When pattern has ^ and/or $, if begline and/or endline flag of mp is
turned off, EXACT should be false.
[0001-dfa-don-t-use-DFA-for-exact-matching.patch (text/plain, attachment)]
[0002-dfa-fix-bug-in-alternate-of-sub-patterns-different-i.patch (text/plain, attachment)]
This bug report was last modified 9 years and 206 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.