diff options
author | René Scharfe <rene.scharfe@lsrfire.ath.cx> | 2010-05-22 23:28:17 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-05-24 11:22:06 -0700 |
commit | 64fcec78b5c52a054eab482e91d58f7b41d1dfaf (patch) | |
tree | 85291a7cc6e951d522344a02a66c022ffa5086c2 /grep.c | |
parent | aca20dd558338446336934a4b18516cfbf7d8393 (diff) | |
download | git-64fcec78b5c52a054eab482e91d58f7b41d1dfaf.tar.gz |
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>
Diffstat (limited to 'grep.c')
-rw-r--r-- | grep.c | 20 |
1 files changed, 11 insertions, 9 deletions
@@ -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)); |