about summary refs log tree commit diff
path: root/Src/lex.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2015-04-17 10:23:58 +0100
committerPeter Stephenson <pws@zsh.org>2015-04-17 10:23:58 +0100
commit4508d25710de08793005923b1f91f5ae072f3945 (patch)
treea7000951ba4226ecc1078408db3d04d0f35e72bc /Src/lex.c
parentccb1cf2d10aa674caf2aa73599110aed1127ad26 (diff)
downloadzsh-4508d25710de08793005923b1f91f5ae072f3945.tar.gz
zsh-4508d25710de08793005923b1f91f5ae072f3945.tar.xz
zsh-4508d25710de08793005923b1f91f5ae072f3945.zip
34905: no parse error after keyboard interrupt.
Handled generally, though only showing up in special nested
cases.

Also fix ZLE so it doesn't cancel the interrupt flag when
not actually returning from a local keymap.
Diffstat (limited to 'Src/lex.c')
-rw-r--r--Src/lex.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/Src/lex.c b/Src/lex.c
index 184a54b0b..c929bb9ba 100644
--- a/Src/lex.c
+++ b/Src/lex.c
@@ -1558,10 +1558,12 @@ parsestr(char **s)
 
     if ((err = parsestrnoerr(s))) {
 	untokenize(*s);
-	if (err > 32 && err < 127)
-	    zerr("parse error near `%c'", err);
-	else
-	    zerr("parse error");
+	if (!(errflag & ERRFLAG_INT)) {
+	    if (err > 32 && err < 127)
+		zerr("parse error near `%c'", err);
+	    else
+		zerr("parse error");
+	}
     }
     return err;
 }