#!/bin/sh

test_description='GIT_EDITOR, core.editor, and stuff'

. ./test-lib.sh

for i in GIT_EDITOR core_editor EDITOR VISUAL vi
do
	cat >e-$i.sh <<-EOF
	echo "Edited by $i" >"\$1"
	EOF
	chmod +x e-$i.sh
done
unset vi
mv e-vi.sh vi
unset EDITOR VISUAL GIT_EDITOR

test_expect_success setup '

	msg="Hand edited" &&
	echo "$msg" >expect &&
	git add vi &&
	test_tick &&
	git commit -m "$msg" &&
	git show -s --pretty=oneline |
	sed -e "s/^[0-9a-f]* //" >actual &&
	diff actual expect

'

TERM=dumb
export TERM
test_expect_success 'dumb should error out when falling back on vi' '

	if git commit --amend
	then
		echo "Oops?"
		false
	else
		: happy
	fi
'

TERM=vt100
export TERM
for i in vi EDITOR VISUAL core_editor GIT_EDITOR
do
	echo "Edited by $i" >expect
	unset EDITOR VISUAL GIT_EDITOR
	git config --unset-all core.editor
	case "$i" in
	core_editor)
		git config core.editor ./e-core_editor.sh
		;;
	[A-Z]*)
		eval "$i=./e-$i.sh"
		export $i
		;;
	esac
	test_expect_success "Using $i" '
		git --exec-path=. commit --amend &&
		git show -s --pretty=oneline |
		sed -e "s/^[0-9a-f]* //" >actual &&
		diff actual expect
	'
done

unset EDITOR VISUAL GIT_EDITOR
git config --unset-all core.editor
for i in vi EDITOR VISUAL core_editor GIT_EDITOR
do
	echo "Edited by $i" >expect
	case "$i" in
	core_editor)
		git config core.editor ./e-core_editor.sh
		;;
	[A-Z]*)
		eval "$i=./e-$i.sh"
		export $i
		;;
	esac
	test_expect_success "Using $i (override)" '
		git --exec-path=. commit --amend &&
		git show -s --pretty=oneline |
		sed -e "s/^[0-9a-f]* //" >actual &&
		diff actual expect
	'
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

'

test_done
