From 78b47c100f11eaea568db71b364ff02e752a741e Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Tue, 20 Aug 2019 07:16:10 -0700 Subject: parser: bugfix: uninitialized ignore flag. * parser.c (parser_common_init): Initialize the ignore flag, which was until recently called circ_suppress. When the parser is invoked via parse_once or parse_once_noerror, rather than parse, the state of the flag is indeterminate. Thus this only affects the TXR Pattern Language, not TXR Lisp. As a result of this bug, which affects releases 157 through 223, if the circle notation like #1=(foo #1#) is used in Pattern Language syntax, it may not be handled properly. I discovered this bug now because there are new behaviors connected to the flag; it doesn't just affect the processing of the circle notation, but is involved in all symbol handling in the parser. --- parser.c | 1 + 1 file changed, 1 insertion(+) diff --git a/parser.c b/parser.c index 2510dbfe..584a923a 100644 --- a/parser.c +++ b/parser.c @@ -124,6 +124,7 @@ void parser_common_init(parser_t *p) p->lineno = 1; p->errors = 0; p->eof = 0; + p->ignore = 0; p->stream = nil; p->name = nil; p->prepared_msg = nil; -- cgit v1.2.3