about summary refs log tree commit diff
path: root/Src/init.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2005-04-01 10:16:59 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2005-04-01 10:16:59 +0000
commitb51472dd5fda1d4a0e8273d675da03dcbb37c8d6 (patch)
tree269bed9e207c6d94e5d5496dd1ba1c0ab8da0100 /Src/init.c
parent835a5ad8b506af216a52a606243c8f73654f1a83 (diff)
downloadzsh-b51472dd5fda1d4a0e8273d675da03dcbb37c8d6.tar.gz
zsh-b51472dd5fda1d4a0e8273d675da03dcbb37c8d6.tar.xz
zsh-b51472dd5fda1d4a0e8273d675da03dcbb37c8d6.zip
21078: parse errors didn't cause non-zero exit status
Diffstat (limited to 'Src/init.c')
-rw-r--r--Src/init.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/Src/init.c b/Src/init.c
index 903df47cd..1ad9559f0 100644
--- a/Src/init.c
+++ b/Src/init.c
@@ -131,6 +131,8 @@ loop(int toplevel, int justonce)
 		(tok == LEXERR && (!isset(SHINSTDIN) || !toplevel)) ||
 		justonce)
 		break;
+	    if (tok == LEXERR && !lastval)
+		lastval = 1;
 	    continue;
 	}
 	if (hend(prog)) {
@@ -1282,6 +1284,9 @@ zsh_main(UNUSED(int argc), char **argv)
 	    loop(1,0);
 	while (tok != ENDINPUT && (tok != LEXERR || isset(SHINSTDIN)));
 	if (tok == LEXERR) {
+	    /* Make sure a parse error exits with non-zero status */
+	    if (!lastval)
+		lastval = 1;
 	    stopmsg = 1;
 	    zexit(lastval, 0);
 	}