summaryrefslogtreecommitdiffstats
path: root/src/doxygen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/doxygen.cpp')
-rw-r--r--src/doxygen.cpp38
1 files changed, 22 insertions, 16 deletions
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 8a1dcec..d71e7c1 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -488,6 +488,10 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root)
iName=iName.mid(1,iName.length()-2); // strip quotes or brackets
}
}
+ else if (!Config_getList("STRIP_FROM_INC_PATH").isEmpty())
+ {
+ iName=stripFromIncludePath(fd->absFilePath());
+ }
else // use name of the file containing the class definition
{
iName=fd->name();
@@ -822,21 +826,6 @@ static void addClassToContext(Entry *root)
cd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
cd->insertUsedFile(root->fileName);
- //int bi;
- //if (root->objc && (bi=fullName.find('<'))!=-1 && root->extends->count()==0)
- //{
- // // add protocols as base classes
- // int be=fullName.find('>'),len;
- // static QRegExp re("[A-Z_a-z][A-Z_a-z0-9]*");
- // int p=0;
- // while ((p=re.match(fullName,bi+1,&len))!=-1 && p<be)
- // {
- // QCString baseName = fullName.mid(p,len);
- // printf("Adding artifical base class %s to %s\n",baseName.data(),fullName.data());
- // root->extends->append(new BaseInfo(baseName,Public,Normal));
- // bi=p+len;
- // }
- //}
// add class to the list
//printf("ClassDict.insert(%s)\n",resolveDefines(fullName).data());
@@ -5754,10 +5743,26 @@ static void createTemplateInstanceMembers()
static void buildCompleteMemberLists()
{
ClassDef *cd;
- // merge the member list of base classes into the inherited classes.
+ // merge members of categories into the class they extend
ClassSDict::Iterator cli(Doxygen::classSDict);
for (cli.toFirst();(cd=cli.current());++cli)
{
+ int i=cd->name().find('(');
+ if (i!=-1) // it is an Objective-C category
+ {
+ QCString baseName=cd->name().left(i);
+ ClassDef *baseClass=Doxygen::classSDict.find(baseName);
+ if (baseClass)
+ {
+ //printf("*** merging members of category %s into %s\n",
+ // cd->name().data(),baseClass->name().data());
+ baseClass->mergeCategory(cd);
+ }
+ }
+ }
+ // merge the member list of base classes into the inherited classes.
+ for (cli.toFirst();(cd=cli.current());++cli)
+ {
if (// !cd->isReference() && // not an external class
cd->subClasses()->count()==0 && // is a root of the hierarchy
cd->baseClasses()->count()>0) // and has at least one base class
@@ -8372,6 +8377,7 @@ void generateOutput()
exit(1);
}
Doxygen::tagFile.setDevice(tag);
+ Doxygen::tagFile.setEncoding(QTextStream::Latin1);
Doxygen::tagFile << "<?xml version='1.0' encoding='ISO-8859-1' standalone='yes'?>" << endl;
Doxygen::tagFile << "<tagfile>" << endl;
}