diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2002-07-07 17:23:26 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2002-07-07 17:23:26 (GMT) |
commit | bcbf69496a8e7e703ecf4fb6e5de264f86ebea84 (patch) | |
tree | f08f27e02ce20e8ca59117d6d02be98fbe3c8c24 /src | |
parent | 46570cfd109829f87a17c46e32006f901b9026f4 (diff) | |
download | Doxygen-bcbf69496a8e7e703ecf4fb6e5de264f86ebea84.zip Doxygen-bcbf69496a8e7e703ecf4fb6e5de264f86ebea84.tar.gz Doxygen-bcbf69496a8e7e703ecf4fb6e5de264f86ebea84.tar.bz2 |
Release-1.2.16-20020707
Diffstat (limited to 'src')
-rw-r--r-- | src/classdef.h | 2 | ||||
-rw-r--r-- | src/code.l | 3 | ||||
-rw-r--r-- | src/config.l | 16 | ||||
-rw-r--r-- | src/defargs.l | 2 | ||||
-rw-r--r-- | src/definition.h | 2 | ||||
-rw-r--r-- | src/doc.l | 2 | ||||
-rw-r--r-- | src/dot.cpp | 2 | ||||
-rw-r--r-- | src/doxygen.cpp | 64 | ||||
-rw-r--r-- | src/htmlhelp.cpp | 8 | ||||
-rw-r--r-- | src/index.cpp | 6 | ||||
-rw-r--r-- | src/reflist.h | 15 | ||||
-rw-r--r-- | src/rtfgen.cpp | 57 | ||||
-rw-r--r-- | src/scanner.l | 6 | ||||
-rw-r--r-- | src/translator.h | 6 | ||||
-rw-r--r-- | src/translator_adapter.h | 12 | ||||
-rw-r--r-- | src/translator_br.h | 2 | ||||
-rw-r--r-- | src/translator_cz.h | 2 | ||||
-rw-r--r-- | src/translator_de.h | 2 | ||||
-rw-r--r-- | src/translator_en.h | 14 | ||||
-rw-r--r-- | src/translator_fr.h | 2 | ||||
-rw-r--r-- | src/translator_hr.h | 2 | ||||
-rw-r--r-- | src/translator_it.h | 8 | ||||
-rw-r--r-- | src/translator_jp.h | 2 | ||||
-rw-r--r-- | src/translator_nl.h | 14 | ||||
-rw-r--r-- | src/translator_pl.h | 2 | ||||
-rw-r--r-- | src/translator_pt.h | 2 | ||||
-rw-r--r-- | src/translator_ro.h | 2 | ||||
-rw-r--r-- | src/translator_ru.h | 2 | ||||
-rw-r--r-- | src/translator_si.h | 2 | ||||
-rw-r--r-- | src/translator_sr.h | 2 | ||||
-rw-r--r-- | src/translator_tw.h | 2 | ||||
-rw-r--r-- | src/util.h | 2 | ||||
-rw-r--r-- | src/xmlgen.cpp | 19 |
33 files changed, 224 insertions, 62 deletions
diff --git a/src/classdef.h b/src/classdef.h index 67c620f..fd7c1b4 100644 --- a/src/classdef.h +++ b/src/classdef.h @@ -163,6 +163,8 @@ class ClassDef : public Definition */ ClassDef *templateMaster() const { return m_templateMaster; } + IncludeInfo *includeInfo() const { return m_incInfo; } + UsesClassDict *usedImplementationClasses() const { return m_usesImplClassDict; @@ -662,6 +662,7 @@ static void generateClassOrGlobalLink(OutputDocInterface &ol,char *clName,int *c { Definition *d = md->getOuterScope()==Doxygen::globalScope ? md->getBodyDef() : md->getOuterScope(); + if (md->getGroupDef()) d = md->getGroupDef(); if (d && d->isLinkable() && md->isLinkable()) { writeMultiLineCodeLink(ol,d->getReference(),d->getOutputFileBase(),md->getBodyAnchor(),clName); @@ -718,6 +719,7 @@ static bool getLink(const char *className, Definition *d = md->getOuterScope()==Doxygen::globalScope ? md->getBodyDef() : md->getOuterScope(); + if (md->getGroupDef()) d = md->getGroupDef(); if (d && d->isLinkable()) { g_theCallContext.setClass(stripClassName(md->typeString())); @@ -774,6 +776,7 @@ static bool generateClassMemberLink(OutputDocInterface &ol,ClassDef *mcd,const c Definition *xd = xmd->getOuterScope()==Doxygen::globalScope ? xmd->getBodyDef() : xmd->getOuterScope(); + if (xmd->getGroupDef()) xd = xmd->getGroupDef(); if (xd) { diff --git a/src/config.l b/src/config.l index 3c647cc..8c3c50b 100644 --- a/src/config.l +++ b/src/config.l @@ -1857,6 +1857,22 @@ void Config::create() FALSE ); cb->addDependency("GENERATE_HTML"); + cs = addString( + "CHM_FILE", + "If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can \n" + "be used to specify the file name of the resulting .chm file. You \n" + "can add a path in front of the file if the result should not be \n" + "written to the html output dir. \n" + ); + cs->addDependency("GENERATE_HTML"); + cs = addString( + "HHC_LOCATION", + "If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can \n" + "be used to specify the location (absolute path including file name) of \n" + "the HTML help compiler (hhc.exe). If non empty doxygen will try to run \n" + "the html help compiler on the generated index.hhp.\n" + ); + cs->addDependency("GENERATE_HTML"); cb = addBool( "GENERATE_CHI", "If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag \n" diff --git a/src/defargs.l b/src/defargs.l index b88ef13..5a0feaf 100644 --- a/src/defargs.l +++ b/src/defargs.l @@ -256,7 +256,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]* if (l>0) { int i=l-1; - while (i>=0 && isspace(g_curArgTypeName.at(i))) i--; + while (i>=0 && (isspace(g_curArgTypeName.at(i)) || g_curArgTypeName.at(i)=='.')) i--; while (i>=0 && isId(g_curArgTypeName.at(i))) i--; //printf("g_curArgTypeName=`%s' i=%d\n",g_curArgTypeName.data(),i); Argument *a = new Argument; diff --git a/src/definition.h b/src/definition.h index 91ebfd7..ad3da97 100644 --- a/src/definition.h +++ b/src/definition.h @@ -30,7 +30,7 @@ class MemberSDict; class MemberDef; class GroupDef; class GroupList; -class ListItemInfo; +struct ListItemInfo; /*! The common base class of all entity definitions found in the sources. */ class Definition @@ -940,6 +940,7 @@ static void checkArgName(const QCString &name,bool isParam) for (ali.toFirst();(a=ali.current());++ali) { QCString argName = memberDef->isDefine() ? a->type : a->name; + if (argName.right(3)=="...") argName=argName.left(argName.length()-3); if (aName==argName) { //printf("adding `%s'\n",aName.data()); @@ -2938,6 +2939,7 @@ void parseDoc(OutputDocInterface &od,const char *fileName,int startLine, for (ali.toFirst();(a=ali.current());++ali) { QCString argName = memberDef->isDefine() ? a->type : a->name; + if (argName.right(3)=="...") argName=argName.left(argName.length()-3); if (!argName.isEmpty() && paramsFound.find(argName)==0) { found = TRUE; diff --git a/src/dot.cpp b/src/dot.cpp index ef0e053..f3533b5 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -1613,7 +1613,7 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out, convertMapFile(tmpout,baseName+".map"); if (!tmpstr.isEmpty()) { - out << "<map name=\"" << mapName << "\">" << endl; + out << "<map name=\"" << mapName << "_map\">" << endl; out << tmpstr; out << "</map>" << endl; } diff --git a/src/doxygen.cpp b/src/doxygen.cpp index e6951fe..90b1ab2 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -1441,6 +1441,56 @@ static int findFunctionPtr(const QCString &type,int *pLength=0) } } + +/*! Returns TRUE iff \a type is a class within scope \a context. + * Used to detect variable declarations that look like function prototypes. + */ +static bool isVarWithConstructor(Entry *root) +{ + static QRegExp initChars("[0-9\"'&*!^]+"); + static QRegExp idChars("[a-z_A-Z][a-z_A-Z0-9]*"); + if (root->type.isEmpty()) return FALSE; + Definition *ctx = 0; + //printf("isVarWithConstructor(%s,%s)\n",root->parent->name.data(), + // root->type.data()); + if (root->parent->name) ctx=Doxygen::namespaceSDict.find(root->parent->name); + bool typeIsClass=getResolvedClass(ctx,root->type)!=0; + if (typeIsClass) // now we still have to check if the arguments are + // types or values. Since we do not have complete type info + // we need to rely on heuristics :-( + { + //printf("typeIsClass\n"); + ArgumentList *al = root->argList; + if (al==0) return FALSE; // empty arg list -> function prototype. + ArgumentListIterator ali(*al); + Argument *a; + for (ali.toFirst();(a=ali.current());++ali) + { + //printf("a->name=%s a->type=%s\n",a->name.data(),a->type.data()); + if (!a->name.isEmpty() || !a->defval.isEmpty()) return FALSE; // arg has (type,name) pair -> function prototype + if (a->type.isEmpty() || getResolvedClass(ctx,a->type)!=0) return FALSE; // arg type is a known type + if (a->type.find(initChars)==0) return TRUE; // argument type starts with typical initializer char + QCString resType=resolveTypeDef(ctx,a->type); + if (resType.isEmpty()) resType=a->type; + int len; + if (idChars.match(resType,0,&len)==0) // resType starts with identifier + { + resType=resType.left(len); + //printf("resType=%s\n",resType.data()); + if (resType=="int" || resType=="long" || resType=="float" || + resType=="double" || resType=="char" || resType=="signed" || + resType=="const" || resType=="unsigned") + { + return FALSE; // type keyword -> function prototype + } + } + } + return TRUE; + } + // return type not a class -> function prototype + return FALSE; +} + //---------------------------------------------------------------------- // Searches the Entry tree for Variable documentation sections. // If found they are stored in their class or in the global list. @@ -1454,6 +1504,9 @@ void buildVarList(Entry *root) ) || (root->section==Entry::FUNCTION_SEC && // or maybe a function pointer variable findFunctionPtr(root->type)!=-1 + ) || + (root->section==Entry::FUNCTION_SEC && // class variable initialized by constructor + isVarWithConstructor(root) ) ) ) // documented variable @@ -7662,5 +7715,16 @@ void generateOutput() msg("Generating AutoGen DEF output...\n"); generateDEF(); } + if (Config_getBool("GENERATE_HTMLHELP") && !Config_getString("HHC_LOCATION").isEmpty()) + { + msg("Running html help compiler...\n"); + QString oldDir = QDir::currentDirPath(); + QDir::setCurrent(Config_getString("HTML_OUTPUT")); + if (iSystem(Config_getString("HHC_LOCATION"), "index.hhp", FALSE)) + { + err("Error: failed to run html help compiler on index.hhp"); + } + QDir::setCurrent(oldDir); + } } diff --git a/src/htmlhelp.cpp b/src/htmlhelp.cpp index 6bdded6..4ca6188 100644 --- a/src/htmlhelp.cpp +++ b/src/htmlhelp.cpp @@ -387,8 +387,12 @@ void HtmlHelp::createProjectFile() QCString indexName="index"+htmlFileExtension; if (Config_getBool("GENERATE_TREEVIEW")) indexName="main"+htmlFileExtension; - t << "[OPTIONS]\n" - "Compatibility=1.1\n" + t << "[OPTIONS]\n"; + if (!Config_getString("CHM_FILE").isEmpty()) + { + t << "Compiled file=" << Config_getString("CHM_FILE") << "\n"; + } + t << "Compatibility=1.1\n" "Full-text search=Yes\n" "Contents file=index.hhc\n" "Default Window=main\n" diff --git a/src/index.cpp b/src/index.cpp index a9c52de..cd93267 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -930,7 +930,11 @@ void writeFileIndex(OutputList &ol) path=stripFromPath(fd->getPath().copy()); } QCString fullName=fd->name(); - if (!path.isEmpty()) fullName.prepend(path+"/"); + if (!path.isEmpty()) + { + if (path.at(path.length()-1)!='/') fullName.prepend("/"); + fullName.prepend(path); + } // --------------- LaTeX/RTF only ------------------------- #if 0 diff --git a/src/reflist.h b/src/reflist.h index cb60dc2..d282c13 100644 --- a/src/reflist.h +++ b/src/reflist.h @@ -32,7 +32,16 @@ struct RefItem bool written; }; -/*! Singleton for the one and only RefList */ +/*! @brief List of cross-referenced items + * + * This class represents a list of items that are put + * at a certain point in the documentation by some special command + * and are collected in a list. The items cross-reference the + * documentation and the list. + * + * Examples are the todo list, the test list and the bug list, + * introduced by the \\todo, \\test, and \\bug commands respectively. + */ class RefList { public: @@ -63,8 +72,4 @@ class RefList BaseOutputDocInterface::SectionTypes m_type; }; -//extern RefList todoList; -//extern RefList testList; -//extern RefList bugList; - #endif diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp index 0b11da5..04ce7f4 100644 --- a/src/rtfgen.cpp +++ b/src/rtfgen.cpp @@ -839,7 +839,7 @@ void RTFGenerator::beginRTFDocument() void RTFGenerator::beginRTFChapter() { t <<"\n"; - DBG_RTF(t << "{\\comment Begin Chapter}\n") + DBG_RTF(t << "{\\comment BeginRTFChapter}\n") t << Rtf_Style_Reset; // if we are compact, no extra page breaks... @@ -859,7 +859,7 @@ void RTFGenerator::beginRTFChapter() void RTFGenerator::beginRTFSection() { t <<"\n"; - DBG_RTF(t << "{\\comment Begin Section}\n") + DBG_RTF(t << "{\\comment BeginRTFSection}\n") t << Rtf_Style_Reset; // if we are compact, no extra page breaks... @@ -896,11 +896,13 @@ void RTFGenerator::endFile() void RTFGenerator::startProjectNumber() { + DBG_RTF(t <<"{\\comment startProjectNumber }" << endl) t << " "; } void RTFGenerator::endProjectNumber() { + DBG_RTF(t <<"{\\comment endProjectNumber }" << endl) } void RTFGenerator::startIndexSection(IndexSections is) @@ -1093,7 +1095,7 @@ void RTFGenerator::endIndexSection(IndexSections is) t << Rtf_Style_Reset << Rtf_Style["SubTitle"]->reference << endl; // set to title style - t << "\\vertalc\\qc\\par\\par\\par\\par\\par\\par\\par"; + t << "\\vertalc\\qc\\par\\par\\par\\par\\par\\par\\par\n"; if (logoFilename) { t << "{\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE " << logoFilename; @@ -1131,14 +1133,23 @@ void RTFGenerator::endIndexSection(IndexSections is) DBG_RTF(t << "{\\comment Table of contents}\n") t << "\\vertalt\n"; t << Rtf_Style_Reset << endl; + t << Rtf_Style["Heading1"]->reference; + t << theTranslator->trRTFTableOfContents() << "\\par"<< endl; + t << Rtf_Style_Reset << "\\par" << endl; t << "{\\field\\fldedit {\\*\\fldinst TOC \\\\f \\\\*MERGEFORMAT}{\\fldrslt Table of contents}}\\par\n"; t << Rtf_Style_Reset << endl; - } break; case isMainPage: t << "\\par " << Rtf_Style_Reset << endl; - t << "{\\tc \\v " << theTranslator->trMainPage() << "}"<< endl; + if (!Doxygen::mainPage || Doxygen::mainPage->title.isEmpty()) + { + t << "{\\tc \\v " << theTranslator->trMainPage() << "}"<< endl; + } + else + { + t << "{\\tc \\v " << substitute(Doxygen::mainPage->title,"%","") << "}"<< endl; + } t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \""; if (Config_getBool("GENERATE_TREEVIEW")) t << "main"; else t << "index"; t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n"; @@ -1369,10 +1380,10 @@ void RTFGenerator::endIndexSection(IndexSections is) void RTFGenerator::lastIndexPage() { - DBG_RTF(t <<"{\\comment Begining Body of RTF Document}\n") + DBG_RTF(t <<"{\\comment Beginning Body of RTF Document}\n") // end page and setup for rest of document - t <<"\\sect \\sbkpage \\pgnrestart\n"; - t <<"\\sect \\sectd \\sbknone \\pgndec\n"; + t <<"\\sect \\sbkpage \\pgndec \\pgnrestart\n"; + t <<"\\sect \\sectd \\sbknone\n"; // set footer t <<"{\\footer "<< Rtf_Style["Footer"]->reference << "{\\chpgn}}\n"; @@ -1386,9 +1397,8 @@ void RTFGenerator::writeStyleInfo(int) void RTFGenerator::lineBreak() { + DBG_RTF(t << "{\\comment (lineBreak)}" << endl) t << "\\par" << endl; - //newParagraph(); - //t << "\\line" << endl; } void RTFGenerator::writeString(const char *text) @@ -1403,7 +1413,6 @@ void RTFGenerator::startIndexList() incrementIndentLevel(); t << Rtf_Style_Reset << Rtf_LCList_DepthStyle() << endl; newParagraph(); - m_omitParagraph=TRUE; } void RTFGenerator::endIndexList() @@ -1412,7 +1421,6 @@ void RTFGenerator::endIndexList() newParagraph(); t << "}"; decrementIndentLevel(); - m_omitParagraph=TRUE; } /*! start bullet list */ @@ -1431,7 +1439,6 @@ void RTFGenerator::endItemList() DBG_RTF(t << "{\\comment (endItemList level=" << m_listLevel << ")}" << endl) t << "}"; decrementIndentLevel(); - m_omitParagraph=TRUE; } /*! start enumeration list */ @@ -1442,10 +1449,6 @@ void RTFGenerator::startEnumList() // starts an enumeration list incrementIndentLevel(); listItemInfo[m_listLevel].isEnum = TRUE; listItemInfo[m_listLevel].number = 1; - //t << Rtf_Style_Reset << Rtf_EList_DepthStyle() << endl; - //newParagraph(); - //m_omitParagraph=TRUE; - } /*! end enumeration list */ @@ -1455,7 +1458,6 @@ void RTFGenerator::endEnumList() DBG_RTF(t << "{\\comment (endEnumList)}" << endl) t << "}"; decrementIndentLevel(); - m_omitParagraph=TRUE; } /*! write bullet or enum item */ @@ -1474,7 +1476,6 @@ void RTFGenerator::writeListItem() { t << Rtf_BList_DepthStyle() << endl; } - m_omitParagraph=TRUE; } void RTFGenerator::writeIndexItem(const char *ref,const char *fn, @@ -1494,7 +1495,6 @@ void RTFGenerator::writeIndexItem(const char *ref,const char *fn, t << endl; } newParagraph(); - m_omitParagraph=TRUE; } //void RTFGenerator::writeIndexFileItem(const char *,const char *text) @@ -1914,6 +1914,7 @@ void RTFGenerator::endMemberDoc() void RTFGenerator::startDoxyAnchor(const char *,const char *, const char *,const char *) { + DBG_RTF(t << "{\\comment startDoxyAnchor}" << endl) } void RTFGenerator::endDoxyAnchor(const char *fName,const char *anchor) @@ -1929,6 +1930,7 @@ void RTFGenerator::endDoxyAnchor(const char *fName,const char *anchor) ref+=anchor; } + DBG_RTF(t << "{\\comment endDoxyAnchor}" << endl) t << "{\\bkmkstart "; t << formatBmkStr(ref); t << "}" << endl; @@ -2050,7 +2052,6 @@ void RTFGenerator::endDescList() DBG_RTF(t << "{\\comment (endDescList)}" << endl) newParagraph(); decrementIndentLevel(); - m_omitParagraph = TRUE; t << "}"; } @@ -2082,6 +2083,7 @@ void RTFGenerator::startSection(const char *,const char *title,bool sub) void RTFGenerator::endSection(const char *lab,bool) { + DBG_RTF(t << "{\\comment (endSection)}" << endl) newParagraph(); // make bookmark writeAnchor(0,lab); @@ -2269,6 +2271,7 @@ void RTFGenerator::endMemberItem(bool) void RTFGenerator::writeAnchor(const char *fileName,const char *name) { + DBG_RTF(t <<"{\\comment writeAncheor }" << endl) t << "{\\bkmkstart "; if (fileName) t << formatBmkStr(fileName); if (fileName && name) t << "_"; @@ -2300,7 +2303,6 @@ void RTFGenerator::endCodeFragment() //t << Rtf_Style_Reset << styleStack.top() << endl; DBG_RTF(t << "{\\comment (endCodeFragment) }" << endl) t << "}" << endl; - m_omitParagraph = TRUE; } void RTFGenerator::writeNonBreakableSpace(int) @@ -2418,7 +2420,6 @@ void RTFGenerator::endDescTableData() { DBG_RTF(t << "{\\comment (endDescTableData) }" << endl) newParagraph(); - m_omitParagraph=TRUE; } // a style for list formatted as a "bulleted list" @@ -2485,7 +2486,7 @@ const char * RTFGenerator::Rtf_Code_DepthStyle() void RTFGenerator::startTextBlock(bool dense) { - DBG_RTF(t << "{\\comment Start TextBlock}" << endl) + DBG_RTF(t << "{\\comment startTextBlock}" << endl) t << "{" << endl; t << Rtf_Style_Reset; if (dense) // no spacing between "paragraphs" @@ -2501,15 +2502,16 @@ void RTFGenerator::startTextBlock(bool dense) void RTFGenerator::endTextBlock() { newParagraph(); - DBG_RTF(t << "{\\comment End TextBlock}" << endl) + DBG_RTF(t << "{\\comment endTextBlock}" << endl) t << "}" << endl; - m_omitParagraph = TRUE; } void RTFGenerator::newParagraph() { + DBG_RTF(t << "{\\comment (newParagraph)}" << endl) if (!m_omitParagraph) t << "\\par" << endl; - m_omitParagraph = FALSE; + // Suppress multiple paragraphs in a row + m_omitParagraph = TRUE; } void RTFGenerator::startMemberSubtitle() @@ -2936,7 +2938,6 @@ void RTFGenerator::endParamList() DBG_RTF(t << "{\\comment (endParamList)}" << endl) newParagraph(); decrementIndentLevel(); - m_omitParagraph = TRUE; t << "}"; } diff --git a/src/scanner.l b/src/scanner.l index 9a76eab..095c1cd 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -2148,7 +2148,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) /*- Function argument reading rules ---------------------------------------*/ -<ReadFuncArgType>[^ \/\r\t\n\)\(\"\']+ { *copyArgString+=yytext; +<ReadFuncArgType>[^ \/\r\t\n\)\(\"\']+ { *copyArgString+=yytext; fullArgString+=yytext; } <CopyArgString>[^\n\\\"\']+ { *copyArgString+=yytext; @@ -2183,7 +2183,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) BEGIN( currentArgumentContext ); } /* a special comment */ -<ReadFuncArgType>("/*"[*!]|"//"[/!])("<"?) { +<ReadFuncArgType,ReadTempArgs>("/*"[*!]|"//"[/!])("<"?) { if (currentArgumentContext==DefineEnd) { // for defines we interpret a comment @@ -3934,7 +3934,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) BEGIN( lastBriefContext ); } <ClassDocBrief>{BS}{CMD}("brief"|"short"){BN}+ { - lastBriefContext=YY_START; + //lastBriefContext=YY_START; } <ClassDocBrief>. { current->brief += *yytext; } <ClassDocDefine>{ID}/"(" { diff --git a/src/translator.h b/src/translator.h index 6398ca4..093f4ad 100644 --- a/src/translator.h +++ b/src/translator.h @@ -371,6 +371,12 @@ class Translator virtual QCString trImplementedFromList(int numEntries) = 0; virtual QCString trImplementedInList(int numEntries) = 0; +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + virtual QCString trRTFTableOfContents() = 0; + }; #endif diff --git a/src/translator_adapter.h b/src/translator_adapter.h index 932cfe3..5ef3094 100644 --- a/src/translator_adapter.h +++ b/src/translator_adapter.h @@ -40,7 +40,17 @@ class TranslatorAdapterBase : public Translator }; -class TranslatorAdapter_1_2_13 : public TranslatorAdapterBase +class TranslatorAdapter_1_2_16 : public TranslatorAdapterBase +{ + public: + virtual QCString updateNeededMessage() + { return createUpdateNeededMessage(idLanguage(),"release 1.2.16"); } + + virtual QCString trRTFTableOfContents() + { return english.trRTFTableOfContents(); } +}; + +class TranslatorAdapter_1_2_13 : public TranslatorAdapter_1_2_16 { public: virtual QCString updateNeededMessage() diff --git a/src/translator_br.h b/src/translator_br.h index 74e1dea..eaf4cb2 100644 --- a/src/translator_br.h +++ b/src/translator_br.h @@ -23,7 +23,7 @@ #ifndef TRANSLATOR_BR_H #define TRANSLATOR_BR_H -class TranslatorBrazilian: public Translator +class TranslatorBrazilian: public TranslatorAdapter_1_2_16 { public: diff --git a/src/translator_cz.h b/src/translator_cz.h index a0001ca..74e2ac2 100644 --- a/src/translator_cz.h +++ b/src/translator_cz.h @@ -157,7 +157,7 @@ // probably slightly faster. -class TranslatorCzech : public Translator +class TranslatorCzech : public TranslatorAdapter_1_2_16 { private: /*! The decode() inline assumes the source written in the diff --git a/src/translator_de.h b/src/translator_de.h index db3427e..11fb085 100644 --- a/src/translator_de.h +++ b/src/translator_de.h @@ -68,7 +68,7 @@ #ifndef TRANSLATOR_DE_H #define TRANSLATOR_DE_H -class TranslatorGerman : public Translator +class TranslatorGerman : public TranslatorAdapter_1_2_16 { public: diff --git a/src/translator_en.h b/src/translator_en.h index c7ab6c7..fe88737 100644 --- a/src/translator_en.h +++ b/src/translator_en.h @@ -638,7 +638,7 @@ class TranslatorEnglish : public Translator ClassDef::CompoundType compType, bool isTemplate) { - QCString result=(QCString)clName+" "; + QCString result=(QCString)clName; switch(compType) { case ClassDef::Class: result+=" Class"; break; @@ -1392,6 +1392,18 @@ class TranslatorEnglish : public Translator return "Implemented in "+trWriteList(numEntries)+"."; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + /*! used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return "Table of Contents"; + } + }; #endif diff --git a/src/translator_fr.h b/src/translator_fr.h index 4611501..59119d4 100644 --- a/src/translator_fr.h +++ b/src/translator_fr.h @@ -39,7 +39,7 @@ #ifndef TRANSLATOR_FR_H #define TRANSLATOR_FR_H -class TranslatorFrench : public Translator +class TranslatorFrench : public TranslatorAdapter_1_2_16 { public: QCString idLanguage() diff --git a/src/translator_hr.h b/src/translator_hr.h index 100d53c..baff5d5 100644 --- a/src/translator_hr.h +++ b/src/translator_hr.h @@ -50,7 +50,7 @@ #ifndef TRANSLATOR_HR_H #define TRANSLATOR_HR_H -class TranslatorCroatian : public Translator +class TranslatorCroatian : public TranslatorAdapter_1_2_16 { private: /*! to avoid macro redefinition from translator_cz.h */ diff --git a/src/translator_it.h b/src/translator_it.h index 3d49e6a..35f96d8 100644 --- a/src/translator_it.h +++ b/src/translator_it.h @@ -19,6 +19,8 @@ * * Revision history * + * 2002/07: modified trRelatedPagesDescription() method + * correct typo in trInclByDepGraph() method * 2002/01: translated new items used since version 1.2.13 * updated e-mail address * 2001/11: corrected the translation fixing the issues reported by the translator.pl script @@ -62,7 +64,7 @@ #ifndef TRANSLATOR_IT_H #define TRANSLATOR_IT_H -class TranslatorItalian : public Translator +class TranslatorItalian : public TranslatorAdapter_1_2_16 { public: @@ -333,7 +335,7 @@ class TranslatorItalian : public Translator /*! This is an introduction to the page with the list of related pages */ QCString trRelatedPagesDescription() - { return "Questa è la lista di tutte le pagine di documentazione collegate fra loro:"; } + { return "Questa è la lista di tutte le pagine di documentazione generale:"; } /*! This is an introduction to the page with the list of class/file groups */ QCString trModulesDescription() @@ -1011,7 +1013,7 @@ class TranslatorItalian : public Translator } virtual QCString trInclByDepGraph() { - return "Queato grafo mostra quali file includono direttamente o indirettamente questo file:"; + return "Questo grafo mostra quali altri file includono direttamente o indirettamente questo file:"; } virtual QCString trSince() { diff --git a/src/translator_jp.h b/src/translator_jp.h index 30ac856..2275ea8 100644 --- a/src/translator_jp.h +++ b/src/translator_jp.h @@ -61,7 +61,7 @@ class TranslatorJapaneseEn : public TranslatorEnglish } }; -class TranslatorJapanese : public Translator +class TranslatorJapanese : public TranslatorAdapter_1_2_16 { private: /*! The decode() can change euc into sjis */ diff --git a/src/translator_nl.h b/src/translator_nl.h index 631ed08..bc4eaca 100644 --- a/src/translator_nl.h +++ b/src/translator_nl.h @@ -272,7 +272,7 @@ class TranslatorDutch : public Translator bool isTemplate) // used as the title of the HTML page of a class/struct/union { - QCString result=(QCString)clName+" "; + QCString result=(QCString)clName; if (isTemplate) result+=" Template"; switch(compType) { @@ -975,6 +975,10 @@ class TranslatorDutch : public Translator return "Gebruikt"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.13 +////////////////////////////////////////////////////////////////////////// + /*! used in member documentation blocks to produce a list of * members that are implemented by this one. */ @@ -990,6 +994,14 @@ class TranslatorDutch : public Translator { return "Wordt geïmplementeerd door "+trWriteList(numEntries)+"."; } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + virtual QCString trRTFTableOfContents() + { return "Inhoudsopgave"; } + }; #endif diff --git a/src/translator_pl.h b/src/translator_pl.h index 0e3ce6b..4951a6f 100644 --- a/src/translator_pl.h +++ b/src/translator_pl.h @@ -22,7 +22,7 @@ #include "translator_adapter.h" -class TranslatorPolish : public Translator +class TranslatorPolish : public TranslatorAdapter_1_2_16 { public: diff --git a/src/translator_pt.h b/src/translator_pt.h index bc32c8a..3754517 100644 --- a/src/translator_pt.h +++ b/src/translator_pt.h @@ -34,7 +34,7 @@ #ifndef TRANSLATOR_PT_H #define TRANSLATOR_PT_H -class TranslatorPortuguese : public Translator +class TranslatorPortuguese : public TranslatorAdapter_1_2_16 { public: diff --git a/src/translator_ro.h b/src/translator_ro.h index 3383e0d..cc7183c 100644 --- a/src/translator_ro.h +++ b/src/translator_ro.h @@ -42,7 +42,7 @@ #define TRANSLATOR_RO_H -class TranslatorRomanian: public Translator +class TranslatorRomanian: public TranslatorAdapter_1_2_16 { public: diff --git a/src/translator_ru.h b/src/translator_ru.h index e9f330a..d40f064 100644 --- a/src/translator_ru.h +++ b/src/translator_ru.h @@ -50,7 +50,7 @@ #ifndef TRANSLATOR_RU_H #define TRANSLATOR_RU_H -class TranslatorRussian : public Translator +class TranslatorRussian : public TranslatorAdapter_1_2_16 { private: /*! The Decode() inline assumes the source written in the diff --git a/src/translator_si.h b/src/translator_si.h index cef09f6..cef1f33 100644 --- a/src/translator_si.h +++ b/src/translator_si.h @@ -21,7 +21,7 @@ #define TRANSLATOR_SI_H -class TranslatorSlovene : public Translator +class TranslatorSlovene : public TranslatorAdapter_1_2_16 { public: QCString idLanguage() diff --git a/src/translator_sr.h b/src/translator_sr.h index aa5502b..71d66d5 100644 --- a/src/translator_sr.h +++ b/src/translator_sr.h @@ -20,7 +20,7 @@ // translation by Dejan D. M. Milosavljevic <dmilos@email.com>;<dmilosx@ptt.yu> -class TranslatorSerbian : public Translator +class TranslatorSerbian : public TranslatorAdapter_1_2_16 { QCString decode(const QCString& sInput) { diff --git a/src/translator_tw.h b/src/translator_tw.h index 6cef372..f8b218f 100644 --- a/src/translator_tw.h +++ b/src/translator_tw.h @@ -39,7 +39,7 @@ // Translator class (by the local maintainer) when the localized // translator is made up-to-date again. -class TranslatorChinesetraditional : public Translator +class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16 { public: @@ -43,7 +43,7 @@ class MemberGroupSDict; class Definition; struct TagInfo; class MemberNameInfoSDict; -class ListItemInfo; +struct ListItemInfo; //-------------------------------------------------------------------- diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index 9c694a8..567cf02 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -1508,6 +1508,25 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti) << "\">" << convertToXML(cd->name()) << "</innerclass>" << endl; } } + + IncludeInfo *ii=cd->includeInfo(); + if (ii) + { + QCString nm = ii->includeName; + if (nm.isEmpty() && ii->fileDef) nm = ii->fileDef->docName(); + if (!nm.isEmpty()) + { + t << " <includes"; + if (ii->fileDef && !ii->fileDef->isReference()) // TODO: support external references + { + t << " id=\"" << ii->fileDef->getOutputFileBase() << "\""; + } + t << " local=\"" << (ii->local ? "yes" : "no") << "\""; + t << nm; + t << "</includes>" << endl; + } + } + writeTemplateList(cd,t); writeListOfAllMembers(cd,t); MemberGroupSDict::Iterator mgli(*cd->memberGroupSDict); |