3 test_description
='GIT_EDITOR, core.editor, and stuff'
7 unset EDITOR VISUAL GIT_EDITOR
9 test_expect_success
'determine default editor' '
11 vi=$(TERM=vt100 git var GIT_EDITOR) &&
16 if ! expr "$vi" : '[a-z]*$' >/dev
/null
21 for i
in GIT_EDITOR core_editor EDITOR VISUAL
$vi
25 echo "Edited by $i" >"\$1"
35 test_expect_success setup
'
39 echo "$msg" >expect &&
40 git show -s --format=%s > actual &&
47 test_expect_success
'dumb should error out when falling back on vi' '
58 test_expect_success
'dumb should prefer EDITOR to VISUAL' '
60 EDITOR=./e-EDITOR.sh &&
61 VISUAL=./e-VISUAL.sh &&
62 export EDITOR VISUAL &&
64 test "$(git show -s --format=%s)" = "Edited by EDITOR"
70 for i
in $vi EDITOR VISUAL core_editor GIT_EDITOR
72 echo "Edited by $i" >expect
73 unset EDITOR VISUAL GIT_EDITOR
74 git config
--unset-all core.editor
77 git config core.editor .
/e-core_editor.sh
84 test_expect_success
"Using $i" '
85 git --exec-path=. commit --amend &&
86 git show -s --pretty=oneline |
87 sed -e "s/^[0-9a-f]* //" >actual &&
92 unset EDITOR VISUAL GIT_EDITOR
93 git config
--unset-all core.editor
94 for i
in $vi EDITOR VISUAL core_editor GIT_EDITOR
96 echo "Edited by $i" >expect
99 git config core.editor .
/e-core_editor.sh
106 test_expect_success
"Using $i (override)" '
107 git --exec-path=. commit --amend &&
108 git show -s --pretty=oneline |
109 sed -e "s/^[0-9a-f]* //" >actual &&
114 if ! echo 'echo space > "$1"' > "e space.sh"
116 say
"Skipping; FS does not support spaces in filenames"
120 test_expect_success
'editor with a space' '
122 chmod a+x "e space.sh" &&
123 GIT_EDITOR="./e\ space.sh" git commit --amend &&
124 test space = "$(git show -s --pretty=format:%s)"
129 test_expect_success
'core.editor with a space' '
131 git config core.editor \"./e\ space.sh\" &&
132 git commit --amend &&
133 test space = "$(git show -s --pretty=format:%s)"