Commit 9e4e94fb authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.2.11-20011003

parent 00e00a1d
DOXYGEN Version 1.2.11 DOXYGEN Version 1.2.11-20011003
Please read the installation section of the manual for instructions. Please read the installation section of the manual for instructions.
-------- --------
Dimitri van Heesch (30 September 2001) Dimitri van Heesch (03 October 2001)
DOXYGEN Version 1.2.11 DOXYGEN Version 1.2.11_20011003
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. ...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy, Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (30 September 2001) Dimitri van Heesch (dimitri@stack.nl) (03 October 2001)
1.2.11 1.2.11-20011003
...@@ -40,6 +40,9 @@ CompoundHandler::CompoundHandler(IBaseHandler *parent) ...@@ -40,6 +40,9 @@ CompoundHandler::CompoundHandler(IBaseHandler *parent)
addStartHandler("detaileddescription",this,&CompoundHandler::startDetailedDesc); addStartHandler("detaileddescription",this,&CompoundHandler::startDetailedDesc);
addStartHandler("sectiondef",this,&CompoundHandler::startSection); addStartHandler("sectiondef",this,&CompoundHandler::startSection);
addStartHandler("location",this,&CompoundHandler::startLocation);
addEndHandler("location");
} }
CompoundHandler::~CompoundHandler() CompoundHandler::~CompoundHandler()
...@@ -71,10 +74,16 @@ void CompoundHandler::startDetailedDesc(const QXmlAttributes& attrib) ...@@ -71,10 +74,16 @@ void CompoundHandler::startDetailedDesc(const QXmlAttributes& attrib)
void CompoundHandler::startCompound(const QXmlAttributes& attrib) void CompoundHandler::startCompound(const QXmlAttributes& attrib)
{ {
m_parent->setDelegate(this); m_parent->setDelegate(this);
m_id = attrib.value("id"); m_id = attrib.value("id");
m_kind = attrib.value("kind"); m_kind = attrib.value("kind");
printf("startCompound(id=`%s' type=`%s')\n",m_id.data(),m_kind.data()); printf("startCompound(id=`%s' type=`%s')\n",m_id.data(),m_kind.data());
}
void CompoundHandler::startLocation(const QXmlAttributes& attrib)
{
m_defFile = attrib.value("file");
m_defLine = attrib.value("line").toInt();
} }
void CompoundHandler::endCompound() void CompoundHandler::endCompound()
......
...@@ -36,6 +36,7 @@ class CompoundHandler : public ICompound, public BaseHandler<CompoundHandler> ...@@ -36,6 +36,7 @@ class CompoundHandler : public ICompound, public BaseHandler<CompoundHandler>
virtual void endCompoundName(); virtual void endCompoundName();
virtual void startBriefDesc(const QXmlAttributes& attrib); virtual void startBriefDesc(const QXmlAttributes& attrib);
virtual void startDetailedDesc(const QXmlAttributes& attrib); virtual void startDetailedDesc(const QXmlAttributes& attrib);
virtual void startLocation(const QXmlAttributes& attrib);
CompoundHandler(IBaseHandler *parent); CompoundHandler(IBaseHandler *parent);
virtual ~CompoundHandler(); virtual ~CompoundHandler();
...@@ -74,6 +75,8 @@ class CompoundHandler : public ICompound, public BaseHandler<CompoundHandler> ...@@ -74,6 +75,8 @@ class CompoundHandler : public ICompound, public BaseHandler<CompoundHandler>
QString m_id; QString m_id;
QString m_kind; QString m_kind;
QString m_name; QString m_name;
QString m_defFile;
int m_defLine;
}; };
#endif #endif
...@@ -34,6 +34,9 @@ MemberHandler::MemberHandler(IBaseHandler *parent) ...@@ -34,6 +34,9 @@ MemberHandler::MemberHandler(IBaseHandler *parent)
addStartHandler("detaileddescription",this,&MemberHandler::startDetailedDesc); addStartHandler("detaileddescription",this,&MemberHandler::startDetailedDesc);
addStartHandler("location",this,&MemberHandler::startLocation);
addEndHandler("location");
m_params.setAutoDelete(TRUE); m_params.setAutoDelete(TRUE);
} }
...@@ -69,6 +72,12 @@ void MemberHandler::startDetailedDesc(const QXmlAttributes& attrib) ...@@ -69,6 +72,12 @@ void MemberHandler::startDetailedDesc(const QXmlAttributes& attrib)
m_detailed = docHandler; m_detailed = docHandler;
} }
void MemberHandler::startLocation(const QXmlAttributes& attrib)
{
m_defFile = attrib.value("file");
m_defLine = attrib.value("line").toInt();
}
void MemberHandler::endMember() void MemberHandler::endMember()
{ {
m_parent->setDelegate(0); m_parent->setDelegate(0);
......
...@@ -36,6 +36,7 @@ class MemberHandler : public IMember, public BaseHandler<MemberHandler> ...@@ -36,6 +36,7 @@ class MemberHandler : public IMember, public BaseHandler<MemberHandler>
virtual void endName(); virtual void endName();
virtual void startBriefDesc(const QXmlAttributes& attrib); virtual void startBriefDesc(const QXmlAttributes& attrib);
virtual void startDetailedDesc(const QXmlAttributes& attrib); virtual void startDetailedDesc(const QXmlAttributes& attrib);
virtual void startLocation(const QXmlAttributes& attrib);
MemberHandler(IBaseHandler *parent); MemberHandler(IBaseHandler *parent);
virtual ~MemberHandler(); virtual ~MemberHandler();
...@@ -60,6 +61,8 @@ class MemberHandler : public IMember, public BaseHandler<MemberHandler> ...@@ -60,6 +61,8 @@ class MemberHandler : public IMember, public BaseHandler<MemberHandler>
DocHandler *m_brief; DocHandler *m_brief;
DocHandler *m_detailed; DocHandler *m_detailed;
QList<IParam> m_params; QList<IParam> m_params;
QString m_defFile;
int m_defLine;
}; };
#endif #endif
...@@ -408,11 +408,8 @@ Here is what is required: ...@@ -408,11 +408,8 @@ Here is what is required:
commerical version of Qt. commerical version of Qt.
For doxywizard, a complete Qt library is For doxywizard, a complete Qt library is
still a requirement however. You may be interested in the professional still a requirement however. You can download the non-commercial version
license of <A HREF="http://www.trolltech.com/products/qt.html">Qt for from Troll-Tech web-site. See doxygen download page for a link.
Windows</A> \latexonly\par (see
{\tt http://www.trolltech.com/products/qt.html})\endlatexonly. If you
donate me a professional license I'll port doxywizard for you :-)
<li>To generate LaTeX documentation or formulas in HTML you need the tools: <li>To generate LaTeX documentation or formulas in HTML you need the tools:
<code>latex</code>, <code>dvips</code> and <code>gswin32</code>. <code>latex</code>, <code>dvips</code> and <code>gswin32</code>.
......
...@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means ...@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
that the text fragments that doxygen generates can be produced in that the text fragments that doxygen generates can be produced in
languages other than English (the default) at configuration time. languages other than English (the default) at configuration time.
Currently (version 1.2.10-20010909), 24 languages Currently (version 1.2.11), 24 languages
are supported (sorted alphabetically): are supported (sorted alphabetically):
Brazilian Portuguese, Chinese, Croatian, Czech, Danish, Brazilian Portuguese, Chinese, Croatian, Czech, Danish,
Dutch, English, Finnish, French, German, Dutch, English, Finnish, French, German,
...@@ -168,7 +168,7 @@ when the translator was updated. ...@@ -168,7 +168,7 @@ when the translator was updated.
<TD>Slovak</TD> <TD>Slovak</TD>
<TD>Stanislav Kudl&aacute;&#x010d;</TD> <TD>Stanislav Kudl&aacute;&#x010d;</TD>
<TD>qwerty1@NOSPAM.pobox.sk</TD> <TD>qwerty1@NOSPAM.pobox.sk</TD>
<TD>1.2.7</TD> <TD>up-to-date</TD>
</TR> </TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD>Slovene</TD> <TD>Slovene</TD>
...@@ -245,7 +245,7 @@ when the translator was updated. ...@@ -245,7 +245,7 @@ when the translator was updated.
\hline \hline
Russian & Alexandr Chelpanov & {\tt cav@cryptopro.ru} & up-to-date \\ Russian & Alexandr Chelpanov & {\tt cav@cryptopro.ru} & up-to-date \\
\hline \hline
Slovak & Stanislav Kudl\'{a}\v{c} & {\tt qwerty1@pobox.sk} & 1.2.7 \\ Slovak & Stanislav Kudl\'{a}\v{c} & {\tt qwerty1@pobox.sk} & up-to-date \\
\hline \hline
Slovene & Matjaz Ostroversnik & {\tt matjaz.ostroversnik@zrs-tk.si} & 1.1.5 \\ Slovene & Matjaz Ostroversnik & {\tt matjaz.ostroversnik@zrs-tk.si} & 1.1.5 \\
\hline \hline
......
Name: doxygen Name: doxygen
Version: 1.2.11 Version: 1.2.11_20011003
Summary: documentation system for C, C++ and IDL Summary: documentation system for C, C++ and IDL
Release: 4 Release: 4
Source: doxygen-%{version}.src.tar.gz Source: doxygen-%{version}.src.tar.gz
......
...@@ -31,7 +31,7 @@ class BufStr : public QCString ...@@ -31,7 +31,7 @@ class BufStr : public QCString
{ {
if (offset>=size()) if (offset>=size())
{ {
resize(size()+spareRoom); QCString::resize(size()+spareRoom);
} }
data()[offset++]=c; data()[offset++]=c;
} }
...@@ -39,7 +39,7 @@ class BufStr : public QCString ...@@ -39,7 +39,7 @@ class BufStr : public QCString
{ {
if (offset+len>=size()) if (offset+len>=size())
{ {
resize(size()+len+spareRoom); QCString::resize(size()+len+spareRoom);
} }
memcpy(data()+offset,a,len); memcpy(data()+offset,a,len);
offset+=len; offset+=len;
...@@ -49,16 +49,21 @@ class BufStr : public QCString ...@@ -49,16 +49,21 @@ class BufStr : public QCString
{ {
if (offset+s>=size()) if (offset+s>=size())
{ {
resize(size()+s+spareRoom); QCString::resize(size()+s+spareRoom);
} }
offset+=s; offset+=s;
} }
void resize( uint newlen ) void resize( uint newlen )
{ {
QCString::resize(newlen); //QCString::resize(newlen);
if (offset>newlen) //if (offset>newlen)
//{
// offset=newlen;
//}
offset=newlen;
if (offset>=size())
{ {
offset=newlen; QCString::resize(size()+spareRoom);
} }
} }
private: private:
......
...@@ -231,7 +231,7 @@ static void startCodeLine() ...@@ -231,7 +231,7 @@ static void startCodeLine()
static void endFontClass(); static void endFontClass();
static void endCodeLine() static void endCodeLine()
{ {
endFontClass(); if (g_currentFontClass) { g_code->endFontClass(); }
g_code->endCodeLine(); g_code->endCodeLine();
} }
......
...@@ -70,8 +70,9 @@ static QDict<Entry> classEntries(1009); ...@@ -70,8 +70,9 @@ static QDict<Entry> classEntries(1009);
ClassSDict Doxygen::classSDict(1009); ClassSDict Doxygen::classSDict(1009);
ClassSDict Doxygen::hiddenClasses(257); ClassSDict Doxygen::hiddenClasses(257);
NamespaceList Doxygen::namespaceList; // all namespaces //NamespaceList Doxygen::namespaceList; // all namespaces
NamespaceDict Doxygen::namespaceDict(257); //NamespaceDict Doxygen::namespaceDict(257);
NamespaceSDict Doxygen::namespaceSDict(17);
MemberNameList Doxygen::memberNameList; // class member + related functions MemberNameList Doxygen::memberNameList; // class member + related functions
MemberNameDict Doxygen::memberNameDict(10007); MemberNameDict Doxygen::memberNameDict(10007);
...@@ -123,7 +124,7 @@ void clearAll() ...@@ -123,7 +124,7 @@ void clearAll()
delete outputList; outputList=0; delete outputList; outputList=0;
Doxygen::classSDict.clear(); Doxygen::classSDict.clear();
Doxygen::namespaceList.clear(); Doxygen::namespaceSDict.clear();
Doxygen::pageSDict->clear(); Doxygen::pageSDict->clear();
Doxygen::exampleSDict->clear(); Doxygen::exampleSDict->clear();
Doxygen::memberNameList.clear(); Doxygen::memberNameList.clear();
...@@ -132,7 +133,6 @@ void clearAll() ...@@ -132,7 +133,6 @@ void clearAll()
Doxygen::groupList.clear(); Doxygen::groupList.clear();
Doxygen::formulaList.clear(); Doxygen::formulaList.clear();
Doxygen::classSDict.clear(); Doxygen::classSDict.clear();
Doxygen::namespaceDict.clear();
Doxygen::memberNameDict.clear(); Doxygen::memberNameDict.clear();
Doxygen::functionNameDict.clear(); Doxygen::functionNameDict.clear();
Doxygen::sectionDict.clear(); Doxygen::sectionDict.clear();
...@@ -161,8 +161,6 @@ void statistics() ...@@ -161,8 +161,6 @@ void statistics()
Doxygen::imageNameDict->statistics(); Doxygen::imageNameDict->statistics();
fprintf(stderr,"--- dotFileNameDict stats ----\n"); fprintf(stderr,"--- dotFileNameDict stats ----\n");
Doxygen::dotFileNameDict->statistics(); Doxygen::dotFileNameDict->statistics();
fprintf(stderr,"--- namespaceDict stats ----\n");
Doxygen::namespaceDict.statistics();
fprintf(stderr,"--- memberNameDict stats ----\n"); fprintf(stderr,"--- memberNameDict stats ----\n");
Doxygen::memberNameDict.statistics(); Doxygen::memberNameDict.statistics();
fprintf(stderr,"--- functionNameDict stats ----\n"); fprintf(stderr,"--- functionNameDict stats ----\n");
...@@ -713,7 +711,7 @@ ArgumentList *getTemplateArgumentsFromName( ...@@ -713,7 +711,7 @@ ArgumentList *getTemplateArgumentsFromName(
int i,p=0; int i,p=0;
while ((i=name.find("::",p))!=-1) while ((i=name.find("::",p))!=-1)
{ {
NamespaceDef *nd = Doxygen::namespaceDict[name.left(i)]; NamespaceDef *nd = Doxygen::namespaceSDict[name.left(i)];
if (nd==0) if (nd==0)
{ {
ClassDef *cd = getClass(name.left(i)); ClassDef *cd = getClass(name.left(i));
...@@ -982,7 +980,7 @@ static void buildNamespaceList(Entry *root) ...@@ -982,7 +980,7 @@ static void buildNamespaceList(Entry *root)
//printf("Found namespace %s in %s at line %d\n",root->name.data(), //printf("Found namespace %s in %s at line %d\n",root->name.data(),
// root->fileName.data(), root->startLine); // root->fileName.data(), root->startLine);
NamespaceDef *nd; NamespaceDef *nd;
if ((nd=Doxygen::namespaceDict[fullName])) // existing namespace if ((nd=Doxygen::namespaceSDict[fullName])) // existing namespace
{ {
if (!root->doc.isEmpty() || !root->brief.isEmpty()) // block contains docs if (!root->doc.isEmpty() || !root->brief.isEmpty()) // block contains docs
{ {
...@@ -1051,8 +1049,7 @@ static void buildNamespaceList(Entry *root) ...@@ -1051,8 +1049,7 @@ static void buildNamespaceList(Entry *root)
nd->setBodySegment(root->bodyLine,root->endBodyLine); nd->setBodySegment(root->bodyLine,root->endBodyLine);
nd->setBodyDef(fd); nd->setBodyDef(fd);
// add class to the list // add class to the list
Doxygen::namespaceList.inSort(nd); Doxygen::namespaceSDict.inSort(fullName,nd);
Doxygen::namespaceDict.insert(fullName,nd);
// also add namespace to the correct structural context // also add namespace to the correct structural context
Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,fullName); Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,fullName);
...@@ -1177,8 +1174,7 @@ static void findUsingDirectives(Entry *root) ...@@ -1177,8 +1174,7 @@ static void findUsingDirectives(Entry *root)
nd->setBriefDescription(root->brief); nd->setBriefDescription(root->brief);
nd->insertUsedFile(root->fileName); nd->insertUsedFile(root->fileName);
// add class to the list // add class to the list
Doxygen::namespaceList.inSort(nd); Doxygen::namespaceSDict.inSort(root->name,nd);
Doxygen::namespaceDict.insert(root->name,nd);
nd->setRefItems(root->todoId,root->testId,root->bugId); nd->setRefItems(root->todoId,root->testId,root->bugId);
} }
} }
...@@ -3225,11 +3221,11 @@ static void computeMemberReferences() ...@@ -3225,11 +3221,11 @@ static void computeMemberReferences()
} }
fn=Doxygen::inputNameList.next(); fn=Doxygen::inputNameList.next();
} }
NamespaceDef *nd=Doxygen::namespaceList.first(); NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);
while (nd) NamespaceDef *nd=0;
for (nli.toFirst();(nd=nli.current());++nli)
{ {
nd->computeAnchors(); nd->computeAnchors();
nd=Doxygen::namespaceList.next();
} }
GroupDef *gd=Doxygen::groupList.first(); GroupDef *gd=Doxygen::groupList.first();
while (gd) while (gd)
...@@ -3355,14 +3351,14 @@ static void addTodoTestBugReferences() ...@@ -3355,14 +3351,14 @@ static void addTodoTestBugReferences()
} }
fn=Doxygen::inputNameList.next(); fn=Doxygen::inputNameList.next();
} }
NamespaceDef *nd=Doxygen::namespaceList.first(); NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);
while (nd) NamespaceDef *nd=0;
for (nli.toFirst();(nd=nli.current());++nli)
{ {
addRefItem(nd->todoId(),nd->testId(),nd->bugId(), addRefItem(nd->todoId(),nd->testId(),nd->bugId(),
theTranslator->trNamespace(TRUE,TRUE), theTranslator->trNamespace(TRUE,TRUE),
nd->getOutputFileBase(),nd->name()); nd->getOutputFileBase(),nd->name());
addFileMemberTodoTestBugReferences(nd); addFileMemberTodoTestBugReferences(nd);
nd=Doxygen::namespaceList.next();
} }
GroupDef *gd=Doxygen::groupList.first(); GroupDef *gd=Doxygen::groupList.first();
while (gd) while (gd)
...@@ -5081,7 +5077,7 @@ static void addSourceReferences() ...@@ -5081,7 +5077,7 @@ static void addSourceReferences()
} }
} }
// add source references for namespace definitions // add source references for namespace definitions
NamespaceListIterator nli(Doxygen::namespaceList); NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);
NamespaceDef *nd=0; NamespaceDef *nd=0;
for (nli.toFirst();(nd=nli.current());++nli) for (nli.toFirst();(nd=nli.current());++nli)
{ {
...@@ -5251,11 +5247,11 @@ static void addMembersToMemberGroup() ...@@ -5251,11 +5247,11 @@ static void addMembersToMemberGroup()
fn=Doxygen::inputNameList.next(); fn=Doxygen::inputNameList.next();
} }
// for each namespace // for each namespace
NamespaceDef *nd=Doxygen::namespaceList.first(); NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);
while (nd) NamespaceDef *nd;
for ( ; (nd=nli.current()) ; ++nli )
{ {
nd->addMembersToMemberGroup(); nd->addMembersToMemberGroup();
nd=Doxygen::namespaceList.next();
} }
// for each group // for each group
GroupDef *gd=Doxygen::groupList.first(); GroupDef *gd=Doxygen::groupList.first();
...@@ -5290,11 +5286,11 @@ static void distributeMemberGroupDocumentation() ...@@ -5290,11 +5286,11 @@ static void distributeMemberGroupDocumentation()
fn=Doxygen::inputNameList.next(); fn=Doxygen::inputNameList.next();
} }
// for each namespace // for each namespace
NamespaceDef *nd=Doxygen::namespaceList.first(); NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);
while (nd) NamespaceDef *nd;
for ( ; (nd=nli.current()) ; ++nli )
{ {
nd->distributeMemberGroupDocumentation(); nd->distributeMemberGroupDocumentation();
nd=Doxygen::namespaceList.next();
} }
// for each group // for each group
GroupDef *gd=Doxygen::groupList.first(); GroupDef *gd=Doxygen::groupList.first();
...@@ -5770,7 +5766,7 @@ static void generateNamespaceDocs() ...@@ -5770,7 +5766,7 @@ static void generateNamespaceDocs()
{ {
writeNamespaceIndex(*outputList); writeNamespaceIndex(*outputList);
NamespaceListIterator nli(Doxygen::namespaceList); NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);
NamespaceDef *nd; NamespaceDef *nd;
for (;(nd=nli.current());++nli) for (;(nd=nli.current());++nli)
{ {
...@@ -6083,6 +6079,7 @@ static void copyAndFilterFile(const char *fileName,BufStr &dest) ...@@ -6083,6 +6079,7 @@ static void copyAndFilterFile(const char *fileName,BufStr &dest)
// try to open file // try to open file
int size=0; int size=0;
uint oldPos = dest.curPos(); uint oldPos = dest.curPos();
//printf(".......oldPos=%d\n",oldPos);
QFileInfo fi(fileName); QFileInfo fi(fileName);
if (!fi.exists()) return; if (!fi.exists()) return;
...@@ -6136,7 +6133,8 @@ static void copyAndFilterFile(const char *fileName,BufStr &dest) ...@@ -6136,7 +6133,8 @@ static void copyAndFilterFile(const char *fileName,BufStr &dest)
//printf("filter char at %p size=%d newSize=%d\n",dest.data()+oldPos,size,newSize); //printf("filter char at %p size=%d newSize=%d\n",dest.data()+oldPos,size,newSize);
if (newSize!=size) // we removed chars if (newSize!=size) // we removed chars
{ {
dest.resize(newSize); // resize the array dest.resize(oldPos+newSize); // resize the array
//printf(".......resizing from %d to %d\n",oldPos+size,oldPos+newSize);
} }
} }
......
...@@ -83,8 +83,9 @@ class Doxygen ...@@ -83,8 +83,9 @@ class Doxygen
static StringDict namespaceAliasDict; static StringDict namespaceAliasDict;
static GroupList groupList; static GroupList groupList;
static GroupDict groupDict; static GroupDict groupDict;
static NamespaceList namespaceList; //static NamespaceList namespaceList;
static NamespaceDict namespaceDict; //static NamespaceDict namespaceDict;
static NamespaceSDict namespaceSDict;
static FormulaList formulaList; static FormulaList formulaList;
static FormulaDict formulaDict; static FormulaDict formulaDict;
static FormulaDict formulaNameDict; static FormulaDict formulaNameDict;
......
...@@ -819,12 +819,12 @@ void HtmlGenerator::endIndexKey() ...@@ -819,12 +819,12 @@ void HtmlGenerator::endIndexKey()
t << "</td>"; t << "</td>";
} }
void HtmlGenerator::startIndexValue() void HtmlGenerator::startIndexValue(bool)
{ {
t << "<td>"; t << "<td>";
} }
void HtmlGenerator::endIndexValue(const char *) void HtmlGenerator::endIndexValue(const char *,bool)
{ {
t << "</td></tr>" << endl; t << "</td></tr>" << endl;
} }
......
...@@ -68,8 +68,8 @@ class HtmlGenerator : public OutputGenerator ...@@ -68,8 +68,8 @@ class HtmlGenerator : public OutputGenerator
void endIndexList(); void endIndexList();
void startIndexKey(); void startIndexKey();
void endIndexKey(); void endIndexKey();
void startIndexValue(); void startIndexValue(bool);
void endIndexValue(const char *); void endIndexValue(const char *,bool);
void startItemList() { t << "<ul>" << endl; } void startItemList() { t << "<ul>" << endl; }
void endItemList() { t << "</ul>" << endl; } void endItemList() { t << "</ul>" << endl; }
void startEnumList() { t << "<ol>" << endl; } void startEnumList() { t << "<ol>" << endl; }
......
...@@ -944,8 +944,9 @@ void writeFileIndex(OutputList &ol) ...@@ -944,8 +944,9 @@ void writeFileIndex(OutputList &ol)
ol.popGeneratorState(); ol.popGeneratorState();
} }
ol.endIndexKey(); ol.endIndexKey();
ol.startIndexValue(); bool hasBrief = !fd->briefDescription().isEmpty();
if (!fd->briefDescription().isEmpty()) ol.startIndexValue(hasBrief);
if (hasBrief)
{ {
//ol.docify(" ("); //ol.docify(" (");
parseDoc(ol, parseDoc(ol,
...@@ -954,7 +955,7 @@ void writeFileIndex(OutputList &ol) ...@@ -954,7 +955,7 @@ void writeFileIndex(OutputList &ol)
abbreviate(fd->briefDescription(),fd->name())); abbreviate(fd->briefDescription(),fd->name()));
//ol.docify(")"); //ol.docify(")");
} }
ol.endIndexValue(fd->getOutputFileBase()); ol.endIndexValue(fd->getOutputFileBase(),hasBrief);
//ol.popGeneratorState(); //ol.popGeneratorState();
// -------------------------------------------------------- // --------------------------------------------------------
} }
...@@ -986,7 +987,7 @@ void writeFileIndex(OutputList &ol) ...@@ -986,7 +987,7 @@ void writeFileIndex(OutputList &ol)
int countNamespaces() int countNamespaces()
{ {
int count=0; int count=0;
NamespaceListIterator nli(Doxygen::namespaceList); NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);
NamespaceDef *nd; NamespaceDef *nd;
for (;(nd=nli.current());++nli) for (;(nd=nli.current());++nli)
{ {
...@@ -1034,8 +1035,10 @@ void writeNamespaceIndex(OutputList &ol) ...@@ -1034,8 +1035,10 @@ void writeNamespaceIndex(OutputList &ol)
ol.endTextBlock(); ol.endTextBlock();
bool first=TRUE; bool first=TRUE;
NamespaceDef *nd=Doxygen::namespaceList.first();
while (nd) NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);
NamespaceDef *nd;
for (nli.toFirst();(nd=nli.current());++nli)
{ {
if (nd->isLinkableInProject()) if (nd->isLinkableInProject())
{ {
...@@ -1048,8 +1051,9 @@ void writeNamespaceIndex(OutputList &ol) ...@@ -1048,8 +1051,9 @@ void writeNamespaceIndex(OutputList &ol)
ol.startIndexKey(); ol.startIndexKey();
ol.writeObjectLink(0,nd->getOutputFileBase(),0,nd->name()); ol.writeObjectLink(0,nd->getOutputFileBase(),0,nd->name());
ol.endIndexKey(); ol.endIndexKey();
ol.startIndexValue(); bool hasBrief = !nd->briefDescription().isEmpty();
if (!nd->briefDescription().isEmpty()) ol.startIndexValue(hasBrief);
if (hasBrief)
{ {
//ol.docify(" ("); //ol.docify(" (");
parseDoc(ol, parseDoc(ol,
...@@ -1058,7 +1062,7 @@ void writeNamespaceIndex(OutputList &ol) ...@@ -1058,7 +1062,7 @@ void writeNamespaceIndex(OutputList &ol)
abbreviate(nd->briefDescription(),nd->name())); abbreviate(nd->briefDescription(),nd->name()));
//ol.docify(")"); //ol.docify(")");
} }
ol.endIndexValue(nd->getOutputFileBase()); ol.endIndexValue(nd->getOutputFileBase(),hasBrief);
//ol.writeEndAnnoItem(nd->getOutputFileBase()); //ol.writeEndAnnoItem(nd->getOutputFileBase());
if (hasHtmlHelp) if (hasHtmlHelp)
{ {
...@@ -1069,7 +1073,6 @@ void writeNamespaceIndex(OutputList &ol) ...@@ -1069,7 +1073,6 @@ void writeNamespaceIndex(OutputList &ol)
ftvHelp->addContentsItem(FALSE,nd->getReference(),nd->getOutputFileBase(),0,nd->name()); ftvHelp->addContentsItem(FALSE,nd->getReference(),nd->getOutputFileBase(),0,nd->name());
} }
} }
nd=Doxygen::namespaceList.next();
} }
if (!first) ol.endIndexList(); if (!first) ol.endIndexList();
if (hasHtmlHelp) if (hasHtmlHelp)
...@@ -1124,8 +1127,9 @@ void writeAnnotatedClassList(OutputList &ol) ...@@ -1124,8 +1127,9 @@ void writeAnnotatedClassList(OutputList &ol)
ol.startIndexKey(); ol.startIndexKey();
ol.writeObjectLink(0,cd->getOutputFileBase(),0,cd->displayName()); ol.writeObjectLink(0,cd->getOutputFileBase(),0,cd->displayName());
ol.endIndexKey(); ol.endIndexKey();
ol.startIndexValue(); bool hasBrief = !cd->briefDescription().isEmpty();
if (!cd->briefDescription().isEmpty()) ol.startIndexValue(hasBrief);
if (hasBrief)
{ {
//ol.docify(" ("); //ol.docify(" (");
parseDoc(ol, parseDoc(ol,
...@@ -1134,7 +1138,7 @@ void writeAnnotatedClassList(OutputList &ol) ...@@ -1134,7 +1138,7 @@ void writeAnnotatedClassList(OutputList &ol)
abbreviate(cd->briefDescription(),cd->name())); abbreviate(cd->briefDescription(),cd->name()));
//ol.docify(")"); //ol.docify(")");
} }
ol.endIndexValue(cd->getOutputFileBase()); ol.endIndexValue(cd->getOutputFileBase(),hasBrief);
//ol.writeEndAnnoItem(cd->getOutputFileBase()); //ol.writeEndAnnoItem(cd->getOutputFileBase());
if (hasHtmlHelp) if (hasHtmlHelp)
{ {
...@@ -1167,8 +1171,9 @@ void writePackageList(OutputList &ol) ...@@ -1167,8 +1171,9 @@ void writePackageList(OutputList &ol)
ol.startIndexKey(); ol.startIndexKey();
ol.writeObjectLink(0,pd->getOutputFileBase(),0,pd->name()); ol.writeObjectLink(0,pd->getOutputFileBase(),0,pd->name());
ol.endIndexKey(); ol.endIndexKey();
ol.startIndexValue(); bool hasBrief = !pd->briefDescription().isEmpty();
if (!pd->briefDescription().isEmpty()) ol.startIndexValue(hasBrief);
if (hasBrief)
{ {
//ol.docify(" ("); //ol.docify(" (");
parseDoc(ol, parseDoc(ol,
...@@ -1177,7 +1182,7 @@ void writePackageList(OutputList &ol) ...@@ -1177,7 +1182,7 @@ void writePackageList(OutputList &ol)
abbreviate(pd->briefDescription(),pd->name())); abbreviate(pd->briefDescription(),pd->name()));
//ol.docify(")"); //ol.docify(")");
} }
ol.endIndexValue(pd->getOutputFileBase()); ol.endIndexValue(pd->getOutputFileBase(),hasBrief);
//ol.writeEndAnnoItem(pd->getOutputFileBase()); //ol.writeEndAnnoItem(pd->getOutputFileBase());
if (hasHtmlHelp) if (hasHtmlHelp)
......
...@@ -520,9 +520,10 @@ void LatexGenerator::startIndexSection(IndexSections is) ...@@ -520,9 +520,10 @@ void LatexGenerator::startIndexSection(IndexSections is)
break; break;
case isNamespaceDocumentation: case isNamespaceDocumentation:
{ {
NamespaceDef *nd=Doxygen::namespaceList.first(); NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);
NamespaceDef *nd;
bool found=FALSE; bool found=FALSE;
while (nd && !found) for (nli.toFirst();(nd=nli.current()) && !found;++nli)
{ {
if (nd->isLinkableInProject()) if (nd->isLinkableInProject())
{ {
...@@ -530,7 +531,6 @@ void LatexGenerator::startIndexSection(IndexSections is) ...@@ -530,7 +531,6 @@ void LatexGenerator::startIndexSection(IndexSections is)
t << "{"; // Namespace Documentation}\n": t << "{"; // Namespace Documentation}\n":
found=TRUE; found=TRUE;
} }
nd=Doxygen::namespaceList.next();
} }
} }
break; break;
...@@ -683,25 +683,25 @@ void LatexGenerator::endIndexSection(IndexSections is) ...@@ -683,25 +683,25 @@ void LatexGenerator::endIndexSection(IndexSections is)
break; break;
case isNamespaceDocumentation: case isNamespaceDocumentation:
{ {
NamespaceDef *nd=Doxygen::namespaceList.first(); NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);
NamespaceDef *nd;
bool found=FALSE; bool found=FALSE;
while (nd && !found) for (nli.toFirst();(nd=nli.current()) && !found;++nli)
{ {
if (nd->isLinkableInProject()) if (nd->isLinkableInProject())
{ {
t << "}\n\\input{" << nd->getOutputFileBase() << "}\n"; t << "}\n\\input{" << nd->getOutputFileBase() << "}\n";
found=TRUE; found=TRUE;
} }
nd=Doxygen::namespaceList.next();
} }
while (nd) while ((nd=nli.current()))
{ {
if (nd->isLinkableInProject()) if (nd->isLinkableInProject())
{ {
if (compactLatex) t << "\\input"; else t << "\\include"; if (compactLatex) t << "\\input"; else t << "\\include";
t << "{" << nd->getOutputFileBase() << "}\n"; t << "{" << nd->getOutputFileBase() << "}\n";
} }
nd=Doxygen::namespaceList.next(); ++nli;
} }
} }
break; break;
...@@ -916,14 +916,15 @@ void LatexGenerator::endIndexKey() ...@@ -916,14 +916,15 @@ void LatexGenerator::endIndexKey()
{ {
} }
void LatexGenerator::startIndexValue() void LatexGenerator::startIndexValue(bool hasBrief)
{ {
t << " ("; t << " ";
if (hasBrief) t << "(";
} }
void LatexGenerator::endIndexValue(const char *name) void LatexGenerator::endIndexValue(const char *name,bool hasBrief)
{ {
t << ")"; if (hasBrief) t << ")";
t << "}{\\pageref{" << name << "}}{}" << endl; t << "}{\\pageref{" << name << "}}{}" << endl;
} }
......
...@@ -65,8 +65,8 @@ class LatexGenerator : public OutputGenerator ...@@ -65,8 +65,8 @@ class LatexGenerator : public OutputGenerator
void endIndexList() { t << "\\end{CompactList}" << endl; } void endIndexList() { t << "\\end{CompactList}" << endl; }
void startIndexKey(); void startIndexKey();
void endIndexKey(); void endIndexKey();
void startIndexValue(); void startIndexValue(bool);
void endIndexValue(const char *); void endIndexValue(const char *,bool);
void startItemList() { t << "\\begin{CompactItemize}" << endl; } void startItemList() { t << "\\begin{CompactItemize}" << endl; }
void endItemList() { t << "\\end{CompactItemize}" << endl; } void endItemList() { t << "\\end{CompactItemize}" << endl; }
void startEnumList() { t << "\\begin{enumerate}" << endl; } void startEnumList() { t << "\\begin{enumerate}" << endl; }
......
...@@ -63,8 +63,8 @@ class ManGenerator : public OutputGenerator ...@@ -63,8 +63,8 @@ class ManGenerator : public OutputGenerator
void endIndexList() { newParagraph(); } void endIndexList() { newParagraph(); }
void startIndexKey() {} void startIndexKey() {}
void endIndexKey() {} void endIndexKey() {}
void startIndexValue() {} void startIndexValue(bool) {}
void endIndexValue(const char *) {} void endIndexValue(const char *,bool) {}
void startItemList() {} void startItemList() {}
void endItemList() { newParagraph(); } void endItemList() { newParagraph(); }
void startEnumList() {} void startEnumList() {}
......
...@@ -32,9 +32,9 @@ NamespaceDef::NamespaceDef(const char *df,int dl, ...@@ -32,9 +32,9 @@ NamespaceDef::NamespaceDef(const char *df,int dl,
Definition(df,dl,name) Definition(df,dl,name)
{ {
fileName=(QCString)"namespace"+name; fileName=(QCString)"namespace"+name;
classSDict = new ClassSDict(257); classSDict = new ClassSDict(17);
namespaceSDict = new NamespaceSDict(257); namespaceSDict = new NamespaceSDict(17);
m_innerCompounds = new SDict<Definition>(257); m_innerCompounds = new SDict<Definition>(17);
usingDirList = 0; usingDirList = 0;
usingDeclList = 0; usingDeclList = 0;
setReference(lref); setReference(lref);
......
...@@ -77,22 +77,8 @@ class NamespaceDef : public Definition ...@@ -77,22 +77,8 @@ class NamespaceDef : public Definition
//protected: //protected:
// void addMemberListToGroup(MemberList *,bool (MemberDef::*)() const); // void addMemberListToGroup(MemberList *,bool (MemberDef::*)() const);
private: public:
//QCString reference;
QCString fileName;
QStrList files;
/*! Classes inside this namespace */
ClassSDict *classSDict;
/*! Namespaces inside this namespace */
NamespaceSDict *namespaceSDict;
NamespaceList *usingDirList;
ClassList *usingDeclList;
SDict<Definition> *m_innerCompounds;
MemberList allMemberList;
// members in the declaration part of the documentation // members in the declaration part of the documentation
MemberList decDefineMembers; MemberList decDefineMembers;
MemberList decProtoMembers; MemberList decProtoMembers;
...@@ -110,6 +96,23 @@ class NamespaceDef : public Definition ...@@ -110,6 +96,23 @@ class NamespaceDef : public Definition
MemberList docFuncMembers; MemberList docFuncMembers;
MemberList docVarMembers; MemberList docVarMembers;
/*! Classes inside this namespace */
ClassSDict *classSDict;
/*! Namespaces inside this namespace */
NamespaceSDict *namespaceSDict;
private:
//QCString reference;
QCString fileName;
QStrList files;
NamespaceList *usingDirList;
ClassList *usingDeclList;
SDict<Definition> *m_innerCompounds;
MemberList allMemberList;
/* user defined member groups */ /* user defined member groups */
MemberGroupList *memberGroupList; MemberGroupList *memberGroupList;
MemberGroupDict *memberGroupDict; MemberGroupDict *memberGroupDict;
......
...@@ -316,8 +316,8 @@ class OutputGenerator : public BaseOutputDocInterface ...@@ -316,8 +316,8 @@ class OutputGenerator : public BaseOutputDocInterface
virtual void endIndexList() = 0; virtual void endIndexList() = 0;
virtual void startIndexKey() = 0; virtual void startIndexKey() = 0;
virtual void endIndexKey() = 0; virtual void endIndexKey() = 0;
virtual void startIndexValue() = 0; virtual void startIndexValue(bool) = 0;
virtual void endIndexValue(const char *) = 0; virtual void endIndexValue(const char *,bool) = 0;
virtual void startAlphabeticalIndexList() = 0; virtual void startAlphabeticalIndexList() = 0;
virtual void endAlphabeticalIndexList() = 0; virtual void endAlphabeticalIndexList() = 0;
virtual void writeIndexHeading(const char *s) = 0; virtual void writeIndexHeading(const char *s) = 0;
......
...@@ -109,10 +109,10 @@ class OutputList : public OutputDocInterface ...@@ -109,10 +109,10 @@ class OutputList : public OutputDocInterface
{ forall(&OutputGenerator::startIndexKey); } { forall(&OutputGenerator::startIndexKey); }
void endIndexKey() void endIndexKey()
{ forall(&OutputGenerator::endIndexKey); } { forall(&OutputGenerator::endIndexKey); }
void startIndexValue() void startIndexValue(bool b)
{ forall(&OutputGenerator::startIndexValue); } { forall(&OutputGenerator::startIndexValue,b); }
void endIndexValue(const char *name) void endIndexValue(const char *name,bool b)
{ forall(&OutputGenerator::endIndexValue,name); } { forall(&OutputGenerator::endIndexValue,name,b); }
void startItemList() void startItemList()
{ forall(&OutputGenerator::startItemList); } { forall(&OutputGenerator::startItemList); }
void endItemList() void endItemList()
......
...@@ -985,16 +985,16 @@ void RTFGenerator::startIndexSection(IndexSections is) ...@@ -985,16 +985,16 @@ void RTFGenerator::startIndexSection(IndexSections is)
case isNamespaceDocumentation: case isNamespaceDocumentation:
{ {
// Namespace Documentation // Namespace Documentation
NamespaceDef *nd=Doxygen::namespaceList.first(); NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);
NamespaceDef *nd;
bool found=FALSE; bool found=FALSE;
while (nd && !found) for (nli.toFirst();(nd=nli.current()) && !found;++nli)
{ {
if (nd->isLinkableInProject()) if (nd->isLinkableInProject())
{ {
beginRTFChapter(); beginRTFChapter();
found=TRUE; found=TRUE;
} }
nd=Doxygen::namespaceList.next();
} }
} }
break; break;
...@@ -1202,9 +1202,10 @@ void RTFGenerator::endIndexSection(IndexSections is) ...@@ -1202,9 +1202,10 @@ void RTFGenerator::endIndexSection(IndexSections is)
break; break;
case isNamespaceDocumentation: case isNamespaceDocumentation:
{ {
NamespaceDef *nd=Doxygen::namespaceList.first(); NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);
NamespaceDef *nd;
bool found=FALSE; bool found=FALSE;
while (nd && !found) for (nli.toFirst();(nd=nli.current()) && !found;++nli)
{ {
if (nd->isLinkableInProject()) if (nd->isLinkableInProject())
{ {
...@@ -1214,9 +1215,8 @@ void RTFGenerator::endIndexSection(IndexSections is) ...@@ -1214,9 +1215,8 @@ void RTFGenerator::endIndexSection(IndexSections is)
t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n"; t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
found=TRUE; found=TRUE;
} }
nd=Doxygen::namespaceList.next();
} }
while (nd) while ((nd=nli.current()))
{ {
if (nd->isLinkableInProject()) if (nd->isLinkableInProject())
{ {
...@@ -1226,7 +1226,7 @@ void RTFGenerator::endIndexSection(IndexSections is) ...@@ -1226,7 +1226,7 @@ void RTFGenerator::endIndexSection(IndexSections is)
t << nd->getOutputFileBase(); t << nd->getOutputFileBase();
t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n"; t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
} }
nd=Doxygen::namespaceList.next(); ++nli;
} }
} }
break; break;
...@@ -1578,15 +1578,16 @@ void RTFGenerator::endIndexKey() ...@@ -1578,15 +1578,16 @@ void RTFGenerator::endIndexKey()
{ {
} }
void RTFGenerator::startIndexValue() void RTFGenerator::startIndexValue(bool hasBrief)
{ {
t << " ("; t << " ";
if (hasBrief) t << "(";
} }
void RTFGenerator::endIndexValue(const char *name) void RTFGenerator::endIndexValue(const char *name,bool hasBrief)
{ {
DBG_RTF(t << "{\\comment (endIndexKey)}" << endl) DBG_RTF(t << "{\\comment (endIndexKey)}" << endl)
t << ")"; if (hasBrief) t << ")";
t << "} "; t << "} ";
if (name) if (name)
{ {
...@@ -1967,42 +1968,41 @@ void RTFGenerator::startDescList(SectionTypes) ...@@ -1967,42 +1968,41 @@ void RTFGenerator::startDescList(SectionTypes)
void RTFGenerator::endDescTitle() void RTFGenerator::endDescTitle()
{ {
DBG_RTF(t << "{\\comment (endDescTitle) }" << endl) DBG_RTF(t << "{\\comment (endDescTitle) }" << endl)
//endBold(); endBold();
t << "}";
newParagraph(); newParagraph();
//t << Rtf_Style_Reset << styleStack.top();
incrementIndentLevel(); incrementIndentLevel();
t << Rtf_Style_Reset << Rtf_DList_DepthStyle(); t << Rtf_Style_Reset << Rtf_DList_DepthStyle();
} }
void RTFGenerator::startParamList(ParamListTypes) void RTFGenerator::writeDescItem()
{ {
DBG_RTF(t << "{\\comment (startParamList)}" << endl) DBG_RTF(t << "{\\comment (writeDescItem) }" << endl)
t << "{"; // incrementIndentLevel();
incrementIndentLevel(); //t << Rtf_Style_Reset << Rtf_CList_DepthStyle();
newParagraph();
} }
void RTFGenerator::endParamList() void RTFGenerator::endDescList()
{ {
DBG_RTF(t << "{\\comment (endParamList)}" << endl) DBG_RTF(t << "{\\comment (endDescList)}" << endl)
newParagraph(); newParagraph();
t << "}"; //t << "}";
decrementIndentLevel(); decrementIndentLevel();
m_omitParagraph = TRUE; m_omitParagraph = TRUE;
//t << Rtf_Style_Reset << styleStack.top() << endl; //t << Rtf_Style_Reset << styleStack.top() << endl;
t << Rtf_Style_Reset << endl;
} }
void RTFGenerator::startParamList(ParamListTypes)
void RTFGenerator::writeDescItem() {
{ DBG_RTF(t << "{\\comment (startParamList)}" << endl)
DBG_RTF(t << "{\\comment (writeDescItem) }" << endl) t << "{";
// incrementIndentLevel(); newParagraph();
//t << Rtf_Style_Reset << Rtf_CList_DepthStyle();
} }
void RTFGenerator::endDescList() void RTFGenerator::endParamList()
{ {
DBG_RTF(t << "{\\comment (endDescList)}" << endl) DBG_RTF(t << "{\\comment (endParamList)}" << endl)
newParagraph(); newParagraph();
t << "}"; t << "}";
decrementIndentLevel(); decrementIndentLevel();
...@@ -2010,6 +2010,7 @@ void RTFGenerator::endDescList() ...@@ -2010,6 +2010,7 @@ void RTFGenerator::endDescList()
//t << Rtf_Style_Reset << styleStack.top() << endl; //t << Rtf_Style_Reset << styleStack.top() << endl;
} }
void RTFGenerator::startSection(const char *,const char *title,bool sub) void RTFGenerator::startSection(const char *,const char *title,bool sub)
{ {
DBG_RTF(t << "{\\comment (startSection)}" << endl) DBG_RTF(t << "{\\comment (startSection)}" << endl)
......
...@@ -66,8 +66,8 @@ class RTFGenerator : public OutputGenerator ...@@ -66,8 +66,8 @@ class RTFGenerator : public OutputGenerator
void endIndexList(); void endIndexList();
void startIndexKey(); void startIndexKey();
void endIndexKey(); void endIndexKey();
void startIndexValue(); void startIndexValue(bool);
void endIndexValue(const char *); void endIndexValue(const char *,bool);
void startItemList(); void startItemList();
void endItemList(); void endItemList();
void startEnumList(); void startEnumList();
......
...@@ -169,6 +169,12 @@ class SDict ...@@ -169,6 +169,12 @@ class SDict
return m_dict->find(key); return m_dict->find(key);
} }
/*! Equavalent to find(). */
T *operator[](const char *key)
{
return m_dict->find(key);
}
/*! Returns the item at position \a i in the sorted dictionary */ /*! Returns the item at position \a i in the sorted dictionary */
T *at(uint i) T *at(uint i)
{ {
......
This diff is collapsed.
...@@ -266,7 +266,7 @@ QCString stripAnonymousNamespaceScope(const QCString &s) ...@@ -266,7 +266,7 @@ QCString stripAnonymousNamespaceScope(const QCString &s)
while ((i=getScopeFragment(s,p,&l))!=-1) while ((i=getScopeFragment(s,p,&l))!=-1)
{ {
//printf("Scope fragment %s\n",s.mid(i,l).data()); //printf("Scope fragment %s\n",s.mid(i,l).data());
if (Doxygen::namespaceDict[s.left(i+l)]!=0) if (Doxygen::namespaceSDict[s.left(i+l)]!=0)
{ {
if (s.at(i)!='@') if (s.at(i)!='@')
{ {
...@@ -438,11 +438,11 @@ NamespaceDef *getResolvedNamespace(const char *name) ...@@ -438,11 +438,11 @@ NamespaceDef *getResolvedNamespace(const char *name)
{ {
warn_cont("Warning: possible recursive namespace alias detected for %s!\n",name); warn_cont("Warning: possible recursive namespace alias detected for %s!\n",name);
} }
return Doxygen::namespaceDict[subst->data()]; return Doxygen::namespaceSDict[subst->data()];
} }
else else
{ {
return Doxygen::namespaceDict[name]; return Doxygen::namespaceSDict[name];
} }
} }
...@@ -1208,7 +1208,7 @@ static void trimNamespaceScope(QCString &t1,QCString &t2,const QCString &nsName) ...@@ -1208,7 +1208,7 @@ static void trimNamespaceScope(QCString &t1,QCString &t2,const QCString &nsName)
QCString fullScope=nsName.left(so); QCString fullScope=nsName.left(so);
if (!fullScope.isEmpty() && !scope.isEmpty()) fullScope+="::"; if (!fullScope.isEmpty() && !scope.isEmpty()) fullScope+="::";
fullScope+=scope; fullScope+=scope;
if (!fullScope.isEmpty() && Doxygen::namespaceDict[fullScope]!=0) // scope is a namespace if (!fullScope.isEmpty() && Doxygen::namespaceSDict[fullScope]!=0) // scope is a namespace
{ {
t1 = t1.right(t1.length()-i1-2); t1 = t1.right(t1.length()-i1-2);
return; return;
...@@ -1234,7 +1234,7 @@ static void trimNamespaceScope(QCString &t1,QCString &t2,const QCString &nsName) ...@@ -1234,7 +1234,7 @@ static void trimNamespaceScope(QCString &t1,QCString &t2,const QCString &nsName)
QCString fullScope=nsName.left(so); QCString fullScope=nsName.left(so);
if (!fullScope.isEmpty() && !scope.isEmpty()) fullScope+="::"; if (!fullScope.isEmpty() && !scope.isEmpty()) fullScope+="::";
fullScope+=scope; fullScope+=scope;
if (!fullScope.isEmpty() && Doxygen::namespaceDict[fullScope]!=0) // scope is a namespace if (!fullScope.isEmpty() && Doxygen::namespaceSDict[fullScope]!=0) // scope is a namespace
{ {
t2 = t2.right(t2.length()-i2-2); t2 = t2.right(t2.length()-i2-2);
return; return;
...@@ -2174,7 +2174,7 @@ bool getDefs(const QCString &scName,const QCString &memberName, ...@@ -2174,7 +2174,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
namespaceName=mScope.copy(); namespaceName=mScope.copy();
} }
if (!namespaceName.isEmpty() && if (!namespaceName.isEmpty() &&
(fnd=Doxygen::namespaceDict[namespaceName]) && (fnd=Doxygen::namespaceSDict[namespaceName]) &&
fnd->isLinkable() fnd->isLinkable()
) )
{ {
...@@ -2363,7 +2363,7 @@ bool getScopeDefs(const char *docScope,const char *scope, ...@@ -2363,7 +2363,7 @@ bool getScopeDefs(const char *docScope,const char *scope,
{ {
return TRUE; // class link written => quit return TRUE; // class link written => quit
} }
else if ((nd=Doxygen::namespaceDict[fullName]) && nd->isLinkable()) else if ((nd=Doxygen::namespaceSDict[fullName]) && nd->isLinkable())
{ {
return TRUE; // namespace link written => quit return TRUE; // namespace link written => quit
} }
......
...@@ -942,6 +942,9 @@ void generateXMLForMember(MemberDef *md,QTextStream &t,Definition *def) ...@@ -942,6 +942,9 @@ void generateXMLForMember(MemberDef *md,QTextStream &t,Definition *def)
t << " <detaileddescription>" << endl; t << " <detaileddescription>" << endl;
writeXMLDocBlock(t,md->getDefFileName(),md->getDefLine(),scopeName,md->name(),md->documentation()); writeXMLDocBlock(t,md->getDefFileName(),md->getDefLine(),scopeName,md->name(),md->documentation());
t << " </detaileddescription>" << endl; t << " </detaileddescription>" << endl;
t << " <location file=\""
<< md->getDefFileName() << "\" line=\""
<< md->getDefLine() << "\"/>" << endl;
t << " </memberdef>" << endl; t << " </memberdef>" << endl;
} }
...@@ -1094,26 +1097,59 @@ void generateXMLForClass(ClassDef *cd,QTextStream &t) ...@@ -1094,26 +1097,59 @@ void generateXMLForClass(ClassDef *cd,QTextStream &t)
collaborationGraph.writeXML(t); collaborationGraph.writeXML(t);
t << " </collaborationgraph>" << endl; t << " </collaborationgraph>" << endl;
} }
t << " <location file=\""
<< cd->getDefFileName() << "\" line=\""
<< cd->getDefLine() << "\"/>" << endl;
t << " </compounddef>" << endl; t << " </compounddef>" << endl;
} }
void generateXMLFileSection(FileDef *fd,QTextStream &t,MemberList *ml,const char *kind) void generateXMLSection(Definition *d,QTextStream &t,MemberList *ml,const char *kind)
{ {
if (ml->count()>0) if (ml->count()>0)
{ {
t << " <sectiondef kind=\"" << kind << "\">" << endl; t << " <sectiondef kind=\"" << kind << "\">" << endl;
//t << " <memberlist>" << endl;
MemberListIterator mli(*ml); MemberListIterator mli(*ml);
MemberDef *md; MemberDef *md;
for (mli.toFirst();(md=mli.current());++mli) for (mli.toFirst();(md=mli.current());++mli)
{ {
generateXMLForMember(md,t,fd); generateXMLForMember(md,t,d);
} }
//t << " </memberlist>" << endl;
t << " </sectiondef>" << endl; t << " </sectiondef>" << endl;
} }
} }
void generateXMLForNamespace(NamespaceDef *nd,QTextStream &t)
{
if (nd->isReference()) return; // skip external references
t << " <compounddef id=\""
<< nd->getOutputFileBase() << "\" kind=\"namespace\">" << endl;
t << " <compoundname>";
writeXMLString(t,nd->name());
t << "</compoundname>" << endl;
int numMembers = nd->decDefineMembers.count()+nd->decProtoMembers.count()+
nd->decTypedefMembers.count()+nd->decEnumMembers.count()+
nd->decFuncMembers.count()+nd->decVarMembers.count();
if (numMembers>0)
{
generateXMLSection(nd,t,&nd->decDefineMembers,"define");
generateXMLSection(nd,t,&nd->decProtoMembers,"prototype");
generateXMLSection(nd,t,&nd->decTypedefMembers,"typedef");
generateXMLSection(nd,t,&nd->decEnumMembers,"enum");
generateXMLSection(nd,t,&nd->decFuncMembers,"func");
generateXMLSection(nd,t,&nd->decVarMembers,"var");
}
t << " <briefdescription>" << endl;
writeXMLDocBlock(t,nd->getDefFileName(),nd->getDefLine(),0,0,nd->briefDescription());
t << " </briefdescription>" << endl;
t << " <detaileddescription>" << endl;
writeXMLDocBlock(t,nd->getDefFileName(),nd->getDefLine(),0,0,nd->documentation());
t << " </detaileddescription>" << endl;
t << " <location file=\""
<< nd->getDefFileName() << "\" line=\""
<< nd->getDefLine() << "\"/>" << endl;
t << " </compounddef>" << endl;
}
void generateXMLForFile(FileDef *fd,QTextStream &t) void generateXMLForFile(FileDef *fd,QTextStream &t)
{ {
if (fd->isReference()) return; // skip external references if (fd->isReference()) return; // skip external references
...@@ -1127,14 +1163,12 @@ void generateXMLForFile(FileDef *fd,QTextStream &t) ...@@ -1127,14 +1163,12 @@ void generateXMLForFile(FileDef *fd,QTextStream &t)
fd->decFuncMembers.count()+fd->decVarMembers.count(); fd->decFuncMembers.count()+fd->decVarMembers.count();
if (numMembers>0) if (numMembers>0)
{ {
//t << " <sectionlist>" << endl; generateXMLSection(fd,t,&fd->decDefineMembers,"define");
generateXMLFileSection(fd,t,&fd->decDefineMembers,"define"); generateXMLSection(fd,t,&fd->decProtoMembers,"prototype");
generateXMLFileSection(fd,t,&fd->decProtoMembers,"prototype"); generateXMLSection(fd,t,&fd->decTypedefMembers,"typedef");
generateXMLFileSection(fd,t,&fd->decTypedefMembers,"typedef"); generateXMLSection(fd,t,&fd->decEnumMembers,"enum");
generateXMLFileSection(fd,t,&fd->decEnumMembers,"enum"); generateXMLSection(fd,t,&fd->decFuncMembers,"func");
generateXMLFileSection(fd,t,&fd->decFuncMembers,"func"); generateXMLSection(fd,t,&fd->decVarMembers,"var");
generateXMLFileSection(fd,t,&fd->decVarMembers,"var");
//t << " </sectionlist>" << endl;
} }
t << " <briefdescription>" << endl; t << " <briefdescription>" << endl;
writeXMLDocBlock(t,fd->getDefFileName(),fd->getDefLine(),0,0,fd->briefDescription()); writeXMLDocBlock(t,fd->getDefFileName(),fd->getDefLine(),0,0,fd->briefDescription());
...@@ -1145,6 +1179,9 @@ void generateXMLForFile(FileDef *fd,QTextStream &t) ...@@ -1145,6 +1179,9 @@ void generateXMLForFile(FileDef *fd,QTextStream &t)
t << " <sourcecode>" << endl; t << " <sourcecode>" << endl;
writeXMLCodeBlock(t,fd); writeXMLCodeBlock(t,fd);
t << " </sourcecode>" << endl; t << " </sourcecode>" << endl;
t << " <location file=\""
<< fd->getDefFileName() << "\" line=\""
<< fd->getDefLine() << "\"/>" << endl;
t << " </compounddef>" << endl; t << " </compounddef>" << endl;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment