summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-01-31 22:01:15 -0800
committerJunio C Hamano <gitster@pobox.com>2012-01-31 22:01:15 -0800
commit3e9e41659394fe5de085c90f4f86858062dfa47d (patch)
treecce6f05b79900447ee4d56067ef9da7376b449f0
parentfc75ad72dc7955d3077db4a72818d24de007a582 (diff)
parent50dd0f2fd910d9973760db052897ee8e73ed2f1f (diff)
downloadgit-3e9e41659394fe5de085c90f4f86858062dfa47d.tar.gz
Merge branch 'tr/grep-l-with-decoration'
* tr/grep-l-with-decoration: grep: fix -l/-L interaction with decoration lines
-rw-r--r--builtin/grep.c5
-rwxr-xr-xt/t7810-grep.sh22
2 files changed, 25 insertions, 2 deletions
diff --git a/builtin/grep.c b/builtin/grep.c
index 9ce064ac11..5c2ae94e55 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -1034,8 +1034,9 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
#ifndef NO_PTHREADS
if (use_threads) {
- if (opt.pre_context || opt.post_context || opt.file_break ||
- opt.funcbody)
+ if (!(opt.name_only || opt.unmatch_name_only || opt.count)
+ && (opt.pre_context || opt.post_context ||
+ opt.file_break || opt.funcbody))
skip_first_line = 1;
start_threads(&opt);
}
diff --git a/t/t7810-grep.sh b/t/t7810-grep.sh
index 7ba5b16f99..75f4716d8c 100755
--- a/t/t7810-grep.sh
+++ b/t/t7810-grep.sh
@@ -246,6 +246,28 @@ do
done
cat >expected <<EOF
+file
+EOF
+test_expect_success 'grep -l -C' '
+ git grep -l -C1 foo >actual &&
+ test_cmp expected actual
+'
+
+cat >expected <<EOF
+file:5
+EOF
+test_expect_success 'grep -l -C' '
+ git grep -c -C1 foo >actual &&
+ test_cmp expected actual
+'
+
+test_expect_success 'grep -L -C' '
+ git ls-files >expected &&
+ git grep -L -C1 nonexistent_string >actual &&
+ test_cmp expected actual
+'
+
+cat >expected <<EOF
file:foo mmap bar_mmap
EOF