summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2021-05-20 19:01:20 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2021-05-20 19:01:20 (GMT)
commit31bd54525cb2edb90882335079d9a12647437a7c (patch)
tree72f908c70840e9cfa6ab2d42bb0d7294681decd6
parent7944b8e632a063032452e7fe50074ec7eba3fe2e (diff)
parenteff7c65d11435e2246e963fac8a3c87c38f00210 (diff)
downloadDoxygen-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.l13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/pre.l b/src/pre.l
index 7b48ca7..54627ce 100644
--- a/src/pre.l
+++ b/src/pre.l
@@ -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;