Commit ca3fb0a6 authored by dimitri's avatar dimitri

Release-1.2.14-20020317

parent ecbd3e37
DOXYGEN Version 1.2.14-20020310 DOXYGEN Version 1.2.14-20020317
Please read the installation section of the manual for instructions. Please read the installation section of the manual for instructions.
-------- --------
Dimitri van Heesch (10 March 2002) Dimitri van Heesch (17 March 2002)
DOXYGEN Version 1.2.14_20020310 DOXYGEN Version 1.2.14_20020317
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) (10 March 2002) Dimitri van Heesch (dimitri@stack.nl) (17 March 2002)
1.2.14-20020310 1.2.14-20020317
...@@ -138,7 +138,7 @@ void DumpDoc(IDoc *doc) ...@@ -138,7 +138,7 @@ void DumpDoc(IDoc *doc)
break; break;
case IDoc::SimpleSect: case IDoc::SimpleSect:
{ {
IDocSimpleSect *ss = dynamic_cast<IDocSimpleSect*>(ss); IDocSimpleSect *ss = dynamic_cast<IDocSimpleSect*>(doc);
ASSERT(ss!=0); ASSERT(ss!=0);
} }
break; break;
...@@ -188,91 +188,91 @@ void DumpDoc(IDoc *doc) ...@@ -188,91 +188,91 @@ void DumpDoc(IDoc *doc)
break; break;
case IDoc::HRuler: case IDoc::HRuler:
{ {
IDocHRuler *hr = dynamic_cast<IDocHRuler*>(hr); IDocHRuler *hr = dynamic_cast<IDocHRuler*>(doc);
ASSERT(hr!=0); ASSERT(hr!=0);
} }
break; break;
case IDoc::LineBreak: case IDoc::LineBreak:
{ {
IDocLineBreak *lb = dynamic_cast<IDocLineBreak*>(lb); IDocLineBreak *lb = dynamic_cast<IDocLineBreak*>(doc);
ASSERT(lb!=0); ASSERT(lb!=0);
} }
break; break;
case IDoc::ULink: case IDoc::ULink:
{ {
IDocULink *ul = dynamic_cast<IDocULink*>(ul); IDocULink *ul = dynamic_cast<IDocULink*>(doc);
ASSERT(ul!=0); ASSERT(ul!=0);
} }
break; break;
case IDoc::EMail: case IDoc::EMail:
{ {
IDocEMail *em = dynamic_cast<IDocEMail*>(em); IDocEMail *em = dynamic_cast<IDocEMail*>(doc);
ASSERT(em!=0); ASSERT(em!=0);
} }
break; break;
case IDoc::Link: case IDoc::Link:
{ {
IDocLink *lk = dynamic_cast<IDocLink*>(lk); IDocLink *lk = dynamic_cast<IDocLink*>(doc);
ASSERT(lk!=0); ASSERT(lk!=0);
} }
break; break;
case IDoc::ProgramListing: case IDoc::ProgramListing:
{ {
IDocProgramListing *pl = dynamic_cast<IDocProgramListing*>(pl); IDocProgramListing *pl = dynamic_cast<IDocProgramListing*>(doc);
ASSERT(pl!=0); ASSERT(pl!=0);
} }
break; break;
case IDoc::CodeLine: case IDoc::CodeLine:
{ {
IDocCodeLine *cl = dynamic_cast<IDocCodeLine*>(cl); IDocCodeLine *cl = dynamic_cast<IDocCodeLine*>(doc);
ASSERT(cl!=0); ASSERT(cl!=0);
} }
break; break;
case IDoc::Highlight: case IDoc::Highlight:
{ {
IDocHighlight *hl = dynamic_cast<IDocHighlight*>(hl); IDocHighlight *hl = dynamic_cast<IDocHighlight*>(doc);
ASSERT(hl!=0); ASSERT(hl!=0);
} }
break; break;
case IDoc::Formula: case IDoc::Formula:
{ {
IDocFormula *fm = dynamic_cast<IDocFormula*>(fm); IDocFormula *fm = dynamic_cast<IDocFormula*>(doc);
ASSERT(fm!=0); ASSERT(fm!=0);
} }
break; break;
case IDoc::Image: case IDoc::Image:
{ {
IDocImage *img = dynamic_cast<IDocImage*>(img); IDocImage *img = dynamic_cast<IDocImage*>(doc);
ASSERT(img!=0); ASSERT(img!=0);
} }
break; break;
case IDoc::DotFile: case IDoc::DotFile:
{ {
IDocDotFile *df = dynamic_cast<IDocDotFile*>(df); IDocDotFile *df = dynamic_cast<IDocDotFile*>(doc);
ASSERT(df!=0); ASSERT(df!=0);
} }
break; break;
case IDoc::IndexEntry: case IDoc::IndexEntry:
{ {
IDocIndexEntry *ie = dynamic_cast<IDocIndexEntry*>(ie); IDocIndexEntry *ie = dynamic_cast<IDocIndexEntry*>(doc);
ASSERT(ie!=0); ASSERT(ie!=0);
} }
break; break;
case IDoc::Table: case IDoc::Table:
{ {
IDocTable *tbl = dynamic_cast<IDocTable*>(tbl); IDocTable *tbl = dynamic_cast<IDocTable*>(doc);
ASSERT(tbl!=0); ASSERT(tbl!=0);
} }
break; break;
case IDoc::Row: case IDoc::Row:
{ {
IDocRow *row = dynamic_cast<IDocRow*>(row); IDocRow *row = dynamic_cast<IDocRow*>(doc);
ASSERT(row!=0); ASSERT(row!=0);
} }
break; break;
case IDoc::Entry: case IDoc::Entry:
{ {
IDocEntry *ent = dynamic_cast<IDocEntry*>(ent); IDocEntry *ent = dynamic_cast<IDocEntry*>(doc);
ASSERT(ent!=0); ASSERT(ent!=0);
} }
break; break;
......
...@@ -143,9 +143,11 @@ followed by the descriptions of the tags grouped by category. ...@@ -143,9 +143,11 @@ followed by the descriptions of the tags grouped by category.
<li> \refitem cfg_internal_docs INTERNAL_DOCS <li> \refitem cfg_internal_docs INTERNAL_DOCS
<li> \refitem cfg_javadoc_autobrief JAVADOC_AUTOBRIEF <li> \refitem cfg_javadoc_autobrief JAVADOC_AUTOBRIEF
<li> \refitem cfg_latex_batchmode LATEX_BATCHMODE <li> \refitem cfg_latex_batchmode LATEX_BATCHMODE
<li> \refitem cfg_latex_cmd_name LATEX_CMD_NAME
<li> \refitem cfg_latex_header LATEX_HEADER <li> \refitem cfg_latex_header LATEX_HEADER
<li> \refitem cfg_latex_output LATEX_OUTPUT <li> \refitem cfg_latex_output LATEX_OUTPUT
<li> \refitem cfg_macro_expansion MACRO_EXPANSION <li> \refitem cfg_macro_expansion MACRO_EXPANSION
<li> \refitem cfg_makeindex_cmd_name MAKEINDEX_CMD_NAME
<li> \refitem cfg_man_extension MAN_EXTENSION <li> \refitem cfg_man_extension MAN_EXTENSION
<li> \refitem cfg_man_links MAN_LINKS <li> \refitem cfg_man_links MAN_LINKS
<li> \refitem cfg_man_output MAN_OUTPUT <li> \refitem cfg_man_output MAN_OUTPUT
...@@ -904,6 +906,19 @@ followed by the descriptions of the tags grouped by category. ...@@ -904,6 +906,19 @@ followed by the descriptions of the tags grouped by category.
If a relative path is entered the value of \c OUTPUT_DIRECTORY will be If a relative path is entered the value of \c OUTPUT_DIRECTORY will be
put in front of it. If left blank `latex' will be used as the default path. put in front of it. If left blank `latex' will be used as the default path.
\anchor cfg_latex_cmd_name
<dt>\c LATEX_CMD_NAME <dd>
\addindex LATEX_CMD_NAME
The \c LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be invoked.
If left blank `latex' will be used as the default command name.
\anchor cfg_makeindex_cmd_name
<dt>\c MAKEINDEX_CMD_NAME <dd>
\addindex MAKEINDEX_CMD_NAME
The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
generate index for LaTeX. If left blank `makeindex' will be used as the
default command name.
\anchor cfg_compact_latex \anchor cfg_compact_latex
<dt>\c COMPACT_LATEX <dd> <dt>\c COMPACT_LATEX <dd>
\addindex COMPACT_LATEX \addindex COMPACT_LATEX
......
...@@ -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.14-20020224), 25 languages Currently (version 1.2.14-20020310), 25 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,
...@@ -162,7 +162,7 @@ when the translator was updated. ...@@ -162,7 +162,7 @@ when the translator was updated.
<TD>Romanian</TD> <TD>Romanian</TD>
<TD>Alexandru Iosup</TD> <TD>Alexandru Iosup</TD>
<TD>aiosup@NOSPAM.yahoo.com</TD> <TD>aiosup@NOSPAM.yahoo.com</TD>
<TD>1.2.1</TD> <TD>up-to-date</TD>
</TR> </TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD>Russian</TD> <TD>Russian</TD>
...@@ -251,7 +251,7 @@ when the translator was updated. ...@@ -251,7 +251,7 @@ when the translator was updated.
\hline \hline
Portuguese & Rui Godinho Lopes & {\tt ruiglopes@yahoo.com} & up-to-date \\ Portuguese & Rui Godinho Lopes & {\tt ruiglopes@yahoo.com} & up-to-date \\
\hline \hline
Romanian & Alexandru Iosup & {\tt aiosup@yahoo.com} & 1.2.1 \\ Romanian & Alexandru Iosup & {\tt aiosup@yahoo.com} & up-to-date \\
\hline \hline
Russian & Alexandr Chelpanov & {\tt cav@cryptopro.ru} & up-to-date \\ Russian & Alexandr Chelpanov & {\tt cav@cryptopro.ru} & up-to-date \\
\hline \hline
......
Summary: A documentation system for C/C++. Summary: A documentation system for C/C++.
Name: doxygen Name: doxygen
Version: 1.2.14_20020310 Version: 1.2.14_20020317
Release: 1 Release: 1
Epoch: 1 Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
...@@ -335,6 +335,7 @@ static void startCodeLine() ...@@ -335,6 +335,7 @@ static void startCodeLine()
//lineAnchor.sprintf("l%05d",g_yyLineNr); //lineAnchor.sprintf("l%05d",g_yyLineNr);
Definition *d = g_sourceFileDef->getSourceDefinition(g_yyLineNr); Definition *d = g_sourceFileDef->getSourceDefinition(g_yyLineNr);
//printf("startCodeLine %d d=%p\n",g_yyLineNr,d);
//g_code->startLineNumber(); //g_code->startLineNumber();
if (!g_includeCodeFragment && d && d->isLinkableInProject()) if (!g_includeCodeFragment && d && d->isLinkableInProject())
{ {
...@@ -590,6 +591,23 @@ static MemberDef *setCallContextForVar(const QCString &name) ...@@ -590,6 +591,23 @@ static MemberDef *setCallContextForVar(const QCString &name)
return 0; return 0;
} }
static void addDocCrossReference(MemberDef *src,MemberDef *dst)
{
//printf("addDocCrossReference src=%s,dst=%s\n",src->name().data(),dst->name().data());
if (Config_getBool("REFERENCED_BY_RELATION") &&
(src->isFunction() || src->isSlot())
)
{
dst->addSourceReferencedBy(src);
}
if (Config_getBool("REFERENCES_RELATION") &&
(src->isFunction() || src->isSlot())
)
{
src->addSourceReferences(dst);
}
}
static void generateClassOrGlobalLink(OutputDocInterface &ol,char *clName,int *clNameLen=0) static void generateClassOrGlobalLink(OutputDocInterface &ol,char *clName,int *clNameLen=0)
{ {
int i=0; int i=0;
...@@ -646,18 +664,7 @@ static void generateClassOrGlobalLink(OutputDocInterface &ol,char *clName,int *c ...@@ -646,18 +664,7 @@ static void generateClassOrGlobalLink(OutputDocInterface &ol,char *clName,int *c
writeMultiLineCodeLink(ol,d->getReference(),d->getOutputFileBase(),md->getBodyAnchor(),clName); writeMultiLineCodeLink(ol,d->getReference(),d->getOutputFileBase(),md->getBodyAnchor(),clName);
if (g_currentMemberDef) if (g_currentMemberDef)
{ {
if (Config_getBool("REFERENCED_BY_RELATION") && addDocCrossReference(g_currentMemberDef,md);
(g_currentMemberDef->isFunction() || g_currentMemberDef->isSlot())
)
{
md->addSourceReferencedBy(g_currentMemberDef);
}
if (Config_getBool("REFERENCES_RELATION") &&
(g_currentMemberDef->isFunction() || g_currentMemberDef->isSlot())
)
{
g_currentMemberDef->addSourceReferences(md);
}
} }
return; return;
} }
...@@ -711,21 +718,13 @@ static bool getLink(const char *className, ...@@ -711,21 +718,13 @@ static bool getLink(const char *className,
if (d && d->isLinkable()) if (d && d->isLinkable())
{ {
g_theCallContext.setClass(stripClassName(md->typeString())); g_theCallContext.setClass(stripClassName(md->typeString()));
//printf("g_currentDefinition=%p g_currentMemberDef=%p g_insideBody=%d\n",
// g_currentDefinition,g_currentMemberDef,g_insideBody);
if (g_currentDefinition && g_currentMemberDef && if (g_currentDefinition && g_currentMemberDef &&
md!=g_currentMemberDef && g_insideBody) md!=g_currentMemberDef && g_insideBody)
{ {
if (Config_getBool("REFERENCED_BY_RELATION") && addDocCrossReference(g_currentMemberDef,md);
(g_currentMemberDef->isFunction() || g_currentMemberDef->isSlot())
)
{
md->addSourceReferencedBy(g_currentMemberDef);
}
if (Config_getBool("REFERENCES_RELATION") &&
(g_currentMemberDef->isFunction() || g_currentMemberDef->isSlot())
)
{
g_currentMemberDef->addSourceReferences(md);
}
} }
//printf("d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getOutputFileBase().data(),d->name().data(),md->name().data()); //printf("d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getOutputFileBase().data(),d->name().data(),md->name().data());
...@@ -763,14 +762,7 @@ static bool generateClassMemberLink(OutputDocInterface &ol,ClassDef *mcd,const c ...@@ -763,14 +762,7 @@ static bool generateClassMemberLink(OutputDocInterface &ol,ClassDef *mcd,const c
if (g_currentDefinition && g_currentMemberDef && if (g_currentDefinition && g_currentMemberDef &&
xmd!=g_currentMemberDef && g_insideBody) xmd!=g_currentMemberDef && g_insideBody)
{ {
if (Config_getBool("REFERENCED_BY_RELATION") && g_currentMemberDef->isFunction()) addDocCrossReference(g_currentMemberDef,xmd);
{
xmd->addSourceReferencedBy(g_currentMemberDef);
}
if (Config_getBool("REFERENCES_RELATION") && g_currentMemberDef->isFunction())
{
g_currentMemberDef->addSourceReferences(xmd);
}
} }
// write the actual link // write the actual link
......
...@@ -1900,6 +1900,23 @@ void Config::create() ...@@ -1900,6 +1900,23 @@ void Config::create()
cs->setDefaultValue("latex"); cs->setDefaultValue("latex");
cs->setWidgetType(ConfigString::Dir); cs->setWidgetType(ConfigString::Dir);
cs->addDependency("GENERATE_LATEX"); cs->addDependency("GENERATE_LATEX");
cs = addString(
"LATEX_CMD_NAME",
"The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be "
"invoked. If left blank `latex' will be used as the default command name. \n"
);
cs->setDefaultValue("latex");
cs->setWidgetType(ConfigString::File);
cs->addDependency("GENERATE_LATEX");
cs = addString(
"MAKEINDEX_CMD_NAME",
"The MAKEINDEX_CMD_NAME tag can be used to specify the command name to \n"
"generate index for LaTeX. If left blank `makeindex' will be used as the \n"
"default command name. \n"
);
cs->setDefaultValue("makeindex");
cs->setWidgetType(ConfigString::File);
cs->addDependency("GENERATE_LATEX");
cb = addBool( cb = addBool(
"COMPACT_LATEX", "COMPACT_LATEX",
"If the COMPACT_LATEX tag is set to YES Doxygen generates more compact \n" "If the COMPACT_LATEX tag is set to YES Doxygen generates more compact \n"
......
...@@ -910,7 +910,7 @@ static void findUsingDirectives(Entry *root) ...@@ -910,7 +910,7 @@ static void findUsingDirectives(Entry *root)
// the global file scope. // the global file scope.
if (root->parent->section == Entry::NAMESPACE_SEC) if (root->parent->section == Entry::NAMESPACE_SEC)
{ {
nsName=root->parent->name.copy(); nsName=stripAnonymousNamespaceScope(root->parent->name);
if (!nsName.isEmpty()) if (!nsName.isEmpty())
{ {
nd = getResolvedNamespace(nsName); nd = getResolvedNamespace(nsName);
...@@ -926,8 +926,8 @@ static void findUsingDirectives(Entry *root) ...@@ -926,8 +926,8 @@ static void findUsingDirectives(Entry *root)
{ {
QCString scope=scopeOffset>0 ? QCString scope=scopeOffset>0 ?
nsName.left(scopeOffset)+"::" : QCString(); nsName.left(scopeOffset)+"::" : QCString();
//printf("Trying with scope=`%s'\n",scope.data());
usingNd = getResolvedNamespace(scope+root->name); usingNd = getResolvedNamespace(scope+root->name);
//printf("Trying with scope=`%s' usingNd=%p\n",(scope+root->name).data(),usingNd);
if (scopeOffset==0) if (scopeOffset==0)
{ {
scopeOffset=-1; scopeOffset=-1;
...@@ -943,6 +943,7 @@ static void findUsingDirectives(Entry *root) ...@@ -943,6 +943,7 @@ static void findUsingDirectives(Entry *root)
// add the namespace the correct scope // add the namespace the correct scope
if (usingNd) if (usingNd)
{ {
//printf("using fd=%p nd=%p\n",fd,nd);
if (nd) if (nd)
{ {
//printf("Inside namespace %s\n",nd->name().data()); //printf("Inside namespace %s\n",nd->name().data());
...@@ -1315,7 +1316,7 @@ static MemberDef *addVariableToFile( ...@@ -1315,7 +1316,7 @@ static MemberDef *addVariableToFile(
if (md->getGroupDef()==0 && root->groups->first()) if (md->getGroupDef()==0 && root->groups->first())
{ {
GroupDef *gd=Doxygen::groupSDict[root->groups->first()->groupname.data()]; GroupDef *gd=Doxygen::groupSDict[root->groups->first()->groupname.data()];
md->setGroupDef(gd, root->groups->first()->pri, root->fileName, root->startLine, root->doc.length() != 0); md->setGroupDef(gd, root->groups->first()->pri, root->fileName, root->startLine, !root->doc.isEmpty());
} }
else if (md->getGroupDef()!=0 && root->groups->count()==0) else if (md->getGroupDef()!=0 && root->groups->count()==0)
{ {
...@@ -1900,8 +1901,9 @@ static void buildFunctionList(Entry *root) ...@@ -1900,8 +1901,9 @@ static void buildFunctionList(Entry *root)
// merge ingroup specifiers // merge ingroup specifiers
if (md->getGroupDef()==0 && root->groups->first()) if (md->getGroupDef()==0 && root->groups->first())
{ {
addMemberToGroups(root,md);
GroupDef *gd=Doxygen::groupSDict[root->groups->first()->groupname.data()]; GroupDef *gd=Doxygen::groupSDict[root->groups->first()->groupname.data()];
md->setGroupDef(gd, root->groups->first()->pri, root->fileName, root->startLine, root->doc.length() != 0); md->setGroupDef(gd, root->groups->first()->pri, root->fileName, root->startLine, !root->doc.isEmpty());
} }
else if (md->getGroupDef()!=0 && root->groups->count()==0) else if (md->getGroupDef()!=0 && root->groups->count()==0)
{ {
...@@ -2212,6 +2214,17 @@ static void transferFunctionDocumentation() ...@@ -2212,6 +2214,17 @@ static void transferFunctionDocumentation()
mdec->mergeMemberSpecifiers(mdef->getMemberSpecifiers()); mdec->mergeMemberSpecifiers(mdef->getMemberSpecifiers());
mdef->mergeMemberSpecifiers(mdec->getMemberSpecifiers()); mdef->mergeMemberSpecifiers(mdec->getMemberSpecifiers());
// copy group info.
//if (mdec->getGroupDef()==0 && mdef->getGroupDef()!=0)
//{
// mdef->setGroupDef(mdec->getGroupDef(),mdec->getGroupPri(),mdec->docFile(),mdec->docLine(),mdec->hasDocumentation());
//}
//else if (mdef->getGroupDef()==0 && mdec->getGroupDef()!=0)
//{
// mdec->setGroupDef(mdef->getGroupDef(),mdef->getGroupPri(),mdef->docFile(),mdef->docLine(),mdef->hasDocumentation());
//}
int todoId = QMAX(mdec->todoId(),mdef->todoId()); int todoId = QMAX(mdec->todoId(),mdef->todoId());
int testId = QMAX(mdec->testId(),mdef->testId()); int testId = QMAX(mdec->testId(),mdef->testId());
int bugId = QMAX(mdec->bugId() ,mdef->bugId() ); int bugId = QMAX(mdec->bugId() ,mdef->bugId() );
...@@ -3064,7 +3077,7 @@ static void computeClassRelations() ...@@ -3064,7 +3077,7 @@ static void computeClassRelations()
{ {
findBaseClassesForClass(root,cd,cd,DocumentedOnly,FALSE); findBaseClassesForClass(root,cd,cd,DocumentedOnly,FALSE);
} }
else if (bName.right(2)!="::") if ((cd==0 || !cd->hasDocumentation()) && bName.right(2)!="::")
{ {
if (!root->name.isEmpty() && root->name[0]!='@') if (!root->name.isEmpty() && root->name[0]!='@')
warn_undoc( warn_undoc(
...@@ -4930,6 +4943,9 @@ static void computeMemberRelations() ...@@ -4930,6 +4943,9 @@ static void computeMemberRelations()
//printf("setting (new) reimplements member\n"); //printf("setting (new) reimplements member\n");
md->setReimplements(bmd); md->setReimplements(bmd);
} }
//printf("%s: add reimplements member %s\n",mcd->name().data(),bmcd->name().data());
//md->setImplements(bmd);
//printf("%s: add reimplementedBy member %s\n",bmcd->name().data(),mcd->name().data());
bmd->insertReimplementedBy(md); bmd->insertReimplementedBy(md);
} }
} }
...@@ -5090,6 +5106,7 @@ static void addSourceReferences() ...@@ -5090,6 +5106,7 @@ static void addSourceReferences()
MemberDef *md=0; MemberDef *md=0;
for (mni.toFirst();(md=mni.current());++mni) for (mni.toFirst();(md=mni.current());++mni)
{ {
//printf("class member %s\n",md->name().data());
ClassDef *cd=md->getClassDef(); ClassDef *cd=md->getClassDef();
FileDef *fd=md->getBodyDef(); FileDef *fd=md->getBodyDef();
if (fd && cd && cd->isLinkableInProject() && md->getStartBodyLine()!=-1 && if (fd && cd && cd->isLinkableInProject() && md->getStartBodyLine()!=-1 &&
...@@ -5110,8 +5127,9 @@ static void addSourceReferences() ...@@ -5110,8 +5127,9 @@ static void addSourceReferences()
for (mni.toFirst();(md=mni.current());++mni) for (mni.toFirst();(md=mni.current());++mni)
{ {
NamespaceDef *nd=md->getNamespaceDef(); NamespaceDef *nd=md->getNamespaceDef();
FileDef *fd=md->getFileDef(); FileDef *fd=md->getBodyDef();
GroupDef *gd=md->getGroupDef(); GroupDef *gd=md->getGroupDef();
//printf("member %s fd=%p nd=%p gd=%p\n",md->name().data(),fd,nd,gd);
if (fd && md->getStartBodyLine()!=-1 && md->isLinkableInProject() && if (fd && md->getStartBodyLine()!=-1 && md->isLinkableInProject() &&
((nd && nd->isLinkableInProject()) || ((nd && nd->isLinkableInProject()) ||
(fd->isLinkableInProject()) || (fd->isLinkableInProject()) ||
......
...@@ -163,7 +163,7 @@ void GroupDef::addMembersToMemberGroup() ...@@ -163,7 +163,7 @@ void GroupDef::addMembersToMemberGroup()
void GroupDef::insertMember(MemberDef *md,bool docOnly) void GroupDef::insertMember(MemberDef *md,bool docOnly)
{ {
//fprintf(stderr, "GroupDef(%s)::insertMember(%s)\n", title.data(), md->name().data()); //printf("GroupDef(%s)::insertMember(%s)\n", title.data(), md->name().data());
MemberNameInfo *mni=0; MemberNameInfo *mni=0;
if ((mni=(*allMemberNameInfoSDict)[md->name()])) if ((mni=(*allMemberNameInfoSDict)[md->name()]))
{ // member with this name already found { // member with this name already found
...@@ -630,7 +630,7 @@ void addGroupToGroups(Entry *root,GroupDef *subGroup) ...@@ -630,7 +630,7 @@ void addGroupToGroups(Entry *root,GroupDef *subGroup)
/*! Add a member to the group with the highest priority */ /*! Add a member to the group with the highest priority */
void addMemberToGroups(Entry *root,MemberDef *md) void addMemberToGroups(Entry *root,MemberDef *md)
{ {
//printf(" Root 0x%p = %s, md 0x%p %s\n", root, root->name.data(), md, md->name().data() ); //printf(" Root %p = %s, md %p=%s groups=%d\n", root, root->name.data(), md, md->name().data(), root->groups->count() );
QListIterator<Grouping> gli(*root->groups); QListIterator<Grouping> gli(*root->groups);
Grouping *g; Grouping *g;
...@@ -644,7 +644,8 @@ void addMemberToGroups(Entry *root,MemberDef *md) ...@@ -644,7 +644,8 @@ void addMemberToGroups(Entry *root,MemberDef *md)
(gd=Doxygen::groupSDict[g->groupname]) && (gd=Doxygen::groupSDict[g->groupname]) &&
g->pri >= pri) g->pri >= pri)
{ {
if( fgd && g->pri == pri ) { if (fgd && g->pri==pri)
{
warn(root->fileName.data(), root->startLine, warn(root->fileName.data(), root->startLine,
"Warning: Member %s found in multiple %s groups! " "Warning: Member %s found in multiple %s groups! "
"The member will be put in group %s, and not in group %s", "The member will be put in group %s, and not in group %s",
...@@ -657,14 +658,18 @@ void addMemberToGroups(Entry *root,MemberDef *md) ...@@ -657,14 +658,18 @@ void addMemberToGroups(Entry *root,MemberDef *md)
pri = g->pri; pri = g->pri;
} }
} }
//printf("fgd=%p\n",fgd);
// put member into group defined by this entry? // put member into group defined by this entry?
if( fgd ) if (fgd)
{ {
GroupDef *mgd = md->getGroupDef(); GroupDef *mgd = md->getGroupDef();
//printf("mgd=%p\n",mgd);
bool insertit = FALSE; bool insertit = FALSE;
if (mgd==0) if (mgd==0)
{
insertit = TRUE; insertit = TRUE;
}
else if (mgd!=fgd) else if (mgd!=fgd)
{ {
bool moveit = FALSE; bool moveit = FALSE;
...@@ -672,40 +677,42 @@ void addMemberToGroups(Entry *root,MemberDef *md) ...@@ -672,40 +677,42 @@ void addMemberToGroups(Entry *root,MemberDef *md)
// move member from one group to another if // move member from one group to another if
// - the new one has a higher priority // - the new one has a higher priority
// - the new entry has the same priority, but with docs where the old one had no docs // - the new entry has the same priority, but with docs where the old one had no docs
if( md->getGroupPri() < pri ) if (md->getGroupPri()<pri)
{ {
moveit = TRUE; moveit = TRUE;
} }
else else
{ {
if( md->getGroupPri() == pri ) if (md->getGroupPri()==pri)
{ {
if (!root->doc.isEmpty() && !md->getGroupHasDocs())
if( root->doc.length() != 0 && !md->getGroupHasDocs() ) {
moveit = TRUE; moveit = TRUE;
else if( root->doc.length() != 0 && md->getGroupHasDocs() ) }
{ else if (!root->doc.isEmpty() && md->getGroupHasDocs())
warn(md->getGroupFileName(),md->getGroupStartLine(), {
"Warning: Member documentation for %s found several times in %s groups!\n" warn(md->getGroupFileName(),md->getGroupStartLine(),
"%s:%d: The member will remain in group %s, and won't be put into group %s", "Warning: Member documentation for %s found several times in %s groups!\n"
md->name().data(), Grouping::getGroupPriName( pri ), "%s:%d: The member will remain in group %s, and won't be put into group %s",
root->fileName.data(), root->startLine, md->name().data(), Grouping::getGroupPriName( pri ),
mgd->name().data(), root->fileName.data(), root->startLine,
fgd->name().data() mgd->name().data(),
); fgd->name().data()
} );
} }
}
} }
if( moveit ) if (moveit)
{ {
mgd->removeMember(md); mgd->removeMember(md);
insertit = TRUE; insertit = TRUE;
} }
} }
if( insertit ) if (insertit)
{ {
//printf("insertMember\n");
fgd->insertMember(md); fgd->insertMember(md);
md->setGroupDef(fgd,pri,root->fileName,root->startLine,root->doc.length() != 0); md->setGroupDef(fgd,pri,root->fileName,root->startLine,root->doc.length() != 0);
ClassDef *cd = md->getClassDefOfAnonymousType(); ClassDef *cd = md->getClassDefOfAnonymousType();
......
...@@ -351,6 +351,21 @@ void endFile(OutputList &ol,bool external) ...@@ -351,6 +351,21 @@ void endFile(OutputList &ol,bool external)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
static bool classHasVisibleChildren(ClassDef *cd)
{
if (cd->subClasses()->count()==0) return FALSE;
BaseClassList *bcl=cd->subClasses();
BaseClassListIterator bcli(*bcl);
for ( ; bcli.current() ; ++bcli)
{
if (bcli.current()->classDef->isVisibleInHierarchy())
{
return TRUE;
}
}
return FALSE;
}
void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level) void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level)
{ {
HtmlHelp *htmlHelp=0; HtmlHelp *htmlHelp=0;
...@@ -381,7 +396,8 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level) ...@@ -381,7 +396,8 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level)
started=TRUE; started=TRUE;
} }
//printf("Passed...\n"); //printf("Passed...\n");
bool hasChildren = !cd->visited && !hideSuper && cd->subClasses()->count()>0; bool hasChildren = !cd->visited && !hideSuper && classHasVisibleChildren(cd);
//printf("tree4: Has children %s: %d\n",cd->name().data(),hasChildren);
if (cd->isLinkable()) if (cd->isLinkable())
{ {
//printf("Writing class %s\n",cd->displayName().data()); //printf("Writing class %s\n",cd->displayName().data());
...@@ -454,7 +470,8 @@ void writeClassTree(BaseClassList *cl,int level) ...@@ -454,7 +470,8 @@ void writeClassTree(BaseClassList *cl,int level)
for ( ; cli.current() ; ++cli) for ( ; cli.current() ; ++cli)
{ {
ClassDef *cd=cli.current()->classDef; ClassDef *cd=cli.current()->classDef;
if (cd->isVisibleInHierarchy() && !cd->visited) if (cd->isVisibleInHierarchy() && hasVisibleRoot(cd->baseClasses()))
//if (cd->isVisibleInHierarchy() && !cd->visited)
{ {
if (!started) if (!started)
{ {
...@@ -462,7 +479,8 @@ void writeClassTree(BaseClassList *cl,int level) ...@@ -462,7 +479,8 @@ void writeClassTree(BaseClassList *cl,int level)
if (hasFtvHelp) ftvHelp->incContentsDepth(); if (hasFtvHelp) ftvHelp->incContentsDepth();
started=TRUE; started=TRUE;
} }
bool hasChildren = cd->subClasses()->count()>0; bool hasChildren = !cd->visited && classHasVisibleChildren(cd);
//printf("tree2: Has children %s: %d\n",cd->name().data(),hasChildren);
if (cd->isLinkable()) if (cd->isLinkable())
{ {
if (hasHtmlHelp) if (hasHtmlHelp)
...@@ -499,7 +517,8 @@ void writeClassTreeNode(ClassDef *cd,bool hasHtmlHelp,bool hasFtvHelp,bool &star ...@@ -499,7 +517,8 @@ void writeClassTreeNode(ClassDef *cd,bool hasHtmlHelp,bool hasFtvHelp,bool &star
{ {
started=TRUE; started=TRUE;
} }
bool hasChildren = cd->subClasses()->count()>0; bool hasChildren = classHasVisibleChildren(cd);
//printf("node: Has children %s: %d\n",cd->name().data(),hasChildren);
if (cd->isLinkable()) if (cd->isLinkable())
{ {
if (hasHtmlHelp) if (hasHtmlHelp)
...@@ -583,7 +602,8 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started) ...@@ -583,7 +602,8 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started)
if (hasFtvHelp) ftvHelp->incContentsDepth(); if (hasFtvHelp) ftvHelp->incContentsDepth();
started=TRUE; started=TRUE;
} }
bool hasChildren = !cd->visited && cd->subClasses()->count()>0; bool hasChildren = !cd->visited && classHasVisibleChildren(cd);
//printf("list: Has children %s: %d\n",cd->name().data(),hasChildren);
if (cd->isLinkable()) if (cd->isLinkable())
{ {
//printf("Writing class %s isLinkable()=%d isLinkableInProject()=%d cd->templateMaster()=%p\n", //printf("Writing class %s isLinkable()=%d isLinkableInProject()=%d cd->templateMaster()=%p\n",
...@@ -2412,7 +2432,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) ...@@ -2412,7 +2432,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
} }
// write classes // write classes
if(gd->classSDict->count()>0) if (gd->classSDict->count()>0)
{ {
if(htmlHelp) if(htmlHelp)
{ {
...@@ -2616,19 +2636,11 @@ void writeGroupIndex(OutputList &ol) ...@@ -2616,19 +2636,11 @@ void writeGroupIndex(OutputList &ol)
writeGroupHierarchy(ol); writeGroupHierarchy(ol);
if (hasHtmlHelp) if (hasHtmlHelp)
{ {
//writeGroupTree(ol); // KPW - modified to write hierarchial HMTL Help htmlHelp->decContentsDepth();
//if(!Config::instance()->get(""))
//{
htmlHelp->decContentsDepth();
//}
} }
if (hasFtvHelp) if (hasFtvHelp)
{ {
//writeGroupTree(ol); // KPW - modified to write hierarchial FTV Help ftvHelp->decContentsDepth();
//if(!Config::instance()->get(""))
//{
ftvHelp->decContentsDepth();
//}
} }
endFile(ol); endFile(ol);
ol.popGeneratorState(); ol.popGeneratorState();
......
...@@ -147,6 +147,10 @@ void LatexGenerator::init() ...@@ -147,6 +147,10 @@ void LatexGenerator::init()
err("Could not open file %s for writing\n",fileName.data()); err("Could not open file %s for writing\n",fileName.data());
exit(1); exit(1);
} }
// inserted by KONNO Akihisa <konno@researchers.jp> 2002-03-05
QCString latex_command = Config_getString("LATEX_CMD_NAME");
QCString mkidx_command = Config_getString("MAKEINDEX_CMD_NAME");
// end insertion by KONNO Akihisa <konno@researchers.jp> 2002-03-05
QTextStream t(&file); QTextStream t(&file);
t << "all: refman.dvi" << endl t << "all: refman.dvi" << endl
<< endl << endl
...@@ -194,16 +198,16 @@ void LatexGenerator::init() ...@@ -194,16 +198,16 @@ void LatexGenerator::init()
<< endl << endl
<< "refman.dvi: refman.tex doxygen.sty" << endl << "refman.dvi: refman.tex doxygen.sty" << endl
<< "\techo \"Running latex...\"" << endl << "\techo \"Running latex...\"" << endl
<< "\tlatex refman.tex" << endl << "\t" << latex_command << " refman.tex" << endl
<< "\techo \"Running makeindex...\"" << endl << "\techo \"Running makeindex...\"" << endl
<< "\tmakeindex refman.idx" << endl << "\t" << mkidx_command << " refman.idx" << endl
<< "\techo \"Rerunning latex....\"" << endl << "\techo \"Rerunning latex....\"" << endl
<< "\tlatex refman.tex" << endl << "\t" << latex_command << " refman.tex" << endl
<< "\tlatex_count=5 ; \\" << endl << "\tlatex_count=5 ; \\" << endl
<< "\twhile egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\\" << endl << "\twhile egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\\" << endl
<< "\t do \\" << endl << "\t do \\" << endl
<< "\t echo \"Rerunning latex....\" ;\\" << endl << "\t echo \"Rerunning latex....\" ;\\" << endl
<< "\t latex refman.tex ;\\" << endl << "\t " << latex_command << " refman.tex ;\\" << endl
<< "\t latex_count=`expr $$latex_count - 1` ;\\" << endl << "\t latex_count=`expr $$latex_count - 1` ;\\" << endl
<< "\t done" << endl << endl << "\t done" << endl << endl
<< "clean:" << endl << "clean:" << endl
......
...@@ -380,11 +380,10 @@ MemberDef::~MemberDef() ...@@ -380,11 +380,10 @@ MemberDef::~MemberDef()
void MemberDef::setReimplements(MemberDef *md) void MemberDef::setReimplements(MemberDef *md)
{ {
//if (m_templateMaster) //if (redefines==0) redefines = new MemberList;
//{ //if (redefines->find(md)==-1) redefines->inSort(md);
// m_templateMaster->setReimplements(md);
//} redefines = md;
redefines=md;
} }
void MemberDef::insertReimplementedBy(MemberDef *md) void MemberDef::insertReimplementedBy(MemberDef *md)
...@@ -394,10 +393,13 @@ void MemberDef::insertReimplementedBy(MemberDef *md) ...@@ -394,10 +393,13 @@ void MemberDef::insertReimplementedBy(MemberDef *md)
m_templateMaster->insertReimplementedBy(md); m_templateMaster->insertReimplementedBy(md);
} }
if (redefinedBy==0) redefinedBy = new MemberList; if (redefinedBy==0) redefinedBy = new MemberList;
if (redefinedBy->find(md)==-1) redefinedBy->inSort(md); if (redefinedBy->findRef(md)==-1)
{
redefinedBy->inSort(md);
}
} }
MemberDef *MemberDef::reimplements() const MemberDef *MemberDef::reimplements() const
{ {
return redefines; return redefines;
} }
...@@ -1315,7 +1317,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1315,7 +1317,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
} }
MemberDef *bmd=reimplements(); MemberDef *bmd=reimplements();
ClassDef *bcd=0; ClassDef *bcd=0;
if (bmd && (bcd=bmd->getClassDef())) if (bmd && (bcd=bmd->getClassDef()))
{ {
// write class that contains a member that is reimplemented by this one // write class that contains a member that is reimplemented by this one
...@@ -1342,7 +1344,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1342,7 +1344,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
if (bd==0) bd=bcd; if (bd==0) bd=bcd;
ol.writeObjectLink(bd->getReference(),bd->getOutputFileBase(), ol.writeObjectLink(bd->getReference(),bd->getOutputFileBase(),
bmd->anchor(),bcd->name()); bmd->anchor(),bcd->name());
//ol.writeObjectLink(bcd->getReference(),bcd->getOutputFileBase(), //ol.writeObjectLink(bcd->getReference(),bcd->getOutputFileBase(),
// bmd->anchor(),bcd->name()); // bmd->anchor(),bcd->name());
if ( bd->isLinkableInProject() ) if ( bd->isLinkableInProject() )
...@@ -1374,6 +1376,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1374,6 +1376,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
//ol.writeString("."); //ol.writeString(".");
} }
MemberList *bml=reimplementedBy(); MemberList *bml=reimplementedBy();
if (bml) if (bml)
{ {
......
...@@ -164,7 +164,7 @@ class MemberDef : public Definition ...@@ -164,7 +164,7 @@ class MemberDef : public Definition
// relation to other members // relation to other members
void setReimplements(MemberDef *md); void setReimplements(MemberDef *md);
void insertReimplementedBy(MemberDef *md); void insertReimplementedBy(MemberDef *md);
MemberDef *reimplements() const; MemberDef *reimplements() const;
MemberList *reimplementedBy() const; MemberList *reimplementedBy() const;
// enumeration specific members // enumeration specific members
...@@ -249,9 +249,9 @@ class MemberDef : public Definition ...@@ -249,9 +249,9 @@ class MemberDef : public Definition
private: private:
ClassDef *classDef; // member of or related to ClassDef *classDef; // member of or related to
FileDef *fileDef; // member of file definition FileDef *fileDef; // member of file definition
MemberDef *redefines; // the member that is redefined by this one
MemberDef *enumScope; // the enclosing scope, if this is an enum field MemberDef *enumScope; // the enclosing scope, if this is an enum field
MemberDef *annEnumType; // the annonymous enum that is the type of this member MemberDef *annEnumType; // the annonymous enum that is the type of this member
MemberDef *redefines; // the members that this member redefines
MemberList *redefinedBy; // the list of members that redefine this one MemberList *redefinedBy; // the list of members that redefine this one
MemberDef *memDef; // member definition for this declaration MemberDef *memDef; // member definition for this declaration
MemberDef *memDec; // member declaration for this definition MemberDef *memDec; // member declaration for this definition
......
...@@ -1001,6 +1001,7 @@ static int yyread(char *buf,int max_size) ...@@ -1001,6 +1001,7 @@ static int yyread(char *buf,int max_size)
ID [a-z_A-Z][a-z_A-Z0-9]* ID [a-z_A-Z][a-z_A-Z0-9]*
B [ \t] B [ \t]
BN [ \t\r\n] BN [ \t\r\n]
CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
%option noyywrap %option noyywrap
...@@ -1213,6 +1214,9 @@ BN [ \t\r\n] ...@@ -1213,6 +1214,9 @@ BN [ \t\r\n]
g_defArgsStr+=yytext; g_defArgsStr+=yytext;
} }
*/ */
<FindDefineArgs>{CHARLIT} {
g_defArgsStr+=yytext;
}
<FindDefineArgs>\" { <FindDefineArgs>\" {
g_defArgsStr+=*yytext; g_defArgsStr+=*yytext;
BEGIN(ReadString); BEGIN(ReadString);
......
...@@ -1009,7 +1009,7 @@ class TranslatorBrazilian: public Translator ...@@ -1009,7 +1009,7 @@ class TranslatorBrazilian: public Translator
"Se a tag \\c MAX_DOT_GRAPH_HEIGHT no arquivo de configuração tem o valor" "Se a tag \\c MAX_DOT_GRAPH_HEIGHT no arquivo de configuração tem o valor"
"200, o seguinte gráfo será gerado:" "200, o seguinte gráfo será gerado:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"As caixas no grafo acima tem as seguintes interpretações:\n" "As caixas no grafo acima tem as seguintes interpretações:\n"
"<ul>\n" "<ul>\n"
......
...@@ -951,7 +951,7 @@ class TranslatorChinese : public TranslatorAdapter_1_2_13 ...@@ -951,7 +951,7 @@ class TranslatorChinese : public TranslatorAdapter_1_2_13
"\\endcode\n" "\\endcode\n"
"如果在配置文件中指定了"CN_SPC"MAX_DOT_GRAPH_HEIGHT"CN_SPC"的值为200," "如果在配置文件中指定了"CN_SPC"MAX_DOT_GRAPH_HEIGHT"CN_SPC"的值为200,"
"则Doxygen将生成如下的图形:" "则Doxygen将生成如下的图形:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"以上图形中的矩形有如下的含义:\n" "以上图形中的矩形有如下的含义:\n"
"<ul>\n" "<ul>\n"
......
...@@ -1211,7 +1211,7 @@ class TranslatorCzech : public Translator ...@@ -1211,7 +1211,7 @@ class TranslatorCzech : public Translator
"\\endcode\n" "\\endcode\n"
"Pokud je položka \\c MAX_DOT_GRAPH_HEIGHT konfiguraèního souboru " "Pokud je položka \\c MAX_DOT_GRAPH_HEIGHT konfiguraèního souboru "
"nastavena na hodnotu 200, bude vygenerován následující graf:" "nastavena na hodnotu 200, bude vygenerován následující graf:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"Bloky (tj. uzly) v uvedeném grafu mají následující význam:\n" "Bloky (tj. uzly) v uvedeném grafu mají následující význam:\n"
"<ul>\n" "<ul>\n"
......
...@@ -1082,7 +1082,7 @@ class TranslatorGerman : public Translator ...@@ -1082,7 +1082,7 @@ class TranslatorGerman : public Translator
"\\endcode\n\n" "\\endcode\n\n"
"Setzen des Tags \\c MAX_DOT_GRAPH_HEIGHT in der Konfigurationsdatei " "Setzen des Tags \\c MAX_DOT_GRAPH_HEIGHT in der Konfigurationsdatei "
"auf 240 liefert den folgenden Graphen:" "auf 240 liefert den folgenden Graphen:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"Die Rechtecke in obigem Graphen bedeuten:\n" "Die Rechtecke in obigem Graphen bedeuten:\n"
"<ul>\n" "<ul>\n"
......
...@@ -1055,7 +1055,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1055,7 +1055,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
"\\endcode\n" "\\endcode\n"
"If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file "
"is set to 200 this will result in the following graph:" "is set to 200 this will result in the following graph:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"The boxes in the above graph have the following meaning:\n" "The boxes in the above graph have the following meaning:\n"
"<ul>\n" "<ul>\n"
......
...@@ -1072,7 +1072,7 @@ class TranslatorEnglish : public Translator ...@@ -1072,7 +1072,7 @@ class TranslatorEnglish : public Translator
"\\endcode\n" "\\endcode\n"
"If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file "
"is set to 240 this will result in the following graph:" "is set to 240 this will result in the following graph:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"The boxes in the above graph have the following meaning:\n" "The boxes in the above graph have the following meaning:\n"
"<ul>\n" "<ul>\n"
......
...@@ -947,7 +947,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_2_7 ...@@ -947,7 +947,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_2_7
"\\endcode\n" "\\endcode\n"
"Si la etiqueta \\c MAX_DOT_GRAPH_HEIGHT en el archivo de configuración " "Si la etiqueta \\c MAX_DOT_GRAPH_HEIGHT en el archivo de configuración "
"tiene valor 200 resultará en el siguiente gráfico:" "tiene valor 200 resultará en el siguiente gráfico:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"Las cajas en el gráfico arriba tienen el significado que sigue:\n" "Las cajas en el gráfico arriba tienen el significado que sigue:\n"
"<ul>\n" "<ul>\n"
......
...@@ -939,7 +939,7 @@ class TranslatorFrench : public Translator ...@@ -939,7 +939,7 @@ class TranslatorFrench : public Translator
"\\endcode\n" "\\endcode\n"
"Si la valeur 200 est attribuée au tag \\c MAX_DOT_GRAPH_HEIGHT " "Si la valeur 200 est attribuée au tag \\c MAX_DOT_GRAPH_HEIGHT "
"du fichier de configuration, cela génèrera le graphe suivant:" "du fichier de configuration, cela génèrera le graphe suivant:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"Les rectangles du graphe ci-dessus ont la signification suivante:\n" "Les rectangles du graphe ci-dessus ont la signification suivante:\n"
"<ul>\n" "<ul>\n"
......
...@@ -1043,7 +1043,7 @@ class TranslatorGreek : public TranslatorAdapter_1_2_11 ...@@ -1043,7 +1043,7 @@ class TranslatorGreek : public TranslatorAdapter_1_2_11
"\\endcode\n" "\\endcode\n"
" \\c MAX_DOT_GRAPH_HEIGHT " " \\c MAX_DOT_GRAPH_HEIGHT "
" 200 :" " 200 :"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
" :\n" " :\n"
"<ul>\n" "<ul>\n"
......
...@@ -760,7 +760,7 @@ class TranslatorCroatian : public Translator ...@@ -760,7 +760,7 @@ class TranslatorCroatian : public Translator
"\\endcode\n" "\\endcode\n"
"Ako je \\c MAX_DOT_GRAPH_HEIGHT tag u konfiguracijskoj datoteci " "Ako je \\c MAX_DOT_GRAPH_HEIGHT tag u konfiguracijskoj datoteci "
"postavljen na 200 gornje veze e rezultirati grafikonom:" "postavljen na 200 gornje veze e rezultirati grafikonom:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"Pravokutnici imaju slijedee znaenje:\n" "Pravokutnici imaju slijedee znaenje:\n"
"<ul>\n" "<ul>\n"
......
...@@ -936,7 +936,7 @@ class TranslatorHungarian : public TranslatorAdapter_1_2_1 ...@@ -936,7 +936,7 @@ class TranslatorHungarian : public TranslatorAdapter_1_2_1
"\\endcode\n" "\\endcode\n"
"Ha a konfigurációs fájl \\c MAX_DOT_GRAPH_HEIGHT elemének értékét " "Ha a konfigurációs fájl \\c MAX_DOT_GRAPH_HEIGHT elemének értékét "
"200-ra állítjuk, az eredmény a következõ ábra lesz:" "200-ra állítjuk, az eredmény a következõ ábra lesz:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"Az ábrán levõ dobozok jelentése:\n" "Az ábrán levõ dobozok jelentése:\n"
"<ul>\n" "<ul>\n"
......
...@@ -1060,7 +1060,7 @@ class TranslatorItalian : public Translator ...@@ -1060,7 +1060,7 @@ class TranslatorItalian : public Translator
"\\endcode\n" "\\endcode\n"
"Se il tag \\c MAX_DOT_GRAPH_HEIGHT nel file di configurazione " "Se il tag \\c MAX_DOT_GRAPH_HEIGHT nel file di configurazione "
"è impostato a 200 verrà prodotto il grafo seguente:" "è impostato a 200 verrà prodotto il grafo seguente:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"I riquadri nel grafo qui sopra hanno il seguente significato:\n" "I riquadri nel grafo qui sopra hanno il seguente significato:\n"
"<ul>\n" "<ul>\n"
......
...@@ -1010,7 +1010,7 @@ class TranslatorJapanese : public Translator ...@@ -1010,7 +1010,7 @@ class TranslatorJapanese : public Translator
"\\endcode\n" "\\endcode\n"
"設定ファイル中で、タグ \\c MAX_DOT_GRAPH_HEIGHT が 200 にセットされた" "設定ファイル中で、タグ \\c MAX_DOT_GRAPH_HEIGHT が 200 にセットされた"
"場合、次のようなグラフとなります。" "場合、次のようなグラフとなります。"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"上のグラフ内のボックスには次のような意味があります。\n" "上のグラフ内のボックスには次のような意味があります。\n"
"<ul>\n" "<ul>\n"
......
...@@ -1010,7 +1010,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 ...@@ -1010,7 +1010,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13
"\\endcode\n" "\\endcode\n"
"If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file "
"is set to 240 this will result in the following graph:" "is set to 240 this will result in the following graph:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"The boxes in the above graph have the following meaning:\n" "The boxes in the above graph have the following meaning:\n"
"<ul>\n" "<ul>\n"
......
...@@ -685,7 +685,7 @@ class TranslatorDutch : public Translator ...@@ -685,7 +685,7 @@ class TranslatorDutch : public Translator
"\\endcode\n" "\\endcode\n"
"Als de \\c MAX_DOT_GRAPH_HEIGHT tag in the configuratie file " "Als de \\c MAX_DOT_GRAPH_HEIGHT tag in the configuratie file "
"op 200 gezet is, zal het bestaande voorbeeld resulteren in de volgende graaf:" "op 200 gezet is, zal het bestaande voorbeeld resulteren in de volgende graaf:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"De rechthoeken in the bovenstaande graaf hebben de volgende betekenis:\n" "De rechthoeken in the bovenstaande graaf hebben de volgende betekenis:\n"
"<ul>\n" "<ul>\n"
......
...@@ -742,7 +742,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 ...@@ -742,7 +742,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2
"\\endcode\n" "\\endcode\n"
"If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file "
"is set to 200 this will result in the following graph:" "is set to 200 this will result in the following graph:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"The boxes in the above graph have the following meaning:\n" "The boxes in the above graph have the following meaning:\n"
"<ul>\n" "<ul>\n"
......
...@@ -938,7 +938,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_1 ...@@ -938,7 +938,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_1
"\\endcode\n" "\\endcode\n"
"Je¶li znacznik \\c MAX_DOT_GRAPH_HEIGHT w pliku konfiguracji " "Je¶li znacznik \\c MAX_DOT_GRAPH_HEIGHT w pliku konfiguracji "
"jest ustawiony na 200, odniesie to rezultat w nastêpuj±cym wykresie:" "jest ustawiony na 200, odniesie to rezultat w nastêpuj±cym wykresie:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"Pude³ka w powy¿szym wykresie maj± nastêpuj±ce znaczenie:\n" "Pude³ka w powy¿szym wykresie maj± nastêpuj±ce znaczenie:\n"
"<ul>\n" "<ul>\n"
......
...@@ -1051,7 +1051,7 @@ class TranslatorPortuguese : public Translator ...@@ -1051,7 +1051,7 @@ class TranslatorPortuguese : public Translator
"\\endcode\n" "\\endcode\n"
"Se no ficheiro de configuração estiver a tag \\c MAX_DOT_GRAPH_HEIGHT " "Se no ficheiro de configuração estiver a tag \\c MAX_DOT_GRAPH_HEIGHT "
"com o valor de 200 então o seguinte grafo será gerado:" "com o valor de 200 então o seguinte grafo será gerado:"
"<p><center><img src=\"graph_legend.gif\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"As caixas no grafo anterior têm as seguintes interpretações:\n" "As caixas no grafo anterior têm as seguintes interpretações:\n"
"<ul>\n" "<ul>\n"
......
This diff is collapsed.
...@@ -1095,7 +1095,7 @@ class TranslatorRussian : public Translator ...@@ -1095,7 +1095,7 @@ class TranslatorRussian : public Translator
"\\endcode\n" "\\endcode\n"
" \\c MAX_DOT_GRAPH_HEIGHT " " \\c MAX_DOT_GRAPH_HEIGHT "
" 240, :" " 240, :"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
" :\n" " :\n"
"<ul>\n" "<ul>\n"
......
...@@ -694,7 +694,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_2_13 ...@@ -694,7 +694,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_2_13
"\\endcode\n" "\\endcode\n"
"If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file "
"is set to 200 this will result in the following graph:" "is set to 200 this will result in the following graph:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"The boxes in the above graph have the following meaning:\n" "The boxes in the above graph have the following meaning:\n"
"<ul>\n" "<ul>\n"
......
...@@ -1069,7 +1069,7 @@ class TranslatorSlovak : public TranslatorAdapter_1_2_13 ...@@ -1069,7 +1069,7 @@ class TranslatorSlovak : public TranslatorAdapter_1_2_13
"\\endcode\n" "\\endcode\n"
"Pokia je poloka \\c MAX_DOT_GRAPH_HEIGHT konfiguranho sboru " "Pokia je poloka \\c MAX_DOT_GRAPH_HEIGHT konfiguranho sboru "
"nastaven na hodnotu 200, bude vygenerovan nasledujci graf:" "nastaven na hodnotu 200, bude vygenerovan nasledujci graf:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"Bloky (tj. uzly) v uvedenom grafe maj nasledujci vznam:\n" "Bloky (tj. uzly) v uvedenom grafe maj nasledujci vznam:\n"
"<ul>\n" "<ul>\n"
......
...@@ -1060,7 +1060,7 @@ class TranslatorUkrainian : public TranslatorAdapter_1_2_11 ...@@ -1060,7 +1060,7 @@ class TranslatorUkrainian : public TranslatorAdapter_1_2_11
"\\endcode\n" "\\endcode\n"
"ñËÝÏ \\c MAX_DOT_GRAPH_HEIGHT × ËÏÎƦÇÕÒÁæÊÎÏÍÕ ÆÁÊ̦ " "ñËÝÏ \\c MAX_DOT_GRAPH_HEIGHT × ËÏÎƦÇÕÒÁæÊÎÏÍÕ ÆÁÊ̦ "
"ÕÓÔÁÎÏ×ÌÅÎÅ ÎÁ 200, ÏÔÒÉÍÁ¤ÍÏ ÎÁÓÔÕÐÎÉÊ ÇÒÁÆ:" "ÕÓÔÁÎÏ×ÌÅÎÅ ÎÁ 200, ÏÔÒÉÍÁ¤ÍÏ ÎÁÓÔÕÐÎÉÊ ÇÒÁÆ:"
"<p><center><img src=\"graph_legend.png\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"ðÒÑÍÏËÕÔÎÉËÉ × ÃØÏÍÕ ÇÒÁƦ ÍÁÀÔØ ÎÁÓÔÕÐÎÉÊ ÚͦÓÔ:\n" "ðÒÑÍÏËÕÔÎÉËÉ × ÃØÏÍÕ ÇÒÁƦ ÍÁÀÔØ ÎÁÓÔÕÐÎÉÊ ÚͦÓÔ:\n"
"<ul>\n" "<ul>\n"
......
...@@ -119,13 +119,13 @@ template<class T> class ValStack ...@@ -119,13 +119,13 @@ template<class T> class ValStack
public: public:
ValStack() : m_values(10), m_sp(0), m_size(10) {} ValStack() : m_values(10), m_sp(0), m_size(10) {}
virtual ~ValStack() {} virtual ~ValStack() {}
ValStack(const ValStack &s) ValStack(const ValStack<T> &s)
{ {
m_values=s.m_values.copy(); m_values=s.m_values.copy();
m_sp=s.m_sp; m_sp=s.m_sp;
m_size=s.m_size; m_size=s.m_size;
} }
ValStack &operator=(const ValStack &s) ValStack &operator=(const ValStack<T> &s)
{ {
m_values=s.m_values.copy(); m_values=s.m_values.copy();
m_sp=s.m_sp; m_sp=s.m_sp;
...@@ -981,9 +981,8 @@ static void writeMemberReference(QTextStream &t,Definition *def,MemberDef *rmd,c ...@@ -981,9 +981,8 @@ static void writeMemberReference(QTextStream &t,Definition *def,MemberDef *rmd,c
t << rmd->getBodyDef()->getOutputFileBase() t << rmd->getBodyDef()->getOutputFileBase()
<< "_1" // encoded `:' character (see util.cpp:convertNameToFile) << "_1" // encoded `:' character (see util.cpp:convertNameToFile)
<< rmd->anchor() << rmd->anchor()
<< "\">"; << "\">" << convertToXML(name) << "</"
writeXMLString(t,name); << tagName << ">" << endl;
t << "</" << tagName << ">" << endl;
} }
else if (rmd->isLinkable() && d && d->isLinkable()) else if (rmd->isLinkable() && d && d->isLinkable())
// link to declaration in documentation (in absense of a definition) // link to declaration in documentation (in absense of a definition)
...@@ -992,9 +991,8 @@ static void writeMemberReference(QTextStream &t,Definition *def,MemberDef *rmd,c ...@@ -992,9 +991,8 @@ static void writeMemberReference(QTextStream &t,Definition *def,MemberDef *rmd,c
t << d->getOutputFileBase() t << d->getOutputFileBase()
<< "_1" // encoded `:' character (see util.cpp:convertNameToFile) << "_1" // encoded `:' character (see util.cpp:convertNameToFile)
<< rmd->anchor() << rmd->anchor()
<< "\">"; << "\">" << convertToXML(name)
writeXMLString(t,name); << "</" << tagName << ">" << endl;
t << "</" << tagName << ">" << endl;
} }
} }
...@@ -1017,7 +1015,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De ...@@ -1017,7 +1015,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
if (md->memberType()==MemberDef::EnumValue) return; if (md->memberType()==MemberDef::EnumValue) return;
ti << " <member id=\"" << md->getOutputFileBase() ti << " <member id=\"" << md->getOutputFileBase()
<< "_1" << md->anchor() << "\">" << md->name() << "</member>" << endl; << "_1" << md->anchor() << "\">" << convertToXML(md->name()) << "</member>" << endl;
QCString scopeName; QCString scopeName;
if (md->getClassDef()) if (md->getClassDef())
...@@ -1087,16 +1085,13 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De ...@@ -1087,16 +1085,13 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
t << "</type>" << endl; t << "</type>" << endl;
} }
t << " <name>"; t << " <name>" << convertToXML(md->name()) << "</name>" << endl;
writeXMLString(t,md->name());
t << "</name>" << endl;
MemberDef *rmd = md->reimplements(); MemberDef *rmd = md->reimplements();
if (rmd) if (rmd)
{ {
t << " <reimplements id=\"" t << " <reimplements id=\""
<< rmd->getOutputFileBase() << "_1" << rmd->anchor() << "\">" << rmd->getOutputFileBase() << "_1" << rmd->anchor() << "\">"
<< rmd->name() << "</reimplements>"; << convertToXML(rmd->name()) << "</reimplements>";
} }
MemberList *rbml = md->reimplementedBy(); MemberList *rbml = md->reimplementedBy();
if (rbml) if (rbml)
...@@ -1106,7 +1101,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De ...@@ -1106,7 +1101,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
{ {
t << " <reimplementedby id=\"" t << " <reimplementedby id=\""
<< rmd->getOutputFileBase() << "_1" << rmd->anchor() << "\">" << rmd->getOutputFileBase() << "_1" << rmd->anchor() << "\">"
<< rmd->name() << "</reimplementedby>"; << convertToXML(rmd->name()) << "</reimplementedby>";
} }
} }
...@@ -1346,8 +1341,8 @@ static void writeListOfAllMembers(ClassDef *cd,QTextStream &t) ...@@ -1346,8 +1341,8 @@ static void writeListOfAllMembers(ClassDef *cd,QTextStream &t)
{ {
t << " ambiguityscope=\"" << mi->ambiguityResolutionScope << "\""; t << " ambiguityscope=\"" << mi->ambiguityResolutionScope << "\"";
} }
t << "><scope>" << cd->name() << "</scope><name>" << t << "><scope>" << convertToXML(cd->name()) << "</scope><name>" <<
md->name() << "</name></member>" << endl; convertToXML(md->name()) << "</name></member>" << endl;
} }
} }
t << " </listofallmembers>" << endl; t << " </listofallmembers>" << endl;
...@@ -1376,7 +1371,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti) ...@@ -1376,7 +1371,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti)
if (cd->templateMaster()!=0) return; // skip generated template instances. if (cd->templateMaster()!=0) return; // skip generated template instances.
ti << " <compound id=\"" << cd->getOutputFileBase() ti << " <compound id=\"" << cd->getOutputFileBase()
<< "\"><name>" << cd->name() << "</name>" << endl; << "\"><name>" << convertToXML(cd->name()) << "</name>" << endl;
QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY"); QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY");
QCString fileName=outputDirectory+"/xml/"+cd->getOutputFileBase()+".xml"; QCString fileName=outputDirectory+"/xml/"+cd->getOutputFileBase()+".xml";
...@@ -1540,7 +1535,7 @@ static void generateXMLForNamespace(NamespaceDef *nd,QTextStream &ti) ...@@ -1540,7 +1535,7 @@ static void generateXMLForNamespace(NamespaceDef *nd,QTextStream &ti)
if (nd->isReference()) return; // skip external references if (nd->isReference()) return; // skip external references
ti << " <compound id=\"" << nd->getOutputFileBase() ti << " <compound id=\"" << nd->getOutputFileBase()
<< "\"><name>" << nd->name() << "</name>" << endl; << "\"><name>" << convertToXML(nd->name()) << "</name>" << endl;
QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY"); QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY");
QCString fileName=outputDirectory+"/xml/"+nd->getOutputFileBase()+".xml"; QCString fileName=outputDirectory+"/xml/"+nd->getOutputFileBase()+".xml";
...@@ -1630,7 +1625,7 @@ static void generateXMLForFile(FileDef *fd,QTextStream &ti) ...@@ -1630,7 +1625,7 @@ static void generateXMLForFile(FileDef *fd,QTextStream &ti)
if (fd->isReference()) return; // skip external references if (fd->isReference()) return; // skip external references
ti << " <compound id=\"" << fd->getOutputFileBase() ti << " <compound id=\"" << fd->getOutputFileBase()
<< "\"><name>" << fd->name() << "</name>" << endl; << "\"><name>" << convertToXML(fd->name()) << "</name>" << endl;
QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY"); QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY");
QCString fileName=outputDirectory+"/xml/"+fd->getOutputFileBase()+".xml"; QCString fileName=outputDirectory+"/xml/"+fd->getOutputFileBase()+".xml";
...@@ -1763,7 +1758,7 @@ static void generateXMLForGroup(GroupDef *gd,QTextStream &ti) ...@@ -1763,7 +1758,7 @@ static void generateXMLForGroup(GroupDef *gd,QTextStream &ti)
if (gd->isReference()) return; // skip external references if (gd->isReference()) return; // skip external references
ti << " <compound id=\"" << gd->getOutputFileBase() ti << " <compound id=\"" << gd->getOutputFileBase()
<< "\"><name>" << gd->name() << "</name>" << endl; << "\"><name>" << convertToXML(gd->name()) << "</name>" << endl;
QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY"); QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY");
QCString fileName=outputDirectory+"/xml/"+gd->getOutputFileBase()+".xml"; QCString fileName=outputDirectory+"/xml/"+gd->getOutputFileBase()+".xml";
...@@ -1862,7 +1857,7 @@ static void generateXMLForPage(PageInfo *pi,QTextStream &ti) ...@@ -1862,7 +1857,7 @@ static void generateXMLForPage(PageInfo *pi,QTextStream &ti)
if (pi->isReference()) return; if (pi->isReference()) return;
ti << " <compound id=\"" << pi->getOutputFileBase() ti << " <compound id=\"" << pi->getOutputFileBase()
<< "\"><name>" << pi->name << "</name>" << endl; << "\"><name>" << convertToXML(pi->name) << "</name>" << endl;
QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY"); QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY");
QCString fileName=outputDirectory+"/xml/"+pi->getOutputFileBase()+".xml"; QCString fileName=outputDirectory+"/xml/"+pi->getOutputFileBase()+".xml";
...@@ -1879,7 +1874,7 @@ static void generateXMLForPage(PageInfo *pi,QTextStream &ti) ...@@ -1879,7 +1874,7 @@ static void generateXMLForPage(PageInfo *pi,QTextStream &ti)
t << " <compounddef id=\""; t << " <compounddef id=\"";
if (Config_getBool("CASE_SENSE_NAMES")) t << pi->name; else t << pi->name.lower(); if (Config_getBool("CASE_SENSE_NAMES")) t << pi->name; else t << pi->name.lower();
t << "\" kind=\"page\">" << endl; t << "\" kind=\"page\">" << endl;
t << " <compoundname>" << pi->name << "</compoundname>" << endl; t << " <compoundname>" << convertToXML(pi->name) << "</compoundname>" << endl;
SectionInfo *si = Doxygen::sectionDict.find(pi->name); SectionInfo *si = Doxygen::sectionDict.find(pi->name);
if (si) if (si)
{ {
......
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