From c07038c627a5601bf331b5c755b9fcce02249fe3 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Tue, 2 Feb 2010 21:53:23 -0500 Subject: Skip over invalid tokens in non-taken conditionals. --- dimension/tokenize.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'dimension/tokenize.c') diff --git a/dimension/tokenize.c b/dimension/tokenize.c index 8e696ed..cc912b6 100644 --- a/dimension/tokenize.c +++ b/dimension/tokenize.c @@ -263,9 +263,6 @@ dmnsn_if_buffer(int token, dmnsn_token_buffer *prev, "syntax error, unexpected end-of-file"); dmnsn_delete_token_buffer(tbuffer); return NULL; - } else if (buffered.type == DMNSN_T_LEX_ERROR) { - dmnsn_delete_token_buffer(tbuffer); - return NULL; } switch (buffered.type) { @@ -294,7 +291,12 @@ dmnsn_if_buffer(int token, dmnsn_token_buffer *prev, } if (cond) { - dmnsn_array_push(tbuffer->buffered, &buffered); + if (buffered.type == DMNSN_T_LEX_ERROR) { + dmnsn_delete_token_buffer(tbuffer); + return NULL; + } else { + dmnsn_array_push(tbuffer->buffered, &buffered); + } } else { free(buffered.lval.value); } -- cgit v1.2.3