summaryrefslogtreecommitdiffstats
path: root/src/doxygen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/doxygen.cpp')
-rw-r--r--src/doxygen.cpp66
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)
{