summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-07-15 19:07:18 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-07-15 19:07:18 (GMT)
commita7d7853463ae77fc3c8511283f5c896bee673b33 (patch)
treed9a04cf599c9ef510090509d72a49b76c77a7bd9
parentcb597adb5cb989540ebd77afc9507cd24d6c70bd (diff)
parente7b082a4118d15e901f4f44b067394b314a0ae6a (diff)
downloadgit-a7d7853463ae77fc3c8511283f5c896bee673b33.zip
git-a7d7853463ae77fc3c8511283f5c896bee673b33.tar.gz
git-a7d7853463ae77fc3c8511283f5c896bee673b33.tar.bz2
Merge branch 'jn/grep-open'
* jn/grep-open: grep -O: Do not pass color sequences as filenames to pager
-rw-r--r--builtin/grep.c1
-rwxr-xr-xt/t7811-grep-open.sh15
2 files changed, 16 insertions, 0 deletions
diff --git a/builtin/grep.c b/builtin/grep.c
index 232cd1c..597f76b 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -1001,6 +1001,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
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;
diff --git a/t/t7811-grep-open.sh b/t/t7811-grep-open.sh
index c110441..568a6f2 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 &&