zsh-workers
 help / color / mirror / code / Atom feed
* PATCH: pws-25: another line number problem
@ 1999-07-07  8:56 Peter Stephenson
  1999-07-07  9:44 ` Peter Stephenson
  0 siblings, 1 reply; 2+ messages in thread
From: Peter Stephenson @ 1999-07-07  8:56 UTC (permalink / raw)
  To: Zsh hackers list

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.  In fact, we ought to be able to tell that the input
queue is a string and will be flushed automatically when it's popped off
the input stack.  Maybe I'll put this on my to-do list.  Maybe.

--- Src/parse.c.uln	Thu Jun 17 15:28:47 1999
+++ Src/parse.c	Wed Jul  7 10:49:02 1999
@@ -72,7 +72,7 @@
 
 #define YYERROR  { tok = LEXERR; return NULL; }
 #define YYERRORV { tok = LEXERR; return; }
-#define COND_ERROR(X,Y) do{herrflush();zerr(X,Y,0);YYERROR}while(0)
+#define COND_ERROR(X,Y) do{zerr(X,Y,0);herrflush();YYERROR}while(0)
 
 #define make_list()     allocnode(N_LIST)
 #define make_sublist()  allocnode(N_SUBLIST)
@@ -143,8 +143,8 @@
 	    yyerror();
 	    return NULL;
 	}
-	herrflush();
 	yyerror();
+	herrflush();
 	return NULL;
     } else {
 	l->right = par_event();


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


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1999-07-07 10:13 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-07-07  8:56 PATCH: pws-25: another line number problem Peter Stephenson
1999-07-07  9:44 ` Peter Stephenson

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).