diff_cmd () {
	"$merge_tool_path" -R -f -d \
		-c 'wincmd l' -c 'cd $GIT_PREFIX' "$LOCAL" "$REMOTE"
}

merge_cmd () {
	case "$1" in
	*vimdiff)
		if $base_present
		then
			"$merge_tool_path" -f -d -c '4wincmd w | wincmd J' \
				"$LOCAL" "$BASE" "$REMOTE" "$MERGED"
		else
			"$merge_tool_path" -f -d -c 'wincmd l' \
				"$LOCAL" "$MERGED" "$REMOTE"
		fi
		;;
	*vimdiff1)
		"$merge_tool_path" -f -d \
			-c 'echon "Resolve conflicts leftward then save. Use :cq to abort."' \
			"$LOCAL" "$REMOTE"
		ret="$?"
		if test "$ret" -eq 0
		then
			cp -- "$LOCAL" "$MERGED"
		fi
		return "$ret"
		;;
	*vimdiff2)
		"$merge_tool_path" -f -d -c 'wincmd l' \
			"$LOCAL" "$MERGED" "$REMOTE"
		;;
	*vimdiff3)
		if $base_present
		then
			"$merge_tool_path" -f -d -c 'hid | hid | hid' \
				"$LOCAL" "$REMOTE" "$BASE" "$MERGED"
		else
			"$merge_tool_path" -f -d -c 'hid | hid' \
				"$LOCAL" "$REMOTE" "$MERGED"
		fi
		;;
	esac
}

translate_merge_tool_path() {
	case "$1" in
	nvimdiff*)
		echo nvim
		;;
	gvimdiff*)
		echo gvim
		;;
	vimdiff*)
		echo vim
		;;
	esac
}

exit_code_trustable () {
	true
}

list_tool_variants () {
	for prefix in '' g n; do
		for suffix in '' 1 2 3; do
			echo "${prefix}vimdiff${suffix}"
		done
	done
}
