Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: pws-25: another line number problem
- X-seq: zsh-workers 6999
- From: Peter Stephenson <pws@xxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx (Zsh hackers list)
- Subject: PATCH: pws-25: another line number problem
- Date: Wed, 07 Jul 1999 10:56:23 +0200
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
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@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