diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2010-09-20 18:19:55 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2010-09-20 18:19:55 (GMT) |
commit | a80f9320bf9fdd879869cee2cea1ec3f9af822f8 (patch) | |
tree | c3964e8a42bc4dfecf5a99d6de94650878e67a0f /src/doxygen.cpp | |
parent | ce8facca2c23f4656747ad3a5b4a8db475855e27 (diff) | |
download | Doxygen-a80f9320bf9fdd879869cee2cea1ec3f9af822f8.zip Doxygen-a80f9320bf9fdd879869cee2cea1ec3f9af822f8.tar.gz Doxygen-a80f9320bf9fdd879869cee2cea1ec3f9af822f8.tar.bz2 |
Release-1.7.1-20100920
Diffstat (limited to 'src/doxygen.cpp')
-rw-r--r-- | src/doxygen.cpp | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/doxygen.cpp b/src/doxygen.cpp index eda6119..4d78e16 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -40,6 +40,7 @@ #include "pre.h" #include "tagreader.h" #include "dot.h" +#include "msc.h" #include "docparser.h" #include "dirdef.h" #include "outputlist.h" @@ -112,6 +113,7 @@ FileNameDict *Doxygen::includeNameDict = 0; // include names FileNameDict *Doxygen::exampleNameDict = 0; // examples FileNameDict *Doxygen::imageNameDict = 0; // images FileNameDict *Doxygen::dotFileNameDict = 0; // dot files +FileNameDict *Doxygen::mscFileNameDict = 0; // dot files StringDict Doxygen::namespaceAliasDict(257); // all namespace aliases StringDict Doxygen::tagDestinationDict(257); // all tag locations QDict<void> Doxygen::expandAsDefinedDict(257); // all macros that should be expanded @@ -174,6 +176,7 @@ void clearAll() Doxygen::exampleNameDict->clear(); Doxygen::imageNameDict->clear(); Doxygen::dotFileNameDict->clear(); + Doxygen::mscFileNameDict->clear(); Doxygen::formulaDict.clear(); Doxygen::formulaNameDict.clear(); Doxygen::tagDestinationDict.clear(); @@ -192,6 +195,8 @@ void statistics() Doxygen::imageNameDict->statistics(); fprintf(stderr,"--- dotFileNameDict stats ----\n"); Doxygen::dotFileNameDict->statistics(); + fprintf(stderr,"--- mscFileNameDict stats ----\n"); + Doxygen::mscFileNameDict->statistics(); //fprintf(stderr,"--- g_excludeNameDict stats ----\n"); //g_excludeNameDict.statistics(); fprintf(stderr,"--- aliasDict stats ----\n"); @@ -4243,6 +4248,17 @@ static bool findClassRelation( found = baseClass!=0 && baseClass!=cd; } + if (!found) + { + // for PHP the "use A\B as C" construct map class C to A::B, so we lookup + // the class name also in the alias mapping. + QCString *aliasName = Doxygen::namespaceAliasDict[baseClassName]; + if (aliasName) // see if it is indeed a class. + { + baseClass=getClass(*aliasName); + found = baseClass!=0 && baseClass!=cd; + } + } bool isATemplateArgument = templateNames!=0 && templateNames->find(biName)!=0; // make templSpec canonical // warning: the following line doesn't work for Mixin classes (see bug 560623) @@ -5881,7 +5897,7 @@ static void findMember(EntryNav *rootNav, { LockingPtr<ArgumentList> rmdAl = rmd->argumentList(); - newMember=newMember && + newMember= !matchArguments2(rmd->getOuterScope(),rmd->getFileDef(),rmdAl.pointer(), cd,fd,root->argList, TRUE); @@ -9141,6 +9157,7 @@ void initDoxygen() Doxygen::exampleNameDict->setAutoDelete(TRUE); Doxygen::imageNameDict = new FileNameDict(257); Doxygen::dotFileNameDict = new FileNameDict(257); + Doxygen::mscFileNameDict = new FileNameDict(257); Doxygen::sectionDict.setAutoDelete(TRUE); Doxygen::memGrpInfoDict.setAutoDelete(TRUE); Doxygen::tagDestinationDict.setAutoDelete(TRUE); @@ -9155,6 +9172,7 @@ void cleanUpDoxygen() delete Doxygen::exampleNameDict; delete Doxygen::imageNameDict; delete Doxygen::dotFileNameDict; + delete Doxygen::mscFileNameDict; delete Doxygen::mainPage; delete Doxygen::pageSDict; delete Doxygen::exampleSDict; @@ -9738,6 +9756,18 @@ void searchInputFiles(StringList &inputFiles) s=dotFileList.next(); } + msg("Searching for msc files...\n"); + QStrList &mscFileList=Config_getList("MSCFILE_DIRS"); + s=mscFileList.first(); + while (s) + { + readFileOrDirectory(s,0,Doxygen::mscFileNameDict,0,0, + 0,0,0, + alwaysRecursive); + s=dotFileList.next(); + } + + msg("Searching for files to exclude\n"); QStrList &excludeList = Config_getList("EXCLUDE"); s=excludeList.first(); |