diff options
40 files changed, 686 insertions, 226 deletions
@@ -1,6 +1,6 @@ -DOXYGEN Version 1.2.14-20020310 +DOXYGEN Version 1.2.14-20020317 Please read the installation section of the manual for instructions. -------- -Dimitri van Heesch (10 March 2002) +Dimitri van Heesch (17 March 2002) @@ -1,4 +1,4 @@ -DOXYGEN Version 1.2.14_20020310 +DOXYGEN Version 1.2.14_20020317 Please read INSTALL for compilation instructions. @@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. Enjoy, -Dimitri van Heesch (dimitri@stack.nl) (10 March 2002) +Dimitri van Heesch (dimitri@stack.nl) (17 March 2002) @@ -1 +1 @@ -1.2.14-20020310 +1.2.14-20020317 diff --git a/addon/doxmlparser/test/main.cpp b/addon/doxmlparser/test/main.cpp index 4359ba5..9c97db9 100644 --- a/addon/doxmlparser/test/main.cpp +++ b/addon/doxmlparser/test/main.cpp @@ -138,7 +138,7 @@ void DumpDoc(IDoc *doc) break; case IDoc::SimpleSect: { - IDocSimpleSect *ss = dynamic_cast<IDocSimpleSect*>(ss); + IDocSimpleSect *ss = dynamic_cast<IDocSimpleSect*>(doc); ASSERT(ss!=0); } break; @@ -188,91 +188,91 @@ void DumpDoc(IDoc *doc) break; case IDoc::HRuler: { - IDocHRuler *hr = dynamic_cast<IDocHRuler*>(hr); + IDocHRuler *hr = dynamic_cast<IDocHRuler*>(doc); ASSERT(hr!=0); } break; case IDoc::LineBreak: { - IDocLineBreak *lb = dynamic_cast<IDocLineBreak*>(lb); + IDocLineBreak *lb = dynamic_cast<IDocLineBreak*>(doc); ASSERT(lb!=0); } break; case IDoc::ULink: { - IDocULink *ul = dynamic_cast<IDocULink*>(ul); + IDocULink *ul = dynamic_cast<IDocULink*>(doc); ASSERT(ul!=0); } break; case IDoc::EMail: { - IDocEMail *em = dynamic_cast<IDocEMail*>(em); + IDocEMail *em = dynamic_cast<IDocEMail*>(doc); ASSERT(em!=0); } break; case IDoc::Link: { - IDocLink *lk = dynamic_cast<IDocLink*>(lk); + IDocLink *lk = dynamic_cast<IDocLink*>(doc); ASSERT(lk!=0); } break; case IDoc::ProgramListing: { - IDocProgramListing *pl = dynamic_cast<IDocProgramListing*>(pl); + IDocProgramListing *pl = dynamic_cast<IDocProgramListing*>(doc); ASSERT(pl!=0); } break; case IDoc::CodeLine: { - IDocCodeLine *cl = dynamic_cast<IDocCodeLine*>(cl); + IDocCodeLine *cl = dynamic_cast<IDocCodeLine*>(doc); ASSERT(cl!=0); } break; case IDoc::Highlight: { - IDocHighlight *hl = dynamic_cast<IDocHighlight*>(hl); + IDocHighlight *hl = dynamic_cast<IDocHighlight*>(doc); ASSERT(hl!=0); } break; case IDoc::Formula: { - IDocFormula *fm = dynamic_cast<IDocFormula*>(fm); + IDocFormula *fm = dynamic_cast<IDocFormula*>(doc); ASSERT(fm!=0); } break; case IDoc::Image: { - IDocImage *img = dynamic_cast<IDocImage*>(img); + IDocImage *img = dynamic_cast<IDocImage*>(doc); ASSERT(img!=0); } break; case IDoc::DotFile: { - IDocDotFile *df = dynamic_cast<IDocDotFile*>(df); + IDocDotFile *df = dynamic_cast<IDocDotFile*>(doc); ASSERT(df!=0); } break; case IDoc::IndexEntry: { - IDocIndexEntry *ie = dynamic_cast<IDocIndexEntry*>(ie); + IDocIndexEntry *ie = dynamic_cast<IDocIndexEntry*>(doc); ASSERT(ie!=0); } break; case IDoc::Table: { - IDocTable *tbl = dynamic_cast<IDocTable*>(tbl); + IDocTable *tbl = dynamic_cast<IDocTable*>(doc); ASSERT(tbl!=0); } break; case IDoc::Row: { - IDocRow *row = dynamic_cast<IDocRow*>(row); + IDocRow *row = dynamic_cast<IDocRow*>(doc); ASSERT(row!=0); } break; case IDoc::Entry: { - IDocEntry *ent = dynamic_cast<IDocEntry*>(ent); + IDocEntry *ent = dynamic_cast<IDocEntry*>(doc); ASSERT(ent!=0); } break; diff --git a/doc/config.doc b/doc/config.doc index d36dfc5..3b36cd5 100644 --- a/doc/config.doc +++ b/doc/config.doc @@ -143,9 +143,11 @@ followed by the descriptions of the tags grouped by category. <li> \refitem cfg_internal_docs INTERNAL_DOCS <li> \refitem cfg_javadoc_autobrief JAVADOC_AUTOBRIEF <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_output LATEX_OUTPUT <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_links MAN_LINKS <li> \refitem cfg_man_output MAN_OUTPUT @@ -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 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 <dt>\c COMPACT_LATEX <dd> \addindex COMPACT_LATEX diff --git a/doc/language.doc b/doc/language.doc index 4b3bcca..f028fdb 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -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 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): Brazilian Portuguese, Chinese, Croatian, Czech, Danish, Dutch, English, Finnish, French, German, @@ -162,7 +162,7 @@ when the translator was updated. <TD>Romanian</TD> <TD>Alexandru Iosup</TD> <TD>aiosup@NOSPAM.yahoo.com</TD> - <TD>1.2.1</TD> + <TD>up-to-date</TD> </TR> <TR BGCOLOR="#ffffff"> <TD>Russian</TD> @@ -251,7 +251,7 @@ when the translator was updated. \hline Portuguese & Rui Godinho Lopes & {\tt ruiglopes@yahoo.com} & up-to-date \\ \hline - Romanian & Alexandru Iosup & {\tt aiosup@yahoo.com} & 1.2.1 \\ + Romanian & Alexandru Iosup & {\tt aiosup@yahoo.com} & up-to-date \\ \hline Russian & Alexandr Chelpanov & {\tt cav@cryptopro.ru} & up-to-date \\ \hline diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec index eedb104..1ad7285 100644 --- a/packages/rpm/doxygen.spec +++ b/packages/rpm/doxygen.spec @@ -1,6 +1,6 @@ Summary: A documentation system for C/C++. Name: doxygen -Version: 1.2.14_20020310 +Version: 1.2.14_20020317 Release: 1 Epoch: 1 Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz @@ -335,6 +335,7 @@ static void startCodeLine() //lineAnchor.sprintf("l%05d",g_yyLineNr); Definition *d = g_sourceFileDef->getSourceDefinition(g_yyLineNr); + //printf("startCodeLine %d d=%p\n",g_yyLineNr,d); //g_code->startLineNumber(); if (!g_includeCodeFragment && d && d->isLinkableInProject()) { @@ -590,6 +591,23 @@ static MemberDef *setCallContextForVar(const QCString &name) 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) { int i=0; @@ -646,18 +664,7 @@ static void generateClassOrGlobalLink(OutputDocInterface &ol,char *clName,int *c writeMultiLineCodeLink(ol,d->getReference(),d->getOutputFileBase(),md->getBodyAnchor(),clName); if (g_currentMemberDef) { - if (Config_getBool("REFERENCED_BY_RELATION") && - (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); - } + addDocCrossReference(g_currentMemberDef,md); } return; } @@ -711,21 +718,13 @@ static bool getLink(const char *className, if (d && d->isLinkable()) { 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 && md!=g_currentMemberDef && g_insideBody) { - if (Config_getBool("REFERENCED_BY_RELATION") && - (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); - } + addDocCrossReference(g_currentMemberDef,md); } //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 if (g_currentDefinition && g_currentMemberDef && xmd!=g_currentMemberDef && g_insideBody) { - if (Config_getBool("REFERENCED_BY_RELATION") && g_currentMemberDef->isFunction()) - { - xmd->addSourceReferencedBy(g_currentMemberDef); - } - if (Config_getBool("REFERENCES_RELATION") && g_currentMemberDef->isFunction()) - { - g_currentMemberDef->addSourceReferences(xmd); - } + addDocCrossReference(g_currentMemberDef,xmd); } // write the actual link diff --git a/src/config.l b/src/config.l index fe32174..62f2382 100644 --- a/src/config.l +++ b/src/config.l @@ -1900,6 +1900,23 @@ void Config::create() cs->setDefaultValue("latex"); cs->setWidgetType(ConfigString::Dir); 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( "COMPACT_LATEX", "If the COMPACT_LATEX tag is set to YES Doxygen generates more compact \n" diff --git a/src/doxygen.cpp b/src/doxygen.cpp index f420437..dc688b1 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -910,7 +910,7 @@ static void findUsingDirectives(Entry *root) // the global file scope. if (root->parent->section == Entry::NAMESPACE_SEC) { - nsName=root->parent->name.copy(); + nsName=stripAnonymousNamespaceScope(root->parent->name); if (!nsName.isEmpty()) { nd = getResolvedNamespace(nsName); @@ -926,8 +926,8 @@ static void findUsingDirectives(Entry *root) { QCString scope=scopeOffset>0 ? nsName.left(scopeOffset)+"::" : QCString(); - //printf("Trying with scope=`%s'\n",scope.data()); usingNd = getResolvedNamespace(scope+root->name); + //printf("Trying with scope=`%s' usingNd=%p\n",(scope+root->name).data(),usingNd); if (scopeOffset==0) { scopeOffset=-1; @@ -943,6 +943,7 @@ static void findUsingDirectives(Entry *root) // add the namespace the correct scope if (usingNd) { + //printf("using fd=%p nd=%p\n",fd,nd); if (nd) { //printf("Inside namespace %s\n",nd->name().data()); @@ -1315,7 +1316,7 @@ static MemberDef *addVariableToFile( if (md->getGroupDef()==0 && root->groups->first()) { 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) { @@ -1900,8 +1901,9 @@ static void buildFunctionList(Entry *root) // merge ingroup specifiers if (md->getGroupDef()==0 && root->groups->first()) { + addMemberToGroups(root,md); 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) { @@ -2212,6 +2214,17 @@ static void transferFunctionDocumentation() mdec->mergeMemberSpecifiers(mdef->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 testId = QMAX(mdec->testId(),mdef->testId()); int bugId = QMAX(mdec->bugId() ,mdef->bugId() ); @@ -3064,7 +3077,7 @@ static void computeClassRelations() { 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]!='@') warn_undoc( @@ -4930,6 +4943,9 @@ static void computeMemberRelations() //printf("setting (new) reimplements member\n"); 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); } } @@ -5090,6 +5106,7 @@ static void addSourceReferences() MemberDef *md=0; for (mni.toFirst();(md=mni.current());++mni) { + //printf("class member %s\n",md->name().data()); ClassDef *cd=md->getClassDef(); FileDef *fd=md->getBodyDef(); if (fd && cd && cd->isLinkableInProject() && md->getStartBodyLine()!=-1 && @@ -5110,8 +5127,9 @@ static void addSourceReferences() for (mni.toFirst();(md=mni.current());++mni) { NamespaceDef *nd=md->getNamespaceDef(); - FileDef *fd=md->getFileDef(); + FileDef *fd=md->getBodyDef(); 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() && ((nd && nd->isLinkableInProject()) || (fd->isLinkableInProject()) || diff --git a/src/groupdef.cpp b/src/groupdef.cpp index b508c1c..fdb12b0 100644 --- a/src/groupdef.cpp +++ b/src/groupdef.cpp @@ -163,7 +163,7 @@ void GroupDef::addMembersToMemberGroup() 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; if ((mni=(*allMemberNameInfoSDict)[md->name()])) { // member with this name already found @@ -630,7 +630,7 @@ void addGroupToGroups(Entry *root,GroupDef *subGroup) /*! Add a member to the group with the highest priority */ 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); Grouping *g; @@ -644,7 +644,8 @@ void addMemberToGroups(Entry *root,MemberDef *md) (gd=Doxygen::groupSDict[g->groupname]) && g->pri >= pri) { - if( fgd && g->pri == pri ) { + if (fgd && g->pri==pri) + { warn(root->fileName.data(), root->startLine, "Warning: Member %s found in multiple %s groups! " "The member will be put in group %s, and not in group %s", @@ -657,14 +658,18 @@ void addMemberToGroups(Entry *root,MemberDef *md) pri = g->pri; } } + //printf("fgd=%p\n",fgd); // put member into group defined by this entry? - if( fgd ) + if (fgd) { GroupDef *mgd = md->getGroupDef(); + //printf("mgd=%p\n",mgd); bool insertit = FALSE; if (mgd==0) + { insertit = TRUE; + } else if (mgd!=fgd) { bool moveit = FALSE; @@ -672,40 +677,42 @@ void addMemberToGroups(Entry *root,MemberDef *md) // move member from one group to another if // - the new one has a higher priority // - 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 { - if( md->getGroupPri() == pri ) - { - - if( root->doc.length() != 0 && !md->getGroupHasDocs() ) - moveit = TRUE; - else if( root->doc.length() != 0 && md->getGroupHasDocs() ) - { - warn(md->getGroupFileName(),md->getGroupStartLine(), - "Warning: Member documentation for %s found several times in %s groups!\n" - "%s:%d: The member will remain in group %s, and won't be put into group %s", - md->name().data(), Grouping::getGroupPriName( pri ), - root->fileName.data(), root->startLine, - mgd->name().data(), - fgd->name().data() - ); - } - } + if (md->getGroupPri()==pri) + { + if (!root->doc.isEmpty() && !md->getGroupHasDocs()) + { + moveit = TRUE; + } + else if (!root->doc.isEmpty() && md->getGroupHasDocs()) + { + warn(md->getGroupFileName(),md->getGroupStartLine(), + "Warning: Member documentation for %s found several times in %s groups!\n" + "%s:%d: The member will remain in group %s, and won't be put into group %s", + md->name().data(), Grouping::getGroupPriName( pri ), + root->fileName.data(), root->startLine, + mgd->name().data(), + fgd->name().data() + ); + } + } } - if( moveit ) + if (moveit) { mgd->removeMember(md); insertit = TRUE; } } - if( insertit ) + if (insertit) { + //printf("insertMember\n"); fgd->insertMember(md); md->setGroupDef(fgd,pri,root->fileName,root->startLine,root->doc.length() != 0); ClassDef *cd = md->getClassDefOfAnonymousType(); diff --git a/src/index.cpp b/src/index.cpp index 47bdaab..b07200d 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -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) { HtmlHelp *htmlHelp=0; @@ -381,7 +396,8 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level) started=TRUE; } //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()) { //printf("Writing class %s\n",cd->displayName().data()); @@ -454,7 +470,8 @@ void writeClassTree(BaseClassList *cl,int level) for ( ; cli.current() ; ++cli) { ClassDef *cd=cli.current()->classDef; - if (cd->isVisibleInHierarchy() && !cd->visited) + if (cd->isVisibleInHierarchy() && hasVisibleRoot(cd->baseClasses())) + //if (cd->isVisibleInHierarchy() && !cd->visited) { if (!started) { @@ -462,7 +479,8 @@ void writeClassTree(BaseClassList *cl,int level) if (hasFtvHelp) ftvHelp->incContentsDepth(); 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 (hasHtmlHelp) @@ -499,7 +517,8 @@ void writeClassTreeNode(ClassDef *cd,bool hasHtmlHelp,bool hasFtvHelp,bool &star { 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 (hasHtmlHelp) @@ -583,7 +602,8 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started) if (hasFtvHelp) ftvHelp->incContentsDepth(); 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()) { //printf("Writing class %s isLinkable()=%d isLinkableInProject()=%d cd->templateMaster()=%p\n", @@ -2412,7 +2432,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) } // write classes - if(gd->classSDict->count()>0) + if (gd->classSDict->count()>0) { if(htmlHelp) { @@ -2616,19 +2636,11 @@ void writeGroupIndex(OutputList &ol) writeGroupHierarchy(ol); if (hasHtmlHelp) { - //writeGroupTree(ol); // KPW - modified to write hierarchial HMTL Help - //if(!Config::instance()->get("")) - //{ - htmlHelp->decContentsDepth(); - //} + htmlHelp->decContentsDepth(); } if (hasFtvHelp) { - //writeGroupTree(ol); // KPW - modified to write hierarchial FTV Help - //if(!Config::instance()->get("")) - //{ - ftvHelp->decContentsDepth(); - //} + ftvHelp->decContentsDepth(); } endFile(ol); ol.popGeneratorState(); diff --git a/src/latexgen.cpp b/src/latexgen.cpp index c02428c..f851e19 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -147,6 +147,10 @@ void LatexGenerator::init() err("Could not open file %s for writing\n",fileName.data()); 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); t << "all: refman.dvi" << endl << endl @@ -194,16 +198,16 @@ void LatexGenerator::init() << endl << "refman.dvi: refman.tex doxygen.sty" << endl << "\techo \"Running latex...\"" << endl - << "\tlatex refman.tex" << endl + << "\t" << latex_command << " refman.tex" << endl << "\techo \"Running makeindex...\"" << endl - << "\tmakeindex refman.idx" << endl + << "\t" << mkidx_command << " refman.idx" << endl << "\techo \"Rerunning latex....\"" << endl - << "\tlatex refman.tex" << endl + << "\t" << latex_command << " refman.tex" << endl << "\tlatex_count=5 ; \\" << endl << "\twhile egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\\" << endl << "\t do \\" << 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 done" << endl << endl << "clean:" << endl diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 69bcf9f..dfcea4a 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -380,11 +380,10 @@ MemberDef::~MemberDef() void MemberDef::setReimplements(MemberDef *md) { - //if (m_templateMaster) - //{ - // m_templateMaster->setReimplements(md); - //} - redefines=md; + //if (redefines==0) redefines = new MemberList; + //if (redefines->find(md)==-1) redefines->inSort(md); + + redefines = md; } void MemberDef::insertReimplementedBy(MemberDef *md) @@ -394,10 +393,13 @@ void MemberDef::insertReimplementedBy(MemberDef *md) m_templateMaster->insertReimplementedBy(md); } 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; } @@ -1315,7 +1317,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, } MemberDef *bmd=reimplements(); - ClassDef *bcd=0; + ClassDef *bcd=0; if (bmd && (bcd=bmd->getClassDef())) { // write class that contains a member that is reimplemented by this one @@ -1342,7 +1344,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, if (bd==0) bd=bcd; ol.writeObjectLink(bd->getReference(),bd->getOutputFileBase(), bmd->anchor(),bcd->name()); - + //ol.writeObjectLink(bcd->getReference(),bcd->getOutputFileBase(), // bmd->anchor(),bcd->name()); if ( bd->isLinkableInProject() ) @@ -1374,6 +1376,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, //ol.writeString("."); } + MemberList *bml=reimplementedBy(); if (bml) { diff --git a/src/memberdef.h b/src/memberdef.h index 78818b9..51c0f7c 100644 --- a/src/memberdef.h +++ b/src/memberdef.h @@ -164,7 +164,7 @@ class MemberDef : public Definition // relation to other members void setReimplements(MemberDef *md); void insertReimplementedBy(MemberDef *md); - MemberDef *reimplements() const; + MemberDef *reimplements() const; MemberList *reimplementedBy() const; // enumeration specific members @@ -249,9 +249,9 @@ class MemberDef : public Definition private: ClassDef *classDef; // member of or related to 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 *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 MemberDef *memDef; // member definition for this declaration MemberDef *memDec; // member declaration for this definition @@ -1001,6 +1001,7 @@ static int yyread(char *buf,int max_size) ID [a-z_A-Z][a-z_A-Z0-9]* B [ \t] BN [ \t\r\n] +CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) %option noyywrap @@ -1213,6 +1214,9 @@ BN [ \t\r\n] g_defArgsStr+=yytext; } */ +<FindDefineArgs>{CHARLIT} { + g_defArgsStr+=yytext; + } <FindDefineArgs>\" { g_defArgsStr+=*yytext; BEGIN(ReadString); diff --git a/src/translator_br.h b/src/translator_br.h index 4959f89..e81ef2b 100644 --- a/src/translator_br.h +++ b/src/translator_br.h @@ -1009,7 +1009,7 @@ class TranslatorBrazilian: public Translator "Se a tag \\c MAX_DOT_GRAPH_HEIGHT no arquivo de configuração tem o valor" "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" "As caixas no grafo acima tem as seguintes interpretações:\n" "<ul>\n" diff --git a/src/translator_cn.h b/src/translator_cn.h index e0131d8..2e5d54f 100644 --- a/src/translator_cn.h +++ b/src/translator_cn.h @@ -951,7 +951,7 @@ class TranslatorChinese : public TranslatorAdapter_1_2_13 "\\endcode\n" "Èç¹ûÔÚÅäÖÃÎļþÖÐÖ¸¶¨ÁË"CN_SPC"MAX_DOT_GRAPH_HEIGHT"CN_SPC"µÄֵΪ200£¬" "Ôò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" "ÒÔÉÏͼÐÎÖеľØÐÎÓÐÈçϵĺ¬Ò壺\n" "<ul>\n" diff --git a/src/translator_cz.h b/src/translator_cz.h index 07941bb..a0001ca 100644 --- a/src/translator_cz.h +++ b/src/translator_cz.h @@ -1211,7 +1211,7 @@ class TranslatorCzech : public Translator "\\endcode\n" "Pokud je položka \\c MAX_DOT_GRAPH_HEIGHT konfiguraèního souboru " "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" "Bloky (tj. uzly) v uvedeném grafu mají následující význam:\n" "<ul>\n" diff --git a/src/translator_de.h b/src/translator_de.h index 3426f46..db3427e 100644 --- a/src/translator_de.h +++ b/src/translator_de.h @@ -1082,7 +1082,7 @@ class TranslatorGerman : public Translator "\\endcode\n\n" "Setzen des Tags \\c MAX_DOT_GRAPH_HEIGHT in der Konfigurationsdatei " "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" "Die Rechtecke in obigem Graphen bedeuten:\n" "<ul>\n" diff --git a/src/translator_dk.h b/src/translator_dk.h index 9e72516..55ee6bd 100644 --- a/src/translator_dk.h +++ b/src/translator_dk.h @@ -1055,7 +1055,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 "\\endcode\n" "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "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" "The boxes in the above graph have the following meaning:\n" "<ul>\n" diff --git a/src/translator_en.h b/src/translator_en.h index 35ee638..258f6a1 100644 --- a/src/translator_en.h +++ b/src/translator_en.h @@ -1072,7 +1072,7 @@ class TranslatorEnglish : public Translator "\\endcode\n" "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "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" "The boxes in the above graph have the following meaning:\n" "<ul>\n" diff --git a/src/translator_es.h b/src/translator_es.h index fa35a76..49e47e7 100644 --- a/src/translator_es.h +++ b/src/translator_es.h @@ -947,7 +947,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_2_7 "\\endcode\n" "Si la etiqueta \\c MAX_DOT_GRAPH_HEIGHT en el archivo de configuración " "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" "Las cajas en el gráfico arriba tienen el significado que sigue:\n" "<ul>\n" diff --git a/src/translator_fr.h b/src/translator_fr.h index 3c6f5a3..4611501 100644 --- a/src/translator_fr.h +++ b/src/translator_fr.h @@ -939,7 +939,7 @@ class TranslatorFrench : public Translator "\\endcode\n" "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:" - "<p><center><img src=\"graph_legend.png\"></center>\n" + "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p>\n" "Les rectangles du graphe ci-dessus ont la signification suivante:\n" "<ul>\n" diff --git a/src/translator_gr.h b/src/translator_gr.h index ce71bfd..35988b3 100644 --- a/src/translator_gr.h +++ b/src/translator_gr.h @@ -1043,7 +1043,7 @@ class TranslatorGreek : public TranslatorAdapter_1_2_11 "\\endcode\n" "Áí ç åôéêÝôá \\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" "Ôá êïõôéÜ óôï ðáñáðÜíù äéÜãñáììá Ý÷ïõí ôçí áêüëïõèç óçìáóßá:\n" "<ul>\n" diff --git a/src/translator_hr.h b/src/translator_hr.h index dbf26a7..100d53c 100644 --- a/src/translator_hr.h +++ b/src/translator_hr.h @@ -760,7 +760,7 @@ class TranslatorCroatian : public Translator "\\endcode\n" "Ako je \\c MAX_DOT_GRAPH_HEIGHT tag u konfiguracijskoj datoteci " "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" "Pravokutnici imaju slijedeæe znaèenje:\n" "<ul>\n" diff --git a/src/translator_hu.h b/src/translator_hu.h index d477b1e..7f1ea5c 100644 --- a/src/translator_hu.h +++ b/src/translator_hu.h @@ -936,7 +936,7 @@ class TranslatorHungarian : public TranslatorAdapter_1_2_1 "\\endcode\n" "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:" - "<p><center><img src=\"graph_legend.png\"></center>\n" + "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p>\n" "Az ábrán levõ dobozok jelentése:\n" "<ul>\n" diff --git a/src/translator_it.h b/src/translator_it.h index f3ed770..3d49e6a 100644 --- a/src/translator_it.h +++ b/src/translator_it.h @@ -1060,7 +1060,7 @@ class TranslatorItalian : public Translator "\\endcode\n" "Se il tag \\c MAX_DOT_GRAPH_HEIGHT nel file di configurazione " "è 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" "I riquadri nel grafo qui sopra hanno il seguente significato:\n" "<ul>\n" diff --git a/src/translator_jp.h b/src/translator_jp.h index f3f028b..8f8df91 100644 --- a/src/translator_jp.h +++ b/src/translator_jp.h @@ -1010,7 +1010,7 @@ class TranslatorJapanese : public Translator "\\endcode\n" "ÀßÄê¥Õ¥¡¥¤¥ëÃæ¤Ç¡¢¥¿¥° \\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" "¾å¤Î¥°¥é¥ÕÆâ¤Î¥Ü¥Ã¥¯¥¹¤Ë¤Ï¼¡¤Î¤è¤¦¤Ê°ÕÌ£¤¬¤¢¤ê¤Þ¤¹¡£\n" "<ul>\n" diff --git a/src/translator_kr.h b/src/translator_kr.h index 98317d7..5d6d9eb 100644 --- a/src/translator_kr.h +++ b/src/translator_kr.h @@ -1010,7 +1010,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 "\\endcode\n" "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "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" "The boxes in the above graph have the following meaning:\n" "<ul>\n" diff --git a/src/translator_nl.h b/src/translator_nl.h index 147664c..631ed08 100644 --- a/src/translator_nl.h +++ b/src/translator_nl.h @@ -685,7 +685,7 @@ class TranslatorDutch : public Translator "\\endcode\n" "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:" - "<p><center><img src=\"graph_legend.png\"></center>\n" + "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p>\n" "De rechthoeken in the bovenstaande graaf hebben de volgende betekenis:\n" "<ul>\n" diff --git a/src/translator_no.h b/src/translator_no.h index f888517..65a829c 100644 --- a/src/translator_no.h +++ b/src/translator_no.h @@ -742,7 +742,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 "\\endcode\n" "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "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" "The boxes in the above graph have the following meaning:\n" "<ul>\n" diff --git a/src/translator_pl.h b/src/translator_pl.h index ba2fa49..bee4553 100644 --- a/src/translator_pl.h +++ b/src/translator_pl.h @@ -938,7 +938,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_1 "\\endcode\n" "Je¶li znacznik \\c MAX_DOT_GRAPH_HEIGHT w pliku konfiguracji " "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" "Pude³ka w powy¿szym wykresie maj± nastêpuj±ce znaczenie:\n" "<ul>\n" diff --git a/src/translator_pt.h b/src/translator_pt.h index 6d73bbd..bc32c8a 100644 --- a/src/translator_pt.h +++ b/src/translator_pt.h @@ -1051,7 +1051,7 @@ class TranslatorPortuguese : public Translator "\\endcode\n" "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:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p>\n" "As caixas no grafo anterior têm as seguintes interpretações:\n" "<ul>\n" diff --git a/src/translator_ro.h b/src/translator_ro.h index 818cda9..3383e0d 100644 --- a/src/translator_ro.h +++ b/src/translator_ro.h @@ -24,17 +24,25 @@ * * If you have suggestions, please mail the comments and text proposals to the address * shown aprox.10 lines above + * + * ------------------------------------------- + * Project start : 20.Sep.2k + * Last Doxygen version covered : 1.2.14 + * Last revision : 07.Mar.2k2 + * ------------------------------------------- + * + * Revision history + * ---------------- + * 20.Sep.2k First version, covering Doxygen 1.2.1 * - * Project start: - * -------------- - * 20.Sep.2k + * 07.Mar.2k2 Second revision, covering Doxygen 1.2.14 + * - fixed some bugs */ #ifndef TRANSLATOR_RO_H #define TRANSLATOR_RO_H -#include "translator_adapter.h" -class TranslatorRomanian: public TranslatorAdapter_1_2_1 +class TranslatorRomanian: public Translator { public: @@ -49,18 +57,24 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 */ virtual QCString idLanguage() { return "romanian"; } - /*! Used to get the command(s) for the language support. This method - * was designed for languages which do not prefer babel package. - * If this methods returns empty string, then the latexBabelPackage() - * method is used to generate the command for using the babel package. + /*! Used to get the LaTeX command(s) for the language support. + * This method should return string with commands that switch + * LaTeX to the desired language. For example + * <pre>"\\usepackage[german]{babel}\n" + * </pre> + * or + * <pre>"\\usepackage{polski}\n" + * "\\usepackage[latin2]{inputenc}\n" + * "\\usepackage[T1]{fontenc}\n" + * </pre> + * + * The English LaTeX does not use such commands. Because of this + * the empty string is returned in this implementation. */ virtual QCString latexLanguageSupportCommand() { return "\\usepackage{romanian}\n"; } - /*! returns the name of the package that is included by LaTeX */ - virtual QCString latexBabelPackage() - { return "romanian"; } /*! return the language charset. This will be used for the HTML output */ virtual QCString idLanguageCharset() @@ -96,7 +110,17 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 /*! header that is put before the list of member attributes. */ virtual QCString trMemberDataDocumentation() - { return "Documentaþia Datelor membre"; } + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Documentaþia Câmpurilor"; + } + else + { + return "Documentaþia Datelor membre"; + } + + } /*! this is the text of a link put after brief descriptions. */ virtual QCString trMore() @@ -140,12 +164,6 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 virtual QCString trDefinedIn() { return "definit în"; } - /*! put as in introduction in the verbatim header file of a class. - * parameter f is the name of the include file. - */ - virtual QCString trVerbatimText(const char *f) - { return (QCString)"Acesta este textul original al fiºierului inclus "+f; } - // quick reference sections /*! This is put above each page as a link to the list of all groups of @@ -160,7 +178,17 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 /*! This is put above each page as a link to the list of annotated classes */ virtual QCString trCompoundList() - { return "Lista Componenþilor"; } + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Structuri de Date"; + } + else + { + return "Lista Membrilor Componenþi"; + } + + } /*! This is put above each page as a link to the list of documented files */ virtual QCString trFileList() @@ -172,11 +200,31 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 /*! This is put above each page as a link to all members of compounds. */ virtual QCString trCompoundMembers() - { return "Membrii Componenþi"; }//cu articol hotarat + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Câmpurile de Date"; + } + else + { + return "Membrii Componenþi"; //cu articol hotarat + } + + } /*! This is put above each page as a link to all members of files. */ virtual QCString trFileMembers() - { return "Membrii din Fiºier"; }//cu articol hotarat + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Globale"; + } + else + { + return "Membrii din Fiºier"; //cu articol hotarat + } + + } /*! This is put above each page as a link to all related pages. */ virtual QCString trRelatedPages() @@ -192,14 +240,14 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 /*! This is an introduction to the class hierarchy. */ virtual QCString trClassHierarchyDescription() - { return "Aceastã listã de legãturi este sortatã în mare, " + { return "Aceastã listã de legãturi este sortatã în general, " "dar nu complet, în ordine alfabeticã:"; } /*! This is an introduction to the list with all files. */ virtual QCString trFileListDescription(bool extractAll) { - QCString result="Aici este lista tuturor "; + QCString result="Aceasta este lista tuturor "; result+="fiºierelor"; if (!extractAll) result+=" documentate"; result+=", cu scurte descrieri:"; @@ -208,54 +256,102 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 /*! This is an introduction to the annotated compound list. */ virtual QCString trCompoundListDescription() - { return "Aici sunt clasele, structurile, uniunile ºi interfeþele" - ", cu scurte descrieri"; + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Acestea sunt structurile de date, cu scurte descrieri:"; + } + else + { + return "Acestea sunt clasele, structurile, uniunile ºi interfeþele" + ", cu scurte descrieri:"; + } + } /*! This is an introduction to the page with all class members. */ virtual QCString trCompoundMembersDescription(bool extractAll) { - QCString result="Aici este lista tuturor "; - result+="membrilor "; + QCString result="Aceasta este lista tuturor "; + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="câmpurilor "; + if (!extractAll) result+=" documentate "; + result+="din structuri si uniuni "; + } + else + { + result+="membrilor "; if (!extractAll) result+="documentaþi "; - result+="din toate clasele, cu legãturi cãtre "; - + result+="din toate clasele "; + } + result+=", cu legãturi cãtre "; if (extractAll) - result+="documentaþia clasei pentru fiecare membru în parte:"; + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="documentaþia structurii/uniunii pentru fiecare câmp în parte:"; + } + else + { + result+="documentaþia clasei pentru fiecare membru în parte:"; + } + } else - result+="clasele de care aparþin:"; + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="structurile/uniunile de care aparþin:"; + } + else + { + result+="clasele de care aparþin:"; + } + } + return result; } /*! This is an introduction to the page with all file members. */ virtual QCString trFileMembersDescription(bool extractAll) { - QCString result="Aici este lista tuturor "; - result+="membrilor "; + QCString result="Aceasta este lista tuturor "; + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="funcþiilor, variabilelor, define-urilor, enum-urilor ºi typedef-urilor"; + if (!extractAll) result+=" documentate"; + } + else + { + result+="membrilor "; if (!extractAll) result+="documentaþi "; - result+="din toate fiºierele, cu legãturi cãtre "; + result+="din toate fiºierele"; + } + result+=", cu legãturi cãtre "; if (extractAll) - result+="documentaþia fiºierului pentru fiecare membru în parte:"; - else result+="fiºierele de care aparþin:"; + else + result+="documentaþia aferentã:"; + return result; } /*! This is an introduction to the page with the list of all header files. */ virtual QCString trHeaderFilesDescription() - { return "Aici sunt fiºierele Header care fac parte din API:"; } + { return "Aceastea sunt fiºierele Header care fac parte din API:"; } /*! This is an introduction to the page with the list of all examples */ virtual QCString trExamplesDescription() - { return "Aici este lista tuturor exemplelor:"; } + { return "Aceasta este lista tuturor exemplelor:"; } /*! This is an introduction to the page with the list of related pages */ virtual QCString trRelatedPagesDescription() - { return "Aici este lista tuturor documentaþiilor înrudite:"; } + { return "Aceasta este lista tuturor documentaþiilor înrudite:"; } /*! This is an introduction to the page with the list of class/file groups */ virtual QCString trModulesDescription() - { return "Aici este lista tuturor modulelor:"; } + { return "Aceasta este lista tuturor modulelor:"; } /*! This sentences is used in the annotated class/file lists if no brief * description is given. @@ -286,7 +382,17 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 * annotated compound index. */ virtual QCString trCompoundIndex() - { return "Indexul Componenþilor"; } + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Indexul Structurilor de Date"; + } + else + { + return "Indexul Componenþilor"; + } + + } /*! This is used in LaTeX as the title of the chapter with the * list of all files. @@ -304,7 +410,17 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 * the documentation of all classes, structs and unions. */ virtual QCString trClassDocumentation() - { return "Documentaþia Claselor"; } + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Documentaþia Structurilor de Date"; + } + else + { + return "Documentaþia Claselor"; + } + + } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all files. @@ -370,10 +486,6 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 virtual QCString trEnumerationValues() { return "Valori enum"; } - /*! This is used in man pages as the author section. */ - virtual QCString trAuthor() - { return "Autor"; } - /*! This is used in the documentation of a file before the list of * documentation blocks for defines */ @@ -420,20 +532,24 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 * the list of links to documented compounds */ virtual QCString trCompounds() - { return "Membri"; } + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Structuri de Date"; + } + else + { + return "Membri"; + } - /*! This is used in the documentation of a group before the list of - * links to documented files - */ - virtual QCString trFiles() - { return "Fiºiere"; } + } /*! This is used in the standard footer of each page and indicates when * the page was generated */ virtual QCString trGeneratedAt(const char *date,const char *projName) { - QCString result=(QCString)"Generat la "+date; + QCString result=(QCString)"Generat "+date; if (projName) result+=(QCString)" pentru "+projName; result+=(QCString)" de cãtre"; return result; @@ -475,10 +591,6 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 virtual QCString trDate() { return "Data"; } - /*! this text is generated when the \\author command is used. */ - virtual QCString trAuthors() - { return "Autorul/Autorii"; } - /*! this text is generated when the \\return command is used. */ virtual QCString trReturns() { return "Întoarce"; } @@ -508,7 +620,7 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 /*! used as an introduction to the namespace list */ virtual QCString trNamespaceListDescription(bool extractAll) { - QCString result="Aici este lista tuturor "; + QCString result="Aceasta este lista tuturor "; result+="namespace-urilor "; if (!extractAll) result+="documentate "; result+=", cu scurte descrieri:"; @@ -657,7 +769,7 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 /*! This is an introduction to the page with all namespace members */ virtual QCString trNamespaceMemberDescription(bool extractAll) { - QCString result="Aici este lista tuturor membrilor "; + QCString result="Aceasta este lista tuturor membrilor "; if (!extractAll) result+="documentaþi "; result+="din toate namespace-urile, cu legãturi cãtre "; @@ -850,7 +962,15 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 } virtual QCString trPublicAttribs() { - return "Atribute Publice"; + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Câmpuri de Date"; + } + else + { + return "Atribute Publice"; + } + } virtual QCString trStaticPublicAttribs() { @@ -965,7 +1085,7 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 "\\endcode\n" "Dacã tagul \\c MAX_DOT_GRAPH_HEIGHT din fiºierul de configuraþie " "Este setat la 200 acesta este graful rezultat:" - "<p><center><img src=\"graph_legend.png\"></center>\n" + "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p>\n" "Cãsuþele din partea de sus au urmãtoarea semnificaþie:\n" "<ul>\n" @@ -1009,6 +1129,279 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 return "Listã de teste"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.1 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a section header for KDE-2 IDL methods */ + virtual QCString trDCOPMethods() + { + return "Metode DCOP"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.2 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a section header for IDL properties */ + virtual QCString trProperties() + { + return "Proprietãþi"; + } + /*! Used as a section header for IDL property documentation */ + virtual QCString trPropertyDocumentation() + { + return "Documentaþia Proprietãþilor"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.4 +////////////////////////////////////////////////////////////////////////// + + /*! Used for Java interfaces in the summary section of Java packages */ + virtual QCString trInterfaces() + { + return "Interfeþe"; + } + /*! Used for Java classes in the summary section of Java packages */ + virtual QCString trClasses() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Structuri de Date"; + } + else + { + return "Clase"; + } + } + /*! Used as the title of a Java package */ + virtual QCString trPackage(const char *name) + { + return (QCString)"Pachet "+name; + } + /*! Title of the package index page */ + virtual QCString trPackageList() + { + return "Lista Pachetelor"; + } + /*! The description of the package index page */ + virtual QCString trPackageListDescription() + { + return "Acestea sunt pachetele, însoþite, acolo unde este cazul, de scurte descrieri:"; + } + /*! The link name in the Quick links header for each page */ + virtual QCString trPackages() + { + return "Pachete"; + } + /*! Used as a chapter title for Latex & RTF output */ + virtual QCString trPackageDocumentation() + { + return "Documentaþia Pachetelor"; + } + /*! Text shown before a multi-line define */ + virtual QCString trDefineValue() + { + return "Valoare:"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.5 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a marker that is put before a \\bug item */ + virtual QCString trBug() + { + return "Bug"; + } + /*! Used as the header of the bug list */ + virtual QCString trBugList() + { + return "Lista de Buguri"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.6 +////////////////////////////////////////////////////////////////////////// + + /*! Used as ansicpg for RTF file + * + * The following table shows the correlation of Charset name, Charset Value and + * <pre> + * Codepage number: + * Charset Name Charset Value(hex) Codepage number + * ------------------------------------------------------ + * DEFAULT_CHARSET 1 (x01) + * SYMBOL_CHARSET 2 (x02) + * OEM_CHARSET 255 (xFF) + * ANSI_CHARSET 0 (x00) 1252 + * RUSSIAN_CHARSET 204 (xCC) 1251 + * EE_CHARSET 238 (xEE) 1250 + * GREEK_CHARSET 161 (xA1) 1253 + * TURKISH_CHARSET 162 (xA2) 1254 + * BALTIC_CHARSET 186 (xBA) 1257 + * HEBREW_CHARSET 177 (xB1) 1255 + * ARABIC _CHARSET 178 (xB2) 1256 + * SHIFTJIS_CHARSET 128 (x80) 932 + * HANGEUL_CHARSET 129 (x81) 949 + * GB2313_CHARSET 134 (x86) 936 + * CHINESEBIG5_CHARSET 136 (x88) 950 + * </pre> + * + */ + virtual QCString trRTFansicp() + { + return "1250"; //EASTEUROPE_CHARSET [don't know if this is correct:Ro has a 0x418 index in that file] + } + + + /*! Used as ansicpg for RTF fcharset + * \see trRTFansicp() for a table of possible values. + */ + virtual QCString trRTFCharSet() + { + return "0x418"; // well, I could not find a decent doc about this one - I think Ro code is 0x418 + } + + /*! Used as header RTF general index */ + virtual QCString trRTFGeneralIndex() + { + return "Index"; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trClass(bool first_capital, bool singular) + { + QCString result((first_capital ? "Clas" : "clas")); + result+= singular ? "a":"ele"; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trFile(bool first_capital, bool singular) + { + QCString result((first_capital ? "Fiºier" : "fiºier")); + result+= singular ? "ul":"ele"; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trNamespace(bool first_capital, bool singular) + { + QCString result((first_capital ? "Namespace" : "namespace")); + result+= singular ? "-ul":"-urile"; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trGroup(bool first_capital, bool singular) + { + QCString result((first_capital ? "Grupu" : "grupu")); + result+= singular ? "l":"rile"; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trPage(bool first_capital, bool singular) + { + QCString result((first_capital ? "Pagin" : "pagin")); + result+= singular ? "a":"ile"; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trMember(bool first_capital, bool singular) + { + QCString result((first_capital ? "Membr" : "membr")); + result+= singular ? "ul":"ii"; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trField(bool first_capital, bool singular) + { + QCString result((first_capital ? "Câmp" : "câmp")); + result+= singular ? "ul":"urile"; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trGlobal(bool first_capital, bool singular) + { + QCString result((first_capital ? "Global" : "global")); + if (!singular) result+="e"; + return result; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.7 +////////////////////////////////////////////////////////////////////////// + + /*! This text is generated when the \\author command is used and + * for the author section in man pages. */ + virtual QCString trAuthor(bool first_capital, bool singular) + { + QCString result((first_capital ? "Autor" : "autor")); + result+= singular ? "ul":"ii"; + return result; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.11 +////////////////////////////////////////////////////////////////////////// + + /*! This text is put before the list of members referenced by a member + */ + virtual QCString trReferences() + { + return "Referinþe"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.13 +////////////////////////////////////////////////////////////////////////// + + /*! used in member documentation blocks to produce a list of + * members that are implemented by this one. + */ + virtual QCString trImplementedFromList(int numEntries) + { + return "Implementeazã "+trWriteList(numEntries)+"."; + } + + /*! used in member documentation blocks to produce a list of + * all members that implement this abstract member. + */ + virtual QCString trImplementedInList(int numEntries) + { + return "Implementat în "+trWriteList(numEntries)+"."; + } + }; #endif diff --git a/src/translator_ru.h b/src/translator_ru.h index 61b3fbc..e9f330a 100644 --- a/src/translator_ru.h +++ b/src/translator_ru.h @@ -1095,7 +1095,7 @@ class TranslatorRussian : public Translator "\\endcode\n" "åÓÌÉ \\c MAX_DOT_GRAPH_HEIGHT × ËÏÎÆÉÇÕÒÁÃÉÏÎÎÏÍ ÆÁÊÌÅ " "ÕÓÔÁÎÏ×ÌÅÎ × 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" "ðÒÑÍÏÕÇÏÌØÎÉËÉ × ÜÔÏÍ ÇÒÁÆÅ ÉÍÅÀÔ ÓÌÅÄÕÀÝÅÅ ÚÎÁÞÅÎÉÅ:\n" "<ul>\n" diff --git a/src/translator_si.h b/src/translator_si.h index 0193266..9e7ccdf 100644 --- a/src/translator_si.h +++ b/src/translator_si.h @@ -694,7 +694,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_2_13 "\\endcode\n" "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "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" "The boxes in the above graph have the following meaning:\n" "<ul>\n" diff --git a/src/translator_sk.h b/src/translator_sk.h index 6b5e949..3092514 100644 --- a/src/translator_sk.h +++ b/src/translator_sk.h @@ -1069,7 +1069,7 @@ class TranslatorSlovak : public TranslatorAdapter_1_2_13 "\\endcode\n" "Pokia¾ je položka \\c MAX_DOT_GRAPH_HEIGHT konfiguraèného súboru " "nastavená na hodnotu 200, bude vygenerovaný nasledujúci 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" "Bloky (tj. uzly) v uvedenom grafe majú nasledujúci význam:\n" "<ul>\n" diff --git a/src/translator_ua.h b/src/translator_ua.h index 58009ae..77421eb 100644 --- a/src/translator_ua.h +++ b/src/translator_ua.h @@ -1060,7 +1060,7 @@ class TranslatorUkrainian : public TranslatorAdapter_1_2_11 "\\endcode\n" "ñËÝÏ \\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" "ðÒÑÍÏËÕÔÎÉËÉ × ÃØÏÍÕ ÇÒÁƦ ÍÁÀÔØ ÎÁÓÔÕÐÎÉÊ ÚͦÓÔ:\n" "<ul>\n" diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index c5b1fb0..ad3cd72 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -119,13 +119,13 @@ template<class T> class ValStack public: ValStack() : m_values(10), m_sp(0), m_size(10) {} virtual ~ValStack() {} - ValStack(const ValStack &s) + ValStack(const ValStack<T> &s) { m_values=s.m_values.copy(); m_sp=s.m_sp; m_size=s.m_size; } - ValStack &operator=(const ValStack &s) + ValStack &operator=(const ValStack<T> &s) { m_values=s.m_values.copy(); m_sp=s.m_sp; @@ -981,9 +981,8 @@ static void writeMemberReference(QTextStream &t,Definition *def,MemberDef *rmd,c t << rmd->getBodyDef()->getOutputFileBase() << "_1" // encoded `:' character (see util.cpp:convertNameToFile) << rmd->anchor() - << "\">"; - writeXMLString(t,name); - t << "</" << tagName << ">" << endl; + << "\">" << convertToXML(name) << "</" + << tagName << ">" << endl; } else if (rmd->isLinkable() && d && d->isLinkable()) // link to declaration in documentation (in absense of a definition) @@ -992,9 +991,8 @@ static void writeMemberReference(QTextStream &t,Definition *def,MemberDef *rmd,c t << d->getOutputFileBase() << "_1" // encoded `:' character (see util.cpp:convertNameToFile) << rmd->anchor() - << "\">"; - writeXMLString(t,name); - t << "</" << tagName << ">" << endl; + << "\">" << convertToXML(name) + << "</" << tagName << ">" << endl; } } @@ -1017,7 +1015,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De if (md->memberType()==MemberDef::EnumValue) return; ti << " <member id=\"" << md->getOutputFileBase() - << "_1" << md->anchor() << "\">" << md->name() << "</member>" << endl; + << "_1" << md->anchor() << "\">" << convertToXML(md->name()) << "</member>" << endl; QCString scopeName; if (md->getClassDef()) @@ -1087,16 +1085,13 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De t << "</type>" << endl; } - t << " <name>"; - writeXMLString(t,md->name()); - - t << "</name>" << endl; + t << " <name>" << convertToXML(md->name()) << "</name>" << endl; MemberDef *rmd = md->reimplements(); if (rmd) { t << " <reimplements id=\"" << rmd->getOutputFileBase() << "_1" << rmd->anchor() << "\">" - << rmd->name() << "</reimplements>"; + << convertToXML(rmd->name()) << "</reimplements>"; } MemberList *rbml = md->reimplementedBy(); if (rbml) @@ -1106,7 +1101,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De { t << " <reimplementedby id=\"" << rmd->getOutputFileBase() << "_1" << rmd->anchor() << "\">" - << rmd->name() << "</reimplementedby>"; + << convertToXML(rmd->name()) << "</reimplementedby>"; } } @@ -1346,8 +1341,8 @@ static void writeListOfAllMembers(ClassDef *cd,QTextStream &t) { t << " ambiguityscope=\"" << mi->ambiguityResolutionScope << "\""; } - t << "><scope>" << cd->name() << "</scope><name>" << - md->name() << "</name></member>" << endl; + t << "><scope>" << convertToXML(cd->name()) << "</scope><name>" << + convertToXML(md->name()) << "</name></member>" << endl; } } t << " </listofallmembers>" << endl; @@ -1376,7 +1371,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti) if (cd->templateMaster()!=0) return; // skip generated template instances. ti << " <compound id=\"" << cd->getOutputFileBase() - << "\"><name>" << cd->name() << "</name>" << endl; + << "\"><name>" << convertToXML(cd->name()) << "</name>" << endl; QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY"); QCString fileName=outputDirectory+"/xml/"+cd->getOutputFileBase()+".xml"; @@ -1540,7 +1535,7 @@ static void generateXMLForNamespace(NamespaceDef *nd,QTextStream &ti) if (nd->isReference()) return; // skip external references ti << " <compound id=\"" << nd->getOutputFileBase() - << "\"><name>" << nd->name() << "</name>" << endl; + << "\"><name>" << convertToXML(nd->name()) << "</name>" << endl; QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY"); QCString fileName=outputDirectory+"/xml/"+nd->getOutputFileBase()+".xml"; @@ -1630,7 +1625,7 @@ static void generateXMLForFile(FileDef *fd,QTextStream &ti) if (fd->isReference()) return; // skip external references ti << " <compound id=\"" << fd->getOutputFileBase() - << "\"><name>" << fd->name() << "</name>" << endl; + << "\"><name>" << convertToXML(fd->name()) << "</name>" << endl; QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY"); QCString fileName=outputDirectory+"/xml/"+fd->getOutputFileBase()+".xml"; @@ -1763,7 +1758,7 @@ static void generateXMLForGroup(GroupDef *gd,QTextStream &ti) if (gd->isReference()) return; // skip external references ti << " <compound id=\"" << gd->getOutputFileBase() - << "\"><name>" << gd->name() << "</name>" << endl; + << "\"><name>" << convertToXML(gd->name()) << "</name>" << endl; QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY"); QCString fileName=outputDirectory+"/xml/"+gd->getOutputFileBase()+".xml"; @@ -1862,7 +1857,7 @@ static void generateXMLForPage(PageInfo *pi,QTextStream &ti) if (pi->isReference()) return; ti << " <compound id=\"" << pi->getOutputFileBase() - << "\"><name>" << pi->name << "</name>" << endl; + << "\"><name>" << convertToXML(pi->name) << "</name>" << endl; QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY"); QCString fileName=outputDirectory+"/xml/"+pi->getOutputFileBase()+".xml"; @@ -1879,7 +1874,7 @@ static void generateXMLForPage(PageInfo *pi,QTextStream &ti) t << " <compounddef id=\""; if (Config_getBool("CASE_SENSE_NAMES")) t << pi->name; else t << pi->name.lower(); t << "\" kind=\"page\">" << endl; - t << " <compoundname>" << pi->name << "</compoundname>" << endl; + t << " <compoundname>" << convertToXML(pi->name) << "</compoundname>" << endl; SectionInfo *si = Doxygen::sectionDict.find(pi->name); if (si) { |