diff options
Diffstat (limited to 'src/doxygen.cpp')
-rw-r--r-- | src/doxygen.cpp | 66 |
1 files changed, 19 insertions, 47 deletions
diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 8b063f1..5a2c5da 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -1065,19 +1065,20 @@ static void addClassToContext(EntryNav *rootNav) { scName=rootNav->parent()->name(); } - // name without parent's scope: TODO: is this still true? + // name without parent's scope QCString fullName = root->name; // strip off any template parameters (but not those for specializations) fullName=stripTemplateSpecifiersFromScope(fullName); - // name with scope + // name with scope (if not present already) QCString qualifiedName = fullName; if (!scName.isEmpty() && !leftScopeMatch(fullName,scName)) { qualifiedName.prepend(scName+"::"); } + // see if we already found the class before ClassDef *cd = getClass(qualifiedName); Debug::print(Debug::Classes,0, " Found class with name %s (qualifiedName=%s -> cd=%p)\n", @@ -1092,50 +1093,16 @@ static void addClassToContext(EntryNav *rootNav) // //printf("existing ClassDef tempArgList=%p specScope=%s\n",root->tArgList,root->scopeSpec.data()); // cd->setTemplateArguments(tArgList); //} -#if 0 - if (!root->doc.isEmpty() || !root->brief.isEmpty() || - (root->bodyLine!=-1 && Config_getBool("SOURCE_BROWSER")) - ) - // block contains something that ends up in the docs - { - if (!root->doc.isEmpty() && !cd->documentation().isEmpty()) - { - warn( - root->fileName,root->startLine, - "Warning: class %s already has a detailed description found in file %s at line %d. " - "Skipping the one found here.", - fullName.data(),cd->docFile().data(),cd->docLine() - ); - } - else if (!root->doc.isEmpty()) -#endif - { - cd->setDocumentation(root->doc,root->docFile,root->docLine); - } -#if 0 - if (!root->brief.isEmpty() && !cd->briefDescription().isEmpty()) - { - warn( - root->fileName,root->startLine, - "Warning: class %s already has a brief description found in file %s at line %d\n" - " skipping the one found here.", - fullName.data(),cd->briefFile().data(),cd->briefLine() - ); - } - else if (!root->brief.isEmpty()) -#endif - { - cd->setBriefDescription(root->brief,root->briefFile,root->briefLine); - } - if (root->bodyLine!=-1 && cd->getStartBodyLine()==-1) - { - cd->setBodySegment(root->bodyLine,root->endBodyLine); - cd->setBodyDef(fd); - } - //cd->setName(fullName); // change name to match docs -#if 0 + + cd->setDocumentation(root->doc,root->docFile,root->docLine); + cd->setBriefDescription(root->brief,root->briefFile,root->briefLine); + + if (root->bodyLine!=-1 && cd->getStartBodyLine()==-1) + { + cd->setBodySegment(root->bodyLine,root->endBodyLine); + cd->setBodyDef(fd); } -#endif + //cd->setName(fullName); // change name to match docs if (cd->templateArguments()==0) { @@ -3921,7 +3888,9 @@ static bool findTemplateInstanceRelation(Entry *root, //} //printf("\n"); - bool existingClass = (templSpec==tempArgListToString(templateClass->templateArguments())); + bool existingClass = (templSpec == + tempArgListToString(templateClass->templateArguments()) + ); if (existingClass) return TRUE; bool freshInstance=FALSE; @@ -4175,7 +4144,7 @@ static bool findClassRelation( //printf("baseClass==0 i=%d e=%d\n",i,e); if (e!=-1) // end of template was found at e { - templSpec=baseClassName.mid(i,e-i); + templSpec=removeRedundantWhiteSpace(baseClassName.mid(i,e-i)); baseClassName=baseClassName.left(i)+baseClassName.right(baseClassName.length()-e); baseClass=getResolvedClass(cd, cd->getFileDef(), @@ -5512,6 +5481,9 @@ static void findMember(EntryNav *rootNav, NamespaceDef *nd=0; if (!namespaceName.isEmpty()) nd=getResolvedNamespace(namespaceName); + //printf("scopeName %s->%s\n",scopeName.data(), + // stripTemplateSpecifiersFromScope(scopeName,FALSE).data()); + ClassDef *tcd=findClassDefinition(fd,nd,scopeName); if (tcd==0 && stripAnonymousNamespaceScope(cd->name())==scopeName) { |