From: Junio C Hamano Date: Fri, 1 Jul 2011 23:11:16 +0000 (-0700) Subject: mergetool: check return value from read X-Git-Tag: v1.7.7-rc0~80^2 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=6b445773b78544032262b897c9aa3b5bd4405dd3;p=git.git mergetool: check return value from read The process may not even have the standard input open in which case it will get stuck in an infinite loop to prompt and read nothing. Signed-off-by: Junio C Hamano --- diff --git a/git-mergetool.sh b/git-mergetool.sh index 3aab5aae8..3c157bcd2 100755 --- a/git-mergetool.sh +++ b/git-mergetool.sh @@ -100,7 +100,7 @@ resolve_deleted_merge () { else printf "Use (c)reated or (d)eleted file, or (a)bort? " fi - read ans + read ans || return 1 case "$ans" in [mMcC]*) git add -- "$MERGED" @@ -122,7 +122,7 @@ resolve_deleted_merge () { resolve_submodule_merge () { while true; do printf "Use (l)ocal or (r)emote, or (a)bort? " - read ans + read ans || return 1 case "$ans" in [lL]*) if ! local_present; then @@ -249,7 +249,7 @@ merge_file () { describe_file "$remote_mode" "remote" "$REMOTE" if "$prompt" = true; then printf "Hit return to start merge resolution tool (%s): " "$merge_tool" - read ans + read ans || return 1 fi if base_present; then @@ -320,7 +320,7 @@ done prompt_after_failed_merge() { while true; do printf "Continue merging other unresolved paths (y/n) ? " - read ans + read ans || return 1 case "$ans" in [yY]*)