From 40c0613db241b9015265b2b9f3673e0c7869d3c2 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sun, 17 Mar 2002 20:13:31 +0000 Subject: Release-1.2.14-20020317 --- INSTALL | 4 +- README | 4 +- VERSION | 2 +- addon/doxmlparser/test/main.cpp | 32 +-- doc/config.doc | 15 ++ doc/language.doc | 6 +- packages/rpm/doxygen.spec | 2 +- src/code.l | 56 ++--- src/config.l | 17 ++ src/doxygen.cpp | 30 ++- src/groupdef.cpp | 57 +++-- src/index.cpp | 44 ++-- src/latexgen.cpp | 12 +- src/memberdef.cpp | 21 +- src/memberdef.h | 4 +- src/pre.l | 4 + src/translator_br.h | 2 +- src/translator_cn.h | 2 +- src/translator_cz.h | 2 +- src/translator_de.h | 2 +- src/translator_dk.h | 2 +- src/translator_en.h | 2 +- src/translator_es.h | 2 +- src/translator_fr.h | 2 +- src/translator_gr.h | 2 +- src/translator_hr.h | 2 +- src/translator_hu.h | 2 +- src/translator_it.h | 2 +- src/translator_jp.h | 2 +- src/translator_kr.h | 2 +- src/translator_nl.h | 2 +- src/translator_no.h | 2 +- src/translator_pl.h | 2 +- src/translator_pt.h | 2 +- src/translator_ro.h | 517 +++++++++++++++++++++++++++++++++++----- src/translator_ru.h | 2 +- src/translator_si.h | 2 +- src/translator_sk.h | 2 +- src/translator_ua.h | 2 +- src/xmlgen.cpp | 41 ++-- 40 files changed, 686 insertions(+), 226 deletions(-) diff --git a/INSTALL b/INSTALL index 7c2d118..83f9df6 100644 --- a/INSTALL +++ b/INSTALL @@ -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) diff --git a/README b/README index ba73328..b29c29b 100644 --- a/README +++ b/README @@ -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) diff --git a/VERSION b/VERSION index 417bc95..aec6593 100644 --- a/VERSION +++ b/VERSION @@ -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(ss); + IDocSimpleSect *ss = dynamic_cast(doc); ASSERT(ss!=0); } break; @@ -188,91 +188,91 @@ void DumpDoc(IDoc *doc) break; case IDoc::HRuler: { - IDocHRuler *hr = dynamic_cast(hr); + IDocHRuler *hr = dynamic_cast(doc); ASSERT(hr!=0); } break; case IDoc::LineBreak: { - IDocLineBreak *lb = dynamic_cast(lb); + IDocLineBreak *lb = dynamic_cast(doc); ASSERT(lb!=0); } break; case IDoc::ULink: { - IDocULink *ul = dynamic_cast(ul); + IDocULink *ul = dynamic_cast(doc); ASSERT(ul!=0); } break; case IDoc::EMail: { - IDocEMail *em = dynamic_cast(em); + IDocEMail *em = dynamic_cast(doc); ASSERT(em!=0); } break; case IDoc::Link: { - IDocLink *lk = dynamic_cast(lk); + IDocLink *lk = dynamic_cast(doc); ASSERT(lk!=0); } break; case IDoc::ProgramListing: { - IDocProgramListing *pl = dynamic_cast(pl); + IDocProgramListing *pl = dynamic_cast(doc); ASSERT(pl!=0); } break; case IDoc::CodeLine: { - IDocCodeLine *cl = dynamic_cast(cl); + IDocCodeLine *cl = dynamic_cast(doc); ASSERT(cl!=0); } break; case IDoc::Highlight: { - IDocHighlight *hl = dynamic_cast(hl); + IDocHighlight *hl = dynamic_cast(doc); ASSERT(hl!=0); } break; case IDoc::Formula: { - IDocFormula *fm = dynamic_cast(fm); + IDocFormula *fm = dynamic_cast(doc); ASSERT(fm!=0); } break; case IDoc::Image: { - IDocImage *img = dynamic_cast(img); + IDocImage *img = dynamic_cast(doc); ASSERT(img!=0); } break; case IDoc::DotFile: { - IDocDotFile *df = dynamic_cast(df); + IDocDotFile *df = dynamic_cast(doc); ASSERT(df!=0); } break; case IDoc::IndexEntry: { - IDocIndexEntry *ie = dynamic_cast(ie); + IDocIndexEntry *ie = dynamic_cast(doc); ASSERT(ie!=0); } break; case IDoc::Table: { - IDocTable *tbl = dynamic_cast(tbl); + IDocTable *tbl = dynamic_cast(doc); ASSERT(tbl!=0); } break; case IDoc::Row: { - IDocRow *row = dynamic_cast(row); + IDocRow *row = dynamic_cast(doc); ASSERT(row!=0); } break; case IDoc::Entry: { - IDocEntry *ent = dynamic_cast(ent); + IDocEntry *ent = dynamic_cast(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.
  • \refitem cfg_internal_docs INTERNAL_DOCS
  • \refitem cfg_javadoc_autobrief JAVADOC_AUTOBRIEF
  • \refitem cfg_latex_batchmode LATEX_BATCHMODE +
  • \refitem cfg_latex_cmd_name LATEX_CMD_NAME
  • \refitem cfg_latex_header LATEX_HEADER
  • \refitem cfg_latex_output LATEX_OUTPUT
  • \refitem cfg_macro_expansion MACRO_EXPANSION +
  • \refitem cfg_makeindex_cmd_name MAKEINDEX_CMD_NAME
  • \refitem cfg_man_extension MAN_EXTENSION
  • \refitem cfg_man_links MAN_LINKS
  • \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 +
    \c LATEX_CMD_NAME
    + \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 +
    \c MAKEINDEX_CMD_NAME
    + \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
    \c COMPACT_LATEX
    \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. Romanian Alexandru Iosup aiosup@NOSPAM.yahoo.com - 1.2.1 + up-to-date Russian @@ -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 diff --git a/src/code.l b/src/code.l index ae1168f..adabd5a 100644 --- a/src/code.l +++ b/src/code.l @@ -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 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()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 2002-03-05 + QCString latex_command = Config_getString("LATEX_CMD_NAME"); + QCString mkidx_command = Config_getString("MAKEINDEX_CMD_NAME"); + // end insertion by KONNO Akihisa 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 diff --git a/src/pre.l b/src/pre.l index 6b8b20d..1878f14 100644 --- a/src/pre.l +++ b/src/pre.l @@ -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; } */ +{CHARLIT} { + g_defArgsStr+=yytext; + } \" { 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:" - "

    \n" + "

    \n" "

    \n" "As caixas no grafo acima tem as seguintes interpretações:\n" "

      \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½«Éú³ÉÈçϵÄͼÐΣº" - "

      \n" + "

      \n" "

      \n" "ÒÔÉÏͼÐÎÖеľØÐÎÓÐÈçϵĺ¬Ò壺\n" "

        \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:" - "

        \n" + "

        \n" "

        \n" "Bloky (tj. uzly) v uvedeném grafu mají následující význam:\n" "

          \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:" - "

          \n" + "

          \n" "

          \n" "Die Rechtecke in obigem Graphen bedeuten:\n" "

            \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:" - "

            \n" + "

            \n" "

            \n" "The boxes in the above graph have the following meaning:\n" "

              \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:" - "

              \n" + "

              \n" "

              \n" "The boxes in the above graph have the following meaning:\n" "

                \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:" - "

                \n" + "

                \n" "

                \n" "Las cajas en el gráfico arriba tienen el significado que sigue:\n" "

                  \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:" - "

                  \n" + "

                  \n" "

                  \n" "Les rectangles du graphe ci-dessus ont la signification suivante:\n" "

                    \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 èá Ý÷ïõìå óáí áðïôÝëåóìá ôï áêüëïõèï äéÜãñáììá:" - "

                    \n" + "

                    \n" "

                    \n" "Ôá êïõôéÜ óôï ðáñáðÜíù äéÜãñáììá Ý÷ïõí ôçí áêüëïõèç óçìáóßá:\n" "

                      \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:" - "

                      \n" + "

                      \n" "

                      \n" "Pravokutnici imaju slijedeæe znaèenje:\n" "

                        \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:" - "

                        \n" + "

                        \n" "

                        \n" "Az ábrán levõ dobozok jelentése:\n" "

                          \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:" - "

                          \n" + "

                          \n" "

                          \n" "I riquadri nel grafo qui sopra hanno il seguente significato:\n" "

                            \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 ¤Ë¥»¥Ã¥È¤µ¤ì¤¿" "¾ì¹ç¡¢¼¡¤Î¤è¤¦¤Ê¥°¥é¥Õ¤È¤Ê¤ê¤Þ¤¹¡£" - "

                            \n" + "

                            \n" "

                            \n" "¾å¤Î¥°¥é¥ÕÆâ¤Î¥Ü¥Ã¥¯¥¹¤Ë¤Ï¼¡¤Î¤è¤¦¤Ê°ÕÌ£¤¬¤¢¤ê¤Þ¤¹¡£\n" "

                              \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:" - "

                              \n" + "

                              \n" "

                              \n" "The boxes in the above graph have the following meaning:\n" "

                                \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:" - "

                                \n" + "

                                \n" "

                                \n" "De rechthoeken in the bovenstaande graaf hebben de volgende betekenis:\n" "

                                  \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:" - "

                                  \n" + "

                                  \n" "

                                  \n" "The boxes in the above graph have the following meaning:\n" "

                                    \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:" - "

                                    \n" + "

                                    \n" "

                                    \n" "Pude³ka w powy¿szym wykresie maj± nastêpuj±ce znaczenie:\n" "

                                      \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:" - "

                                      \n" + "

                                      \n" "

                                      \n" "As caixas no grafo anterior têm as seguintes interpretações:\n" "

                                        \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 + *
                                        "\\usepackage[german]{babel}\n"
                                        +     *  
                                        + * or + *
                                        "\\usepackage{polski}\n"
                                        +     *  "\\usepackage[latin2]{inputenc}\n"
                                        +     *  "\\usepackage[T1]{fontenc}\n"
                                        +     *  
                                        + * + * 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:" - "

                                        \n" + "

                                        \n" "

                                        \n" "Cãsuþele din partea de sus au urmãtoarea semnificaþie:\n" "

                                          \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 + *
                                          +     * 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
                                          +     * 
                                          + * + */ + 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, ÐÏÌÕÞÉÔÓÑ ÓÌÅÄÕÀÝÉÊ ÇÒÁÆ:" - "

                                          \n" + "

                                          \n" "

                                          \n" "ðÒÑÍÏÕÇÏÌØÎÉËÉ × ÜÔÏÍ ÇÒÁÆÅ ÉÍÅÀÔ ÓÌÅÄÕÀÝÅÅ ÚÎÁÞÅÎÉÅ:\n" "

                                            \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:" - "

                                            \n" + "

                                            \n" "

                                            \n" "The boxes in the above graph have the following meaning:\n" "

                                              \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:" - "

                                              \n" + "

                                              \n" "

                                              \n" "Bloky (tj. uzly) v uvedenom grafe majú nasledujúci význam:\n" "

                                                \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, ÏÔÒÉÍÁ¤ÍÏ ÎÁÓÔÕÐÎÉÊ ÇÒÁÆ:" - "

                                                \n" + "

                                                \n" "

                                                \n" "ðÒÑÍÏËÕÔÎÉËÉ × ÃØÏÍÕ ÇÒÁƦ ÍÁÀÔØ ÎÁÓÔÕÐÎÉÊ ÚͦÓÔ:\n" "

                                                  \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 ValStack public: ValStack() : m_values(10), m_sp(0), m_size(10) {} virtual ~ValStack() {} - ValStack(const ValStack &s) + ValStack(const ValStack &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 &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 << "" << endl; + << "\">" << convertToXML(name) << "" << 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 << "" << endl; + << "\">" << convertToXML(name) + << "" << endl; } } @@ -1017,7 +1015,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De if (md->memberType()==MemberDef::EnumValue) return; ti << " getOutputFileBase() - << "_1" << md->anchor() << "\">" << md->name() << "" << endl; + << "_1" << md->anchor() << "\">" << convertToXML(md->name()) << "" << endl; QCString scopeName; if (md->getClassDef()) @@ -1087,16 +1085,13 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De t << "" << endl; } - t << " "; - writeXMLString(t,md->name()); - - t << "" << endl; + t << " " << convertToXML(md->name()) << "" << endl; MemberDef *rmd = md->reimplements(); if (rmd) { t << " getOutputFileBase() << "_1" << rmd->anchor() << "\">" - << rmd->name() << ""; + << convertToXML(rmd->name()) << ""; } MemberList *rbml = md->reimplementedBy(); if (rbml) @@ -1106,7 +1101,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De { t << " getOutputFileBase() << "_1" << rmd->anchor() << "\">" - << rmd->name() << ""; + << convertToXML(rmd->name()) << ""; } } @@ -1346,8 +1341,8 @@ static void writeListOfAllMembers(ClassDef *cd,QTextStream &t) { t << " ambiguityscope=\"" << mi->ambiguityResolutionScope << "\""; } - t << ">" << cd->name() << "" << - md->name() << "" << endl; + t << ">" << convertToXML(cd->name()) << "" << + convertToXML(md->name()) << "" << endl; } } t << " " << endl; @@ -1376,7 +1371,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti) if (cd->templateMaster()!=0) return; // skip generated template instances. ti << " getOutputFileBase() - << "\">" << cd->name() << "" << endl; + << "\">" << convertToXML(cd->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 << " getOutputFileBase() - << "\">" << nd->name() << "" << endl; + << "\">" << convertToXML(nd->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 << " getOutputFileBase() - << "\">" << fd->name() << "" << endl; + << "\">" << convertToXML(fd->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 << " getOutputFileBase() - << "\">" << gd->name() << "" << endl; + << "\">" << convertToXML(gd->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 << " getOutputFileBase() - << "\">" << pi->name << "" << endl; + << "\">" << convertToXML(pi->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 << " name; else t << pi->name.lower(); t << "\" kind=\"page\">" << endl; - t << " " << pi->name << "" << endl; + t << " " << convertToXML(pi->name) << "" << endl; SectionInfo *si = Doxygen::sectionDict.find(pi->name); if (si) { -- cgit v0.12