diff options
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | 2008-03-11 10:56:30 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-03-11 19:57:56 -0700 |
commit | fc99469a2b786676ffe48d5966d71cea3613b716 (patch) | |
tree | 028afe90d4f8331a37f82b42169cbefd98f2ec9b /t/t7005-editor.sh | |
parent | 4201bb5f7e408143dc5bf35497cc82bc803fe9fb (diff) | |
download | git-fc99469a2b786676ffe48d5966d71cea3613b716.tar.gz |
launch_editor(): allow spaces in the filename
The construct
sh -c "$0 \"$@\"" <editor> <file>
does not pick up quotes in <editor>, so you cannot give path to the
editor that has a shell IFS whitespace in it, and also give it initial
set of parameters and flags. Replace $0 with <editor> to fix this issue.
This fixes
git config core.editor '"c:/Program Files/What/Ever.exe"'
In other words, you can specify an editor with spaces in its path using a
config containing something like this:
[core]
editor = \"c:/Program Files/Darn/Spaces.exe\"
NOTE: we cannot just replace the $0 with \"$0\", because we still want
this to work:
[core]
editor = emacs -nw
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t7005-editor.sh')
-rwxr-xr-x | t/t7005-editor.sh | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/t/t7005-editor.sh b/t/t7005-editor.sh index c1cec55306..6a74b3acfd 100755 --- a/t/t7005-editor.sh +++ b/t/t7005-editor.sh @@ -89,6 +89,33 @@ do ' done +test_expect_success 'editor with a space' ' + + if echo "echo space > \"\$1\"" > "e space.sh" + then + chmod a+x "e space.sh" && + GIT_EDITOR="./e\ space.sh" git commit --amend && + test space = "$(git show -s --pretty=format:%s)" + else + say "Skipping; FS does not support spaces in filenames" + fi + +' + +unset GIT_EDITOR +test_expect_success 'core.editor with a space' ' + + if test -f "e space.sh" + then + git config core.editor \"./e\ space.sh\" && + git commit --amend && + test space = "$(git show -s --pretty=format:%s)" + else + say "Skipping; FS does not support spaces in filenames" + fi + +' + TERM="$OLD_TERM" test_done |