diff options
author | Dimitri van Heesch <doxygen@gmail.com> | 2020-02-20 18:32:30 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-20 18:32:30 (GMT) |
commit | 8d1d1b13ce7da7ea1251ef0320690aa08cbbf882 (patch) | |
tree | 2e38e4aeeaf474e7bafa5d4ca95b93eb95f72847 | |
parent | 597d113d52a25d5185c8fb1c1d3d3d7b8f1f4a90 (diff) | |
parent | 00b45f73c67f5c57407e6e2a783af7f0820afa4d (diff) | |
download | Doxygen-8d1d1b13ce7da7ea1251ef0320690aa08cbbf882.zip Doxygen-8d1d1b13ce7da7ea1251ef0320690aa08cbbf882.tar.gz Doxygen-8d1d1b13ce7da7ea1251ef0320690aa08cbbf882.tar.bz2 |
Merge pull request #7603 from albert-github/feature/bug_config_predefined
Problem in case using PREDEFINED with comma
-rw-r--r-- | src/configimpl.l | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/src/configimpl.l b/src/configimpl.l index eb33610..dfdeb4a 100644 --- a/src/configimpl.l +++ b/src/configimpl.l @@ -713,6 +713,7 @@ static void readIncludeFile(const char *incName) %x GetString %x GetBool %x GetStrList +%x GetStrList1 %x GetQuotedString %x GetEnvVar %x Include @@ -725,8 +726,8 @@ static void readIncludeFile(const char *incName) BEGIN(Start); unput(*yytext); } -<Start,GetString,GetStrList,GetBool,SkipInvalid>"##".*"\n" { config->appendUserComment(yytext);yyLineNr++;} -<Start,GetString,GetStrList,GetBool,SkipInvalid>"#" { BEGIN(SkipComment); } +<Start,GetString,GetStrList,GetStrList1,GetBool,SkipInvalid>"##".*"\n" { config->appendUserComment(yytext);yyLineNr++;} +<Start,GetString,GetStrList,GetStrList1,GetBool,SkipInvalid>"#" { BEGIN(SkipComment); } <Start>[a-z_A-Z][a-z_A-Z0-9]*[ \t]*"=" { QCString cmd=yytext; cmd=cmd.left(cmd.length()-1).stripWhiteSpace(); ConfigOption *option = config->get(cmd); @@ -750,7 +751,14 @@ static void readIncludeFile(const char *incName) l = ((ConfigList *)option)->valueRef(); l->clear(); elemStr=""; - BEGIN(GetStrList); + if (cmd == "PREDEFINED") + { + BEGIN(GetStrList1); + } + else + { + BEGIN(GetStrList); + } break; case ConfigOption::O_Enum: s = ((ConfigEnum *)option)->valueRef(); @@ -880,7 +888,7 @@ static void readIncludeFile(const char *incName) <Start>[a-z_A-Z0-9]+ { config_warn("ignoring unknown tag '%s' at line %d, file %s\n",yytext,yyLineNr,yyFileName.data()); } <GetString,GetBool,SkipInvalid>\n { yyLineNr++; BEGIN(Start); } -<GetStrList>\n { +<GetStrList,GetStrList1>\n { yyLineNr++; if (!elemStr.isEmpty()) { @@ -889,6 +897,14 @@ static void readIncludeFile(const char *incName) } BEGIN(Start); } +<GetStrList1>[ \t]+ { + if (!elemStr.isEmpty()) + { + //printf("elemStr2='%s'\n",elemStr.data()); + l->append(elemStr); + } + elemStr.resize(0); + } <GetStrList>[ \t,]+ { if (!elemStr.isEmpty()) { @@ -900,7 +916,7 @@ static void readIncludeFile(const char *incName) <GetString>[^ \"\t\r\n]+ { (*s)+=configStringRecode(yytext,encoding,"UTF-8"); checkEncoding(); } -<GetString,GetStrList,SkipInvalid>"\"" { lastState=YY_START; +<GetString,GetStrList,GetStrList1,SkipInvalid>"\"" { lastState=YY_START; BEGIN(GetQuotedString); tmpString.resize(0); } @@ -943,6 +959,9 @@ static void readIncludeFile(const char *incName) bs.data(),yyLineNr,yyFileName.data()); } } +<GetStrList1>[^ \#\"\t\r\n]+ { + elemStr+=configStringRecode(yytext,encoding,"UTF-8"); + } <GetStrList>[^ \#\"\t\r\n,]+ { elemStr+=configStringRecode(yytext,encoding,"UTF-8"); } |