grep: grep: refactor handling of binary mode options

Turn the switch inside-out and add labels for each possible value
of ->binary.  This makes the code easier to read and avoids calling
buffer_is_binary() if the option -a was given.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
René Scharfe 2010-05-22 23:28:17 +02:00 committed by Junio C Hamano
parent aca20dd558
commit 64fcec78b5

20
grep.c
View file

@ -800,17 +800,19 @@ static int grep_buffer_1(struct grep_opt *opt, const char *name,
opt->show_hunk_mark = 1;
opt->last_shown = 0;
if (buffer_is_binary(buf, size)) {
switch (opt->binary) {
case GREP_BINARY_DEFAULT:
switch (opt->binary) {
case GREP_BINARY_DEFAULT:
if (buffer_is_binary(buf, size))
binary_match_only = 1;
break;
case GREP_BINARY_NOMATCH:
break;
case GREP_BINARY_NOMATCH:
if (buffer_is_binary(buf, size))
return 0; /* Assume unmatch */
break;
default:
break;
}
break;
case GREP_BINARY_TEXT:
break;
default:
die("bug: unknown binary handling mode");
}
memset(&xecfg, 0, sizeof(xecfg));