summaryrefslogtreecommitdiffstats
path: root/src/cfg_file.l
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2009-03-18 20:03:36 +0300
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2009-03-18 20:03:36 +0300
commit9c455404d443c748b6398076c1746a12a7458bfc (patch)
tree1f6174f446b4257291ef723b4f43ad9f06b7931d /src/cfg_file.l
parent8cc22288806b9ff7115cb8f30349029714e2d89a (diff)
downloadrspamd-9c455404d443c748b6398076c1746a12a7458bfc.tar.gz
rspamd-9c455404d443c748b6398076c1746a12a7458bfc.zip
* Allow escaped quotes in quoted strings, for example "\"some string\""
* Add warnings when we got errors while parsing rexeps
Diffstat (limited to 'src/cfg_file.l')
-rw-r--r--src/cfg_file.l4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cfg_file.l b/src/cfg_file.l
index 4e8e4bb8d..be1e780f3 100644
--- a/src/cfg_file.l
+++ b/src/cfg_file.l
@@ -87,7 +87,7 @@ statfile_pool_size return STATFILE_POOL_SIZE;
yes|YES|no|NO|[yY]|[nN] yylval.flag=parse_flag(yytext); return FLAG;
\n /* ignore EOL */;
[ \t]+ /* ignore whitespace */;
-\"[^"]+\" yylval.string=strdup(yytext + 1); yylval.string[strlen(yylval.string) - 1] = '\0'; return QUOTEDSTRING;
+\".+[^\\]\" yylval.string=strdup(yytext + 1); yylval.string[strlen(yylval.string) - 1] = '\0'; unescape_quotes(yylval.string); return QUOTEDSTRING;
\" return QUOTE;
\$[a-zA-Z_][a-zA-Z0-9_]+ yylval.string=strdup(yytext + 1); return VARIABLE;
[0-9]+ yylval.number=strtol(yytext, NULL, 10); return NUMBER;
@@ -148,7 +148,7 @@ yes|YES|no|NO|[yY]|[nN] yylval.flag=parse_flag(yytext); return FLAG;
<module>= return EQSIGN;
<module>[a-zA-Z0-9_%-]+ yylval.string=strdup(yytext); return PARAM;
<module>\$[a-zA-Z_][a-zA-Z0-9_]+ yylval.string=strdup(yytext + 1); return VARIABLE;
-<module>\"[^"]+\" yylval.string=strdup(yytext + 1); yylval.string[strlen(yylval.string) - 1] = '\0'; return QUOTEDSTRING;
+<module>\".+[^\\]\" yylval.string=strdup(yytext + 1); yylval.string[strlen(yylval.string) - 1] = '\0'; unescape_quotes(yylval.string); return QUOTEDSTRING;
%%
/*