grep -O: allow optional argument specifying the pager (or editor)

Suppose you want to edit all files that contain a specific search term.
Of course, you can do something totally trivial such as

	git grep -z -e <term> | xargs -0r vi +/<term>

but maybe you are happy that the same will be achieved by

	git grep -Ovi <term>

now.

[jn: rebased and added tests]

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Paolo Bonzini <bonzini@gnu.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin
2010-06-12 11:39:46 -05:00
committed by Junio C Hamano
parent 678e484b7d
commit 0af88c15e2
3 changed files with 21 additions and 20 deletions

View File

@ -99,7 +99,11 @@ test_expect_success 'git grep -O jumps to line in less' '
GIT_PAGER=./less git grep -O GREP_PATTERN >out &&
test_cmp expect actual &&
test_cmp empty out
test_cmp empty out &&
git grep -O./less GREP_PATTERN >out2 &&
test_cmp expect actual &&
test_cmp empty out2
'
test_expect_success 'modified file' '
@ -135,8 +139,7 @@ test_expect_success 'run from subdir' '
export GIT_PAGER &&
GIT_PAGER='\''printf "%s\n" >../args'\'' &&
git grep -O "enum grep_pat_token" >../out &&
GIT_PAGER="pwd >../dir; :" &&
git grep -O "enum grep_pat_token" >../out2
git grep -O"pwd >../dir; :" "enum grep_pat_token" >../out2
) &&
case $(cat dir) in
*subdir)