grep -O: Do not pass color sequences as filenames to pager
With a .gitconfig like this:
[color]
ui = auto
[color "grep"]
filename = magenta
if stdout is a terminal, the grep machinery will output the color
sequence \e[36m before each filename in its output.
In the case of "git grep -O foo", output is argv for the pager.
Disable color when calling the grep machinery in this case.
Signed-off-by: Nazri Ramliy <ayiehere@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff --git a/builtin/grep.c b/builtin/grep.c
index 4b8ddbe..7a9427d 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -997,6 +997,7 @@
if (show_in_pager == default_pager)
show_in_pager = git_pager(1);
if (show_in_pager) {
+ opt.color = 0;
opt.name_only = 1;
opt.null_following_name = 1;
opt.output_priv = &path_list;