diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2015-03-22 13:09:04 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2015-03-22 13:09:04 (GMT) |
commit | 32093bcca82c7d3a4df4670f52340033e9f16b62 (patch) | |
tree | 2c07734b7eaae6b4d51735ebfd449116f98417a1 | |
parent | 95375152974fa7e0e4d4cec7007d942dd5e9615e (diff) | |
download | Doxygen-32093bcca82c7d3a4df4670f52340033e9f16b62.zip Doxygen-32093bcca82c7d3a4df4670f52340033e9f16b62.tar.gz Doxygen-32093bcca82c7d3a4df4670f52340033e9f16b62.tar.bz2 |
Fix for rendering the template parameters of members of variadic template classes.
-rw-r--r-- | src/defargs.l | 12 | ||||
-rw-r--r-- | src/doxygen.cpp | 2 | ||||
-rw-r--r-- | src/util.cpp | 6 |
3 files changed, 12 insertions, 8 deletions
diff --git a/src/defargs.l b/src/defargs.l index 7b8248c..40a77fb 100644 --- a/src/defargs.l +++ b/src/defargs.l @@ -370,18 +370,18 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" if (a->type.left(6)=="const ") sv=6; else if (a->type.left(9)=="volatile ") sv=9; - if (a->type.mid(sv)=="struct" || - a->type.mid(sv)=="union" || - a->type.mid(sv)=="class" || - a->type.mid(sv)=="typename" || - a->type=="const" || + if (a->type.mid(sv,6)=="struct" || + a->type.mid(sv,5)=="union" || + a->type.mid(sv,5)=="class" || + a->type.mid(sv,8)=="typename" || + a->type=="const" || a->type=="volatile" ) { a->type = a->type + " " + a->name; a->name.resize(0); } - //printf(" --> a->type='%s'\n",a->type.data()); + //printf(" --> a->type='%s' a->name='%s'\n",a->type.data(),a->name.data()); } else // assume only the type was specified, try to determine name later { diff --git a/src/doxygen.cpp b/src/doxygen.cpp index fbad9d1..d966738 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -1353,7 +1353,7 @@ static void addClassToContext(EntryNav *rootNav) //printf("new ClassDef %s tempArgList=%p specScope=%s\n",fullName.data(),root->tArgList,root->scopeSpec.data()); //printf("class %s template args=%s\n",fullName.data(), - // tArgList ? tempArgListToString(tArgList).data() : "<none>"); + // tArgList ? tempArgListToString(tArgList,root->lang).data() : "<none>"); cd->setTemplateArguments(tArgList); cd->setProtection(root->protection); cd->setIsStatic(root->stat); diff --git a/src/util.cpp b/src/util.cpp index ffa03e1..a550a2f 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1724,7 +1724,7 @@ nextChar: growBuf.addChar(' '); } else if (i>0 && c=='>' && // current char is a > - (isId(s.at(i-1)) || isspace((uchar)s.at(i-1)) || s.at(i-1)=='*' || s.at(i-1)=='&') && // prev char is an id char or space + (isId(s.at(i-1)) || isspace((uchar)s.at(i-1)) || s.at(i-1)=='*' || s.at(i-1)=='&' || s.at(i-1)=='.') && // prev char is an id char or space (i<8 || !findOperator(s,i)) // string in front is not "operator" ) { @@ -2225,6 +2225,10 @@ QCString tempArgListToString(ArgumentList *al,SrcLangExt lang) if (i>0) { result+=a->type.right(a->type.length()-i-1); + if (a->type.find("...")!=-1) + { + result+="..."; + } } else // nothing found -> take whole name { |