diff options
author | Jeff King <peff@peff.net> | 2009-12-30 06:01:09 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-01-05 23:41:51 -0800 |
commit | 41a457e4f814a0e514548b3178e7692129f0fcfe (patch) | |
tree | 3b1a66dac76d179328110fe33c92f728ce7410e2 | |
parent | bac8037081735a49bccdc3b3b1457129f9bcc451 (diff) | |
download | git-41a457e4f814a0e514548b3178e7692129f0fcfe.tar.gz git-41a457e4f814a0e514548b3178e7692129f0fcfe.tar.xz |
textconv: use shell to run helper
Currently textconv helpers are run directly. Running through
the shell is useful because the user can provide a program
with command line arguments, like "antiword -f".
It also makes textconv more consistent with other parts of
git, most of which run their helpers using the shell.
The downside is that textconv helpers with shell
metacharacters (like space) in the filename will be broken.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | diff.c | 1 | ||||
-rwxr-xr-x | t/t4030-diff-textconv.sh | 2 | ||||
-rwxr-xr-x | t/t4031-diff-rewrite-binary.sh | 2 |
3 files changed, 3 insertions, 2 deletions
@@ -3771,6 +3771,7 @@ static char *run_textconv(const char *pgm, struct diff_filespec *spec, *arg = NULL; memset(&child, 0, sizeof(child)); + child.use_shell = 1; child.argv = argv; child.out = -1; if (start_command(&child) != 0 || diff --git a/t/t4030-diff-textconv.sh b/t/t4030-diff-textconv.sh index a3f0897a5..c16d538f4 100755 --- a/t/t4030-diff-textconv.sh +++ b/t/t4030-diff-textconv.sh @@ -48,7 +48,7 @@ test_expect_success 'file is considered binary by plumbing' ' test_expect_success 'setup textconv filters' ' echo file diff=foo >.gitattributes && - git config diff.foo.textconv "$PWD"/hexdump && + git config diff.foo.textconv "\"$PWD\""/hexdump && git config diff.fail.textconv false ' diff --git a/t/t4031-diff-rewrite-binary.sh b/t/t4031-diff-rewrite-binary.sh index a894c6062..27fb31b40 100755 --- a/t/t4031-diff-rewrite-binary.sh +++ b/t/t4031-diff-rewrite-binary.sh @@ -54,7 +54,7 @@ chmod +x dump test_expect_success 'setup textconv' ' echo file diff=foo >.gitattributes && - git config diff.foo.textconv "$PWD"/dump + git config diff.foo.textconv "\"$PWD\""/dump ' test_expect_success 'rewrite diff respects textconv' ' |