difftool--helper: exit when reading a prompt answer fails

An attempt to quit difftool by hitting Ctrl-D (EOF) at its prompt does
not quit it, but is treated as if 'yes' was answered to the prompt and
all following prompts, which is contrary to the user's intent. Fix the
error check.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Sixt 2014-10-26 09:09:20 +01:00 committed by Junio C Hamano
parent 3c2dc76f01
commit 25098690a0
2 changed files with 10 additions and 1 deletions

View File

@ -49,7 +49,8 @@ launch_merge_tool () {
else
printf "Launch '%s' [Y/n]: " "$merge_tool"
fi
if read ans && test "$ans" = n
read ans || return
if test "$ans" = n
then
return
fi

View File

@ -301,6 +301,14 @@ test_expect_success PERL 'say no to the second file' '
! grep br2 output
'
test_expect_success PERL 'ending prompt input with EOF' '
git difftool -x cat branch </dev/null >output &&
! grep master output &&
! grep branch output &&
! grep m2 output &&
! grep br2 output
'
test_expect_success PERL 'difftool --tool-help' '
git difftool --tool-help >output &&
grep tool output