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]) {