grep: add option -p/--show-function
The new option -p instructs git grep to print the previous function definition as a context line, similar to diff -p. Such context lines are marked with an equal sign instead of a dash. This option complements the existing context options -A, -B, -C. Function definitions are detected using the same heuristic that diff uses. User defined regular expressions are not supported, yet. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
49de321698
commit
2944e4e614
@ -8,6 +8,15 @@ test_description='git grep various.
|
||||
|
||||
. ./test-lib.sh
|
||||
|
||||
cat >hello.c <<EOF
|
||||
#include <stdio.h>
|
||||
int main(int argc, const char **argv)
|
||||
{
|
||||
printf("Hello world.\n");
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
|
||||
test_expect_success setup '
|
||||
{
|
||||
echo foo mmap bar
|
||||
@ -22,7 +31,7 @@ test_expect_success setup '
|
||||
echo zzz > z &&
|
||||
mkdir t &&
|
||||
echo test >t/t &&
|
||||
git add file w x y z t/t &&
|
||||
git add file w x y z t/t hello.c &&
|
||||
test_tick &&
|
||||
git commit -m initial
|
||||
'
|
||||
@ -229,9 +238,32 @@ test_expect_success 'log grep (6)' '
|
||||
test_expect_success 'grep with CE_VALID file' '
|
||||
git update-index --assume-unchanged t/t &&
|
||||
rm t/t &&
|
||||
test "$(git grep --no-ext-grep t)" = "t/t:test" &&
|
||||
test "$(git grep --no-ext-grep test)" = "t/t:test" &&
|
||||
git update-index --no-assume-unchanged t/t &&
|
||||
git checkout t/t
|
||||
'
|
||||
|
||||
cat >expected <<EOF
|
||||
hello.c=int main(int argc, const char **argv)
|
||||
hello.c: return 0;
|
||||
EOF
|
||||
|
||||
test_expect_success 'grep -p' '
|
||||
git grep -p return >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
cat >expected <<EOF
|
||||
hello.c-#include <stdio.h>
|
||||
hello.c=int main(int argc, const char **argv)
|
||||
hello.c-{
|
||||
hello.c- printf("Hello world.\n");
|
||||
hello.c: return 0;
|
||||
EOF
|
||||
|
||||
test_expect_success 'grep -p -B5' '
|
||||
git grep -p -B5 return >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Reference in New Issue
Block a user