Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: pws-25: another line number problem



Peter Stephenson wrote:
> Consider:
> 
> % fpath=(.)
> % cat alf
> [[ foo bar ]] && print That did\'t work
> 
> #
> print foo
> % autoload alf
> % alf
> alf: parse error: condition expected: foo [5]
> 
> The line number reported is the last line of the file.  The answer,
> thankfully, is simple:  don't flush the input queue until the error message
> has been printed.

Gag.  Now I've found out why the error had to come second: if errflag is
set, history flushing won't work, so if the parse error occurred
interactively, you don't get the rest of the line in the history.  Let's
just try something like my other proposal:  don't do a full history flush
if reading from a string.  This *replaces* the previous patch.

--- Src/hist.c.uln2	Thu Jun 17 14:22:18 1999
+++ Src/hist.c	Wed Jul  7 11:39:09 1999
@@ -291,7 +291,7 @@
 void
 herrflush(void)
 {
-    while (!lexstop && inbufct)
+    while (!lexstop && inbufct && !strin)
 	hwaddc(ingetc());
 }
 

-- 
Peter Stephenson <pws@xxxxxxxxxxxxxxxxx>       Tel: +39 050 844536
WWW:  http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy



Messages sorted by: Reverse Date, Date, Thread, Author