2 dec 2010 kl. 07:38 skrev Jonathan Nieder: > Hi Robin, > > Robin Rosenberg wrote: > >> infinite loop that is somewhat tricky to stop. Abort the script >> if bash read fails. >> >> Signed-off-by: Robin Rosenberg <robin.rosenberg@xxxxxxxxxx> > > That motivates half the change. > >> --- a/git-mergetool--lib.sh >> +++ b/git-mergetool--lib.sh >> @@ -35,7 +35,7 @@ check_unchanged () { >> while true; do >> echo "$MERGED seems unchanged." >> printf "Was the merge successful? [y/n] " >> - read answer >> + read answer < /dev/tty || exit 1 > > Why not > read answer || exit 1 > > so tests can still run without blocking? Aside from that, this looks > like a good change; thanks. > > What platform are you on? ^C kills the entire process group here. Here is a better version and motivation. -- robin >From 3aa3793a4d1dff940ca6b698a9c01a1fc9bdb9b3 Mon Sep 17 00:00:00 2001 From: Robin Rosenberg <robin.rosenberg@xxxxxxxxxx> Date: Fri, 3 Dec 2010 09:23:23 +0100 Subject: [PATCH] Abort mergetool on read error from stdinput If the mergetool has not quit (by mistake like pressing Command-W instead of Command-Q) and the user pressed Ctrl-C in the shell that runs mergetool, bash goes into an infinite look, at least on Mac OS X. Ctrl-C kills the diff program but not the mergetool script. Signed-off-by: Robin Rosenberg <robin.rosenberg@xxxxxxxxxx> --- git-mergetool--lib.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh index 77d4aee..1d1413d 100644 --- a/git-mergetool--lib.sh +++ b/git-mergetool--lib.sh @@ -35,7 +35,7 @@ check_unchanged () { while true; do echo "$MERGED seems unchanged." printf "Was the merge successful? [y/n] " - read answer + read answer || exit 1 case "$answer" in y*|Y*) status=0; break ;; n*|N*) status=1; break ;; -- 1.7.3.2.452.gb3012.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html