diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2005-06-15 19:21:39 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2005-06-15 19:21:39 (GMT) |
commit | 7e2f4c794ab68b3e14cca2f40ed1b19926c3de05 (patch) | |
tree | 3f2be46d34910503ef3532aa95aa0422e86cd993 /src/util.cpp | |
parent | 365d0dd98ec1e2cbd7f732a5a9a963e5cf2fbde2 (diff) | |
download | Doxygen-7e2f4c794ab68b3e14cca2f40ed1b19926c3de05.zip Doxygen-7e2f4c794ab68b3e14cca2f40ed1b19926c3de05.tar.gz Doxygen-7e2f4c794ab68b3e14cca2f40ed1b19926c3de05.tar.bz2 |
Release-1.4.3-20050615
Diffstat (limited to 'src/util.cpp')
-rw-r--r-- | src/util.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/util.cpp b/src/util.cpp index 6728c56..679e0d3 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -2698,6 +2698,8 @@ static QCString getCanonicalTypeForIdentifier( symName=word; } + //printf("symName=%s templSpec=%s\n",symName.data(),templSpec.data()); + if (!symName.isEmpty() && !templSpec.isEmpty() && (defList=Doxygen::symbolMap->find(symName+templSpec)) && defList->count()==1) // word without scope but with template specs @@ -2733,6 +2735,10 @@ static QCString getCanonicalTypeForIdentifier( if (cd) // known type { result = cd->qualifiedNameWithTemplateParameters(); + if (cd->isTemplate()) + { + *tSpec=""; + } } else if (mType && mType->isEnumerate()) // an enum { @@ -2799,15 +2805,15 @@ static QCString extractCanonicalType(Definition *d,FileDef *fs,const Argument *a // then resolve any identifiers inside. { static QRegExp re("[a-z_A-Z][a-z_A-Z0-9]*"); - int p=0,l,i; + int tp=0,tl,ti; // for each identifier template specifier - while ((i=re.match(templSpec,p,&l))!=-1) + while ((ti=re.match(templSpec,tp,&tl))!=-1) { - canType += templSpec.mid(p,i-p); - canType += getCanonicalTypeForIdentifier(d,fs,word,0); - p=i+l; + canType += templSpec.mid(tp,ti-tp); + canType += getCanonicalTypeForIdentifier(d,fs,templSpec.mid(ti,tl),0); + tp=ti+tl; } - canType+=templSpec.right(templSpec.length()-p); + canType+=templSpec.right(templSpec.length()-tp); } pp=p; |