sql.l: strip string start/end delimiters from value

This commit is contained in:
Jeff Garzik
2019-01-05 11:18:04 -05:00
parent faa138ed65
commit 6546207fe2

5
sql.l

@ -295,7 +295,10 @@ FALSE { yylval->intval = 0; return BOOL; }
/* strings */
'(\\.|''|[^'\n])*' |
\"(\\.|\"\"|[^"\n])*\" { yylval->strval = strdup(yytext); return STRING; }
\"(\\.|\"\"|[^"\n])*\" {
size_t duplen = strlen(yytext) - 2;
yylval->strval = strndup(&yytext[1], duplen);
return STRING; }
'(\\.|[^'\n])*$ { yyerror(yylloc, pstate->scanner, pstate, "Unterminated string %s", yytext); }
\"(\\.|[^"\n])*$ { yyerror(yylloc, pstate->scanner, pstate, "Unterminated string %s", yytext); }