[Bug 258616] fgrep fails to find string that is present
- In reply to: bugzilla-noreply_a_freebsd.org: "[Bug 258616] fgrep fails to find string that is present"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 20 Sep 2021 08:27:21 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258616
--- Comment #3 from Darren Tucker <dtucker@dtucker.net> ---
oh, it looks like /usr/bin/grep is gnu/usr.bin/grep and not usr.bin/grep:
$ grep --version
grep (GNU grep) 2.5.1-FreeBSD [...]
building gnu/usr.bin/grep does indeed reproduce the problem.
I reproduced the problem with stock GNU grep v2.5.1 and found that it was fixed
between 2.18 and 2.19 in this upstream commit:
commit 757381e58d669729510a89c323d4698f9a81f6c0
Author: Norihiro Tanaka <noritnk@kcn.ne.jp>
Date: Sat Mar 15 14:41:52 2014 +0900
grep: use the Galil rule for Boyer-Moore algorithm in KWSet
The Boyer-Moore algorithm is O(m*n), which means it may be much
slower than the DFA. Its Galil rule variant is O(n) and increases
efficiency in the typical case; it skips sections that are known
to match and does not compare more than once for a position in the text.
To use the Galil rule, look for the delta2 shift at each position
from the trie instead of the 'mind2' value.
* src/kwset.c (struct kwset): Replace member 'mind2' with 'shift'.
(kwsprep): Look for the delta2 shift.
(bmexec): Use it.
--
You are receiving this mail because:
You are the assignee for the bug.