Home
cc1: Fix lexer for strings - scc - simple c99 compiler HTML git clone git://git.simple-cc.org/scc DIR Log DIR Files DIR Refs DIR Submodules DIR README DIR LICENSE --- DIR commit eb8960812d92714eb568df36e09d8c76af5cd46c DIR parent 9057ad5dbe07ea11e717cc08f69a26bd7e6abc60 HTML Author: Roberto E. Vargas Caballero <k0ga@shike2.com> Date: Mon, 7 Oct 2024 17:12:58 +0200 cc1: Fix lexer for strings There were some leftovers from older versions of the code and the logic was inverted, making that escape sequences were wrongly processed. Diffstat: M src/cmd/cc/cc1/lex.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) --- DIR diff --git a/src/cmd/cc/cc1/lex.c b/src/cmd/cc/cc1/lex.c @@ -649,14 +649,13 @@ static int string(void) { char *bp = yytext; - int c, esc; + int c; *bp++ = '"'; - esc = 0; for (++input->p; ; ++input->p) { c = *input->p; - if (c == '"' && !esc) + if (c == '"') break; if (c == '\0') { @@ -664,12 +663,7 @@ string(void) break; } - if (c == '\\' && !esc && disescape) - esc = 1; - else - esc = 0; - - if (c == '\\' && !esc) + if (c == '\\' && !disescape) c = escape(); if (bp == &yytext[STRINGSIZ+1]) {