diff options
author | Dimitri van Heesch <doxygen@gmail.com> | 2021-05-20 19:01:20 (GMT) |
---|---|---|
committer | Dimitri van Heesch <doxygen@gmail.com> | 2021-05-20 19:01:20 (GMT) |
commit | 31bd54525cb2edb90882335079d9a12647437a7c (patch) | |
tree | 72f908c70840e9cfa6ab2d42bb0d7294681decd6 | |
parent | 7944b8e632a063032452e7fe50074ec7eba3fe2e (diff) | |
parent | eff7c65d11435e2246e963fac8a3c87c38f00210 (diff) | |
download | Doxygen-31bd54525cb2edb90882335079d9a12647437a7c.zip Doxygen-31bd54525cb2edb90882335079d9a12647437a7c.tar.gz Doxygen-31bd54525cb2edb90882335079d9a12647437a7c.tar.bz2 |
Merge branch 'feature/issue_8542' of https://github.com/albert-github/doxygen into albert-github-feature/issue_8542
-rw-r--r-- | src/pre.l | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -3241,10 +3241,17 @@ static void initPredefined(yyscan_t yyscanner,const QCString &fileName) ) // predefined function macro definition { static const reg::Ex reId(R"(\a\w*)"); + static const reg::Ex reVaArgs(R"(, *\.\.\. *$)"); reg::Iterator end; bool varArgs = false; int count = 0; std::map<std::string,int> argMap; + reg::Iterator it1(ds.substr(i_obrace+1,i_cbrace-i_obrace-1),reVaArgs,0); + if (it1 != end) + { + i_cbrace -= it1->length(); + + } if (ds.substr(i_obrace+1,i_cbrace-i_obrace-1)=="...") { varArgs = true; @@ -3274,6 +3281,12 @@ static void initPredefined(yyscan_t yyscanner,const QCString &fileName) } ++it; } + if (it1!=end) + { + varArgs = true; + argMap.emplace("__VA_ARGS__",count); + count++; + } } // strip definition part std::string definition; |