Browse Source

grep: support -h (no header) with --count

Suppress printing the header (filename) with -h even if in -c/--count
mode.  GNU grep and OpenBSD's grep do the same.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
René Scharfe 11 years ago committed by Junio C Hamano
parent
commit
f76d947ae1
  1. 7
      grep.c
  2. 12
      t/t7810-grep.sh

7
grep.c

@ -1562,8 +1562,11 @@ static int grep_source_1(struct grep_opt *opt, struct grep_source *gs, int colle @@ -1562,8 +1562,11 @@ static int grep_source_1(struct grep_opt *opt, struct grep_source *gs, int colle
*/
if (opt->count && count) {
char buf[32];
output_color(opt, gs->name, strlen(gs->name), opt->color_filename);
output_sep(opt, ':');
if (opt->pathname) {
output_color(opt, gs->name, strlen(gs->name),
opt->color_filename);
output_sep(opt, ':');
}
snprintf(buf, sizeof(buf), "%u\n", count);
opt->output(opt, buf, strlen(buf));
return 1;

12
t/t7810-grep.sh

@ -328,6 +328,18 @@ do @@ -328,6 +328,18 @@ do
grep "a+b*c" $H ab >actual &&
test_cmp expected actual
'

test_expect_success "grep --count $L" '
echo ${HC}ab:3 >expected &&
git grep --count -e b $H -- ab >actual &&
test_cmp expected actual
'

test_expect_success "grep --count -h $L" '
echo 3 >expected &&
git grep --count -h -e b $H -- ab >actual &&
test_cmp expected actual
'
done

cat >expected <<EOF

Loading…
Cancel
Save