From e7b082a4118d15e901f4f44b067394b314a0ae6a Mon Sep 17 00:00:00 2001 From: Nazri Ramliy Date: Fri, 2 Jul 2010 21:55:06 -0500 Subject: 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 Signed-off-by: Jonathan Nieder Signed-off-by: Junio C Hamano --- t/t7811-grep-open.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 't') diff --git a/t/t7811-grep-open.sh b/t/t7811-grep-open.sh index c11044134..568a6f2b6 100755 --- a/t/t7811-grep-open.sh +++ b/t/t7811-grep-open.sh @@ -125,6 +125,21 @@ test_expect_success 'modified file' ' test_cmp empty out ' +test_config() { + git config "$1" "$2" && + test_when_finished "git config --unset $1" +} + +test_expect_success 'copes with color settings' ' + rm -f actual && + echo grep.h >expect && + test_config color.grep always && + test_config color.grep.filename yellow && + test_config color.grep.separator green && + git grep -O'\''printf "%s\n" >actual'\'' GREP_AND && + test_cmp expect actual +' + test_expect_success 'run from subdir' ' rm -f actual && echo grep.c >expect && -- cgit v1.2.1