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 <gitster@pobox.com>
Junio C Hamano committed
Jul 1, 2011 at 16:11 UTC
6b445773b78544032262b897c9aa3b5bd4405dd3
1 file changed
+4
-4
git-mergetool.sh
+4
-4
@@ -100,7 +100,7 @@ resolve_deleted_merge () {
100
else
101
printf "Use (c)reated or (d)eleted file, or (a)bort? "
102
fi
103
- read ans
103
+ read ans || return 1
104
case "$ans" in
105
[mMcC]*)
106
git add -- "$MERGED"
@@ -122,7 +122,7 @@ resolve_deleted_merge () {
122
resolve_submodule_merge () {
123
while true; do
124
printf "Use (l)ocal or (r)emote, or (a)bort? "
125
- read ans
125
+ read ans || return 1
126
case "$ans" in
127
[lL]*)
128
if ! local_present; then
@@ -249,7 +249,7 @@ merge_file () {
249
describe_file "$remote_mode" "remote" "$REMOTE"
250
if "$prompt" = true; then
251
printf "Hit return to start merge resolution tool (%s): " "$merge_tool"
252
- read ans
252
+ read ans || return 1
253
fi
254
255
if base_present; then
@@ -320,7 +320,7 @@ done
320
prompt_after_failed_merge() {
321
while true; do
322
printf "Continue merging other unresolved paths (y/n) ? "
323
- read ans
323
+ read ans || return 1
324
case "$ans" in
325
326
[yY]*)