diff options
author | Wilhelm Schuermann <wimschuermann@googlemail.com> | 2015-03-18 21:00:13 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-03-19 21:54:03 +0300 |
commit | c2048f0b394fc5d5644956481b39f3d099cbe51c (patch) | |
tree | 372ff4bcf147f2797dea4b22b2e5fa4827df1c17 /builtin/grep.c | |
parent | 282616c72d1d08a77ca4fe1186cb708c38408d87 (diff) |
grep: fix "--quiet" overwriting current output
When grep is called with the --quiet option, the pager is initialized
despite not being used. When the pager is "less", anything output by
previous commands and not ended with a newline is overwritten:
$ echo -n aaa; echo bbb
aaabbb
$ echo -n aaa; git grep -q foo; echo bbb
bbb
This can be worked around, for example, by making sure STDOUT is not a
TTY or more directly by setting git's pager to "cat":
$ echo -n aaa; git grep -q foo > /dev/null; echo bbb
aaabbb
$ echo -n aaa; PAGER=cat git grep -q foo; echo bbb
aaabbb
But prevent calling the pager in the first place, which would also
save an unnecessary fork().
Signed-off-by: Wilhelm Schuermann <wimschuermann@googlemail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/grep.c')
-rw-r--r-- | builtin/grep.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/builtin/grep.c b/builtin/grep.c index b8d440d0e0..39fa4cb434 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -887,7 +887,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix) } } - if (!show_in_pager) + if (!show_in_pager && !opt.status_only) setup_pager(); if (!use_index && (untracked || cached)) |