From: Jeff King <peff@peff.net>
To: Michael J Gruber <git@drmicha.warpmail.net>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 5/6] grep: allow to use textconv filters
Date: Sat, 20 Apr 2013 00:31:22 -0400 [thread overview]
Message-ID: <20130420043122.GF24970@sigill.intra.peff.net> (raw)
In-Reply-To: <2e4b789c1578660b8b62eabd9e0418a3edbc8f6a.1366389739.git.git@drmicha.warpmail.net>
On Fri, Apr 19, 2013 at 06:44:48PM +0200, Michael J Gruber wrote:
> From: Jeff King <peff@peff.net>
>
> Recently and not so recently, we made sure that log/grep type operations
> use textconv filters when a userfacing diff would do the same:
>
> ef90ab6 (pickaxe: use textconv for -S counting, 2012-10-28)
> b1c2f57 (diff_grep: use textconv buffers for add/deleted files, 2012-10-28)
> 0508fe5 (combine-diff: respect textconv attributes, 2011-05-23)
>
> "git grep" currently does not use textconv filters at all, that is
> neither for displaying the match and context nor for the actual grepping.
>
> Introduce an option "--textconv" which makes git grep use any configured
> textconv filters for grepping and output purposes. It is off by default.
>
> Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
> ---
> builtin/grep.c | 2 +
> grep.c | 100 ++++++++++++++++++++++++++++++++++++++++++-------
> grep.h | 1 +
> t/t7008-grep-binary.sh | 18 +++++++++
> 4 files changed, 107 insertions(+), 14 deletions(-)
This patch, of course, is flawless. :)
Feel free to add:
Signed-off-by: Jeff King <peff@peff.net>
> + /*
> + * We know the result of a textconv is text, so we only have to care
> + * about binary handling if we are not using it.
> + */
> + if (!textconv) {
> + switch (opt->binary) {
> + case GREP_BINARY_DEFAULT:
> + if (grep_source_is_binary(gs))
> + binary_match_only = 1;
> + break;
> + case GREP_BINARY_NOMATCH:
> + if (grep_source_is_binary(gs))
> + return 0; /* Assume unmatch */
> + break;
> + case GREP_BINARY_TEXT:
> + break;
> + default:
> + die("bug: unknown binary handling mode");
> + }
> }
Junio mentioned checking the textconv output for binary-ness. Doing that
would involve removing the outer conditional here. But it's not quite so
simple, as we don't load the textconv results until later, and
grep_source_is_binary will lazily load the contents. I think it would be
sufficient to fill_textconv_grep() right before, and then
grep_source_is_binary would rely on the cached buffer.
-Peff
next prev parent reply other threads:[~2013-04-20 4:31 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-19 16:44 [PATCH 0/6] grep with textconv Michael J Gruber
2013-04-19 16:44 ` [PATCH 1/6] t4030: demonstrate behavior of show " Michael J Gruber
2013-04-20 4:04 ` Jeff King
2013-04-20 13:35 ` Michael J Gruber
2013-04-19 16:44 ` [PATCH 2/6] show: obey --textconv for blobs Michael J Gruber
2013-04-20 4:06 ` Jeff King
2013-04-20 13:38 ` Michael J Gruber
2013-04-21 3:37 ` Jeff King
2013-04-22 10:29 ` Michael J Gruber
2013-04-22 15:25 ` Junio C Hamano
2013-04-22 15:29 ` Jeff King
2013-04-22 15:37 ` Jeremy Rosen
2013-04-22 15:54 ` Matthieu Moy
2013-04-23 8:58 ` Michael J Gruber
2013-04-19 16:44 ` [PATCH 3/6] cat-file: do not die on --textconv without textconv filters Michael J Gruber
2013-04-19 18:15 ` Junio C Hamano
2013-04-20 4:17 ` Jeff King
2013-04-20 14:27 ` Michael J Gruber
2013-04-19 16:44 ` [PATCH 4/6] t7008: demonstrate behavior of grep with textconv Michael J Gruber
2013-04-19 16:44 ` [PATCH 5/6] grep: allow to use textconv filters Michael J Gruber
2013-04-20 4:31 ` Jeff King [this message]
2013-04-19 16:44 ` [PATCH 6/6] grep: obey --textconv for the case rev:path Michael J Gruber
2013-04-20 4:24 ` Jeff King
2013-04-20 14:42 ` Michael J Gruber
2013-04-21 3:41 ` Jeff King
2013-04-19 18:24 ` [PATCH 0/6] grep with textconv Junio C Hamano
2013-04-20 4:26 ` Jeff King
2013-04-20 13:32 ` Michael J Gruber
2013-04-23 12:11 ` [PATCHv2 0/7] " Michael J Gruber
2013-04-23 12:11 ` [PATCHv2 1/7] t4030: demonstrate behavior of show " Michael J Gruber
2013-04-23 15:11 ` Junio C Hamano
2013-04-23 12:11 ` [PATCHv2 2/7] show: obey --textconv for blobs Michael J Gruber
2013-04-23 15:14 ` Junio C Hamano
2013-04-24 10:09 ` Michael J Gruber
2013-04-24 17:30 ` Junio C Hamano
2013-04-23 12:11 ` [PATCHv2 3/7] cat-file: do not die on --textconv without textconv filters Michael J Gruber
2013-04-23 15:15 ` Junio C Hamano
2013-04-23 12:11 ` [PATCHv2 4/7] t7008: demonstrate behavior of grep with textconv Michael J Gruber
2013-04-23 15:16 ` Junio C Hamano
2013-04-24 10:09 ` Michael J Gruber
2013-04-24 17:29 ` Junio C Hamano
2013-04-23 12:11 ` [PATCHv2 5/7] grep: allow to use textconv filters Michael J Gruber
2013-04-23 12:11 ` [PATCHv2 6/7] grep: honor --textconv for the case rev:path Michael J Gruber
2013-04-23 12:11 ` [PATCHv2 7/7] git grep: honor textconv by default Michael J Gruber
2013-04-23 15:20 ` Junio C Hamano
2013-04-24 10:05 ` Michael J Gruber
2013-04-24 17:35 ` Junio C Hamano
2013-04-24 17:57 ` Matthieu Moy
2013-04-24 18:55 ` Junio C Hamano
2013-04-26 11:59 ` Michael J Gruber
2013-04-26 13:23 ` Matthieu Moy
2013-04-29 9:04 ` Michael J Gruber
2013-04-29 15:04 ` Junio C Hamano
2013-05-10 15:08 ` [PATCHv3 0/7] textconv with grep and show Michael J Gruber
2013-05-10 15:10 ` [PATCHv3 1/7] t4030: demonstrate behavior of show with textconv Michael J Gruber
2013-05-10 15:10 ` [PATCHv3 2/7] diff_opt: track whether flags have been set explicitly Michael J Gruber
2013-05-10 15:31 ` Eric Sunshine
2013-05-10 15:10 ` [PATCHv3 3/7] show: honor --textconv for blobs Michael J Gruber
2013-05-10 17:02 ` Junio C Hamano
2013-05-10 17:34 ` Jeff King
2013-05-10 18:04 ` Junio C Hamano
2013-05-11 0:25 ` Jeff King
2013-05-11 19:54 ` Junio C Hamano
2013-05-11 8:54 ` Michael J Gruber
2013-05-11 10:00 ` Michael J Gruber
2013-05-13 5:01 ` Junio C Hamano
2013-05-13 11:55 ` Jeff King
2013-05-13 14:57 ` Michael J Gruber
2013-05-13 15:41 ` Junio C Hamano
2013-05-16 3:31 ` Jeff King
2013-05-11 17:36 ` Junio C Hamano
2013-05-12 12:13 ` Michael J Gruber
2013-05-10 15:10 ` [PATCHv3 4/7] cat-file: do not die on --textconv without textconv filters Michael J Gruber
2013-05-10 15:10 ` [PATCHv3 5/7] t7008: demonstrate behavior of grep with textconv Michael J Gruber
2013-05-10 15:10 ` [PATCHv3 6/7] grep: allow to use textconv filters Michael J Gruber
2013-05-10 15:10 ` [PATCHv3 7/7] grep: honor --textconv for the case rev:path Michael J Gruber
2013-05-10 18:11 ` Junio C Hamano
2013-05-10 18:31 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130420043122.GF24970@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).