X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=lexer.c;h=634f90ca348da3584998bd94f3e83425820f61c9;hp=e08a5f6d93a8b60622d7543e073c7d37e2c421e8;hb=415816e4dc9b76cb52386fb4abbae94d45420f9a;hpb=90419eb13c0362f3bf10eb365c4c14796582dcc1 diff --git a/lexer.c b/lexer.c index e08a5f6..634f90c 100644 --- a/lexer.c +++ b/lexer.c @@ -259,7 +259,7 @@ static int lex_getch(lex_file *lex) lex->line++; else if (ch == '?') return lex_try_trigraph(lex, ch); - else if (ch == '<' || ch == ':' || ch == '%') + else if (!lex->flags.nodigraphs && (ch == '<' || ch == ':' || ch == '%')) return lex_try_digraph(lex, ch); return ch; } @@ -998,6 +998,7 @@ int lex_do(lex_file *lex) if (ch == '"') { + lex->flags.nodigraphs = true; lex->tok.ttype = lex_finish_string(lex, '"'); while (lex->tok.ttype == TOKEN_STRINGCONST) { @@ -1010,6 +1011,7 @@ int lex_do(lex_file *lex) lex->tok.ttype = lex_finish_string(lex, '"'); } + lex->flags.nodigraphs = false; if (!lex_endtoken(lex)) return (lex->tok.ttype = TOKEN_FATAL); return lex->tok.ttype;