about summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorPaul Ackersviller <packersv@users.sourceforge.net>2007-11-25 04:13:50 +0000
committerPaul Ackersviller <packersv@users.sourceforge.net>2007-11-25 04:13:50 +0000
commit56ce5117368991e23208d50ac120167427014982 (patch)
tree25c12a3f10f4506abeb48fa12be5a4fb570b997e /Src
parent9020f6336e73ec88845ede15b12168ea7684ac2a (diff)
downloadzsh-56ce5117368991e23208d50ac120167427014982.tar.gz
zsh-56ce5117368991e23208d50ac120167427014982.tar.xz
zsh-56ce5117368991e23208d50ac120167427014982.zip
Merge of users/11883: return at top level caused following precommand functions to return immediately.
Diffstat (limited to 'Src')
-rw-r--r--Src/init.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/Src/init.c b/Src/init.c
index 0fde9f7ac..f9fea56db 100644
--- a/Src/init.c
+++ b/Src/init.c
@@ -1285,9 +1285,11 @@ zsh_main(UNUSED(int argc), char **argv)
 	 */
 	maybeshrinkjobtab();
 
-	do
+	do {
+	    /* Reset return from top level which gets us back here */
+	    retflag = 0;
 	    loop(1,0);
-	while (tok != ENDINPUT && (tok != LEXERR || isset(SHINSTDIN)));
+	} while (tok != ENDINPUT && (tok != LEXERR || isset(SHINSTDIN)));
 	if (tok == LEXERR) {
 	    /* Make sure a parse error exits with non-zero status */
 	    if (!lastval)