we emitted an error on heredoc tags, but we
continued on, and added a heredoc entry to
the list, with a tag that we couldn't handle.
when processing this heredoc, rc would segfault.
fix: don't add a heredoc to the list on error.
tree*
heredoc(tree *tag)
{
- struct here *h = new(struct here);
- if(tag->type!=WORD)
+ struct here *h;
+
+ if(tag->type!=WORD){
yyerror("Bad here tag");
+ return nil;
+ }
+ h = new(struct here);
h->next = 0;
if(here)
*ehere = h;