Skip to content

grep: better support for binary files

René Scharfe git 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest7 patches 2 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7grep: add test script for binary file handlingt/t7008-grep-binary.sh+30 -00 replies
2/7grep: refactor handling of binary mode optionsgrep.c+11 -90 replies
3/7grep: --count over binarygrep.c t/t7008-grep-binary.sh+7 -12 replies
4/7grep: use memmem() for fixed string searchgrep.c t/t7008-grep-binary.sh+13 -70 replies
5/7grep: continue case insensitive fixed string search after NUL charsgrep.c t/t7008-grep-binary.sh+13 -30 replies
6/7grep: add regmatch(), a wrapper for REG_STARTEND handlinggrep.c+13 -90 replies
7/7grep: use regmatch() for line matchinggrep.c t/t7008-grep-binary.sh+11 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/7] grep: better support for binary files

This series improves support of git grep for binary files. It tries to pick the low hanging fruits; at the end you can search _in_ files that contain NUL characters, but you can't search _for_ NULs, yet.

[PATCH 1/7] grep: add test script for binary file handling

This patch adds a simple test script documenting what git grep can do with binary files.

[PATCH 2/7] grep: refactor handling of binary mode options [PATCH 3/7] grep: --count over binary

These two makes git grep handle counting in binary files like GNU grep does.

[PATCH 4/7] grep: use memmem() for fixed string search
[PATCH 5/7] grep: continue case insensitive fixed string search after NUL chars

These two patches make git grep -F work on binary files.

[PATCH 6/7] grep: add regmatch(), a wrapper for REG_STARTEND handling [PATCH 7/7] grep: use regmatch() for line matching

The final patches make git grep work on binary files if the platform's regexec() supports the flag REG_STARTEND. Our own version in compat/ doesn't, unfortunately.

 grep.c                 |   70 ++++++++++++++++++++++++++++-------------------
 t/t7008-grep-binary.sh |   54 +++++++++++++++++++++++++++++++++++++
 2 files changed, 96 insertions(+), 28 deletions(-)