'
test_expect_success 'setup: fake "less"' '
- cat >less <<-\EOF
+ cat >less <<-\EOF &&
#!/bin/sh
printf "%s\n" "$@" >actual
EOF
+ chmod +x less
'
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' '
rm -f actual &&
- cat >less <<-\EOF &&
- #!/bin/sh
- printf "%s\n" "$@" >actual
- EOF
- chmod +x $less &&
cat >expect <<-\EOF &&
+/*enum grep_pat_token
grep.h
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 &&
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)