From: Tobias Brunner Date: Wed, 18 Jun 2014 13:11:32 +0000 (+0200) Subject: starter: Explicitly allow @# at the beginning of strings X-Git-Tag: 5.2.0rc1~28^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6719c4c8286eb51982035454033ff39b5d27d455;p=thirdparty%2Fstrongswan.git starter: Explicitly allow @# at the beginning of strings Since we treat everything after # as comment identities of type ID_KEY_ID couldn't be parsed otherwise, unless quoted. --- diff --git a/src/starter/parser/lexer.l b/src/starter/parser/lexer.l index 22ad6177e2..a88cbe8097 100644 --- a/src/starter/parser/lexer.l +++ b/src/starter/parser/lexer.l @@ -79,7 +79,7 @@ static void include_files(parser_helper_t *ctx); yy_push_state(str, yyscanner); } -[^\"#= \t\n]+ { +(@#)?[^\"#= \t\n]+ { yylval->s = strdup(yytext); return STRING; } diff --git a/src/starter/tests/suites/test_parser.c b/src/starter/tests/suites/test_parser.c index 84b5eedc85..684bc2a273 100644 --- a/src/starter/tests/suites/test_parser.c +++ b/src/starter/tests/suites/test_parser.c @@ -224,6 +224,9 @@ static struct { { "conn foo # asdf\n\tkey=val", TRUE, "val" }, { "conn foo # asdf\n#\tkey=val", TRUE, NULL }, { "conn foo # asdf\n\t#key=val", TRUE, NULL }, + { "conn foo # asdf\n\tkey=@#keyid", TRUE, "@#keyid" }, + { "conn foo # asdf\n\tkey=\"@#keyid\"", TRUE, "@#keyid" }, + { "conn foo # asdf\n\tkey=asdf@#keyid", TRUE, "asdf@" }, { "conn foo # asdf\n\tkey=#val", TRUE, NULL }, { "conn foo # asdf\n\tkey=val#asdf", TRUE, "val" }, { "conn foo # asdf\n\tkey=\"val#asdf\"", TRUE, "val#asdf" },