summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar René Scharfe <rene.scharfe@lsrfire.ath.cx>2010-05-22 23:28:17 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2010-05-24 11:22:06 -0700
commit64fcec78b5c52a054eab482e91d58f7b41d1dfaf (patch)
tree85291a7cc6e951d522344a02a66c022ffa5086c2
parentgrep: add test script for binary file handling (diff)
downloadtgif-64fcec78b5c52a054eab482e91d58f7b41d1dfaf.tar.xz
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>
-rw-r--r--grep.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/grep.c b/grep.c
index 543b1d5378..2a8e879e88 100644
--- a/grep.c
+++ b/grep.c
@@ -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));