From 8fc5a6a2a49f05c358e293c79c0bf18e8eb4830e Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Thu, 24 Mar 2016 15:58:32 +0100 Subject: Fix tokenization of TOK_DOTS We really need to use PEEKC during tokenization so as to skip line continuations automatically. --- tccpp.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'tccpp.c') diff --git a/tccpp.c b/tccpp.c index 01f5b37..2c276c2 100644 --- a/tccpp.c +++ b/tccpp.c @@ -2553,9 +2553,15 @@ maybe_newline: } else if ((isidnum_table['.' - CH_EOF] & IS_ID) != 0) { /* asm mode */ *--p = c = '.'; goto parse_ident_fast; - } else if (c == '.' && p[1] == '.') { - p += 2; - tok = TOK_DOTS; + } else if (c == '.') { + PEEKC(c, p); + if (c == '.') { + p++; + tok = TOK_DOTS; + } else { + *--p = '.'; /* may underflow into file->unget[] */ + tok = '.'; + } } else { tok = '.'; } -- cgit v1.3.1