diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2009-03-18 20:03:36 +0300 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2009-03-18 20:03:36 +0300 |
commit | 9c455404d443c748b6398076c1746a12a7458bfc (patch) | |
tree | 1f6174f446b4257291ef723b4f43ad9f06b7931d /src/cfg_file.l | |
parent | 8cc22288806b9ff7115cb8f30349029714e2d89a (diff) | |
download | rspamd-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.l | 4 |
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; %% /* |