From edeb82c1e0cebe5437fb637c9d239a8cecfca0cb Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Thu, 12 Aug 2004 12:53:19 +0000 Subject: Release-1.3.8-20040812 --- INSTALL | 4 +- README | 4 +- VERSION | 2 +- doc/Makefile.in | 2 +- doc/config.doc | 8 +- doc/language.doc | 26 +- doc/maintainers.txt | 11 +- doc/translator.py | 21 +- doc/translator_report.txt | 1366 ++++++++++++++------------------------------- doc/trouble.doc | 2 + packages/rpm/doxygen.spec | 2 +- src/classdef.cpp | 4 +- src/commentcnv.l | 9 +- src/config.l | 4 +- src/definition.cpp | 5 +- src/docparser.cpp | 8 +- src/doctokenizer.l | 3 +- src/doxygen.cpp | 524 +++++++++-------- src/filedef.cpp | 2 +- src/groupdef.cpp | 11 +- src/htmldocvisitor.cpp | 7 +- src/htmlgen.cpp | 32 +- src/htmlgen.h | 7 +- src/mandocvisitor.cpp | 4 + src/memberdef.cpp | 21 +- src/memberdef.h | 25 +- src/memberlist.cpp | 4 +- src/namespacedef.cpp | 5 +- src/pre.l | 3 +- src/rtfgen.cpp | 4 +- src/scanner.l | 16 +- src/search.php | 8 +- src/search_php.h | 8 +- src/searchindex.cpp | 8 +- src/translator_adapter.h | 201 +------ src/util.cpp | 23 +- src/util.h | 3 +- 37 files changed, 858 insertions(+), 1539 deletions(-) diff --git a/INSTALL b/INSTALL index 88f2d0a..cc051af 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ -DOXYGEN Version 1.3.8-20040803 +DOXYGEN Version 1.3.8-20040812 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (03 August 2004) +Dimitri van Heesch (12 August 2004) diff --git a/README b/README index 4cdd66f..4875825 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.3.8_20040803 +DOXYGEN Version 1.3.8_20040812 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) (03 August 2004) +Dimitri van Heesch (dimitri@stack.nl) (12 August 2004) diff --git a/VERSION b/VERSION index cda99f6..e2c7de3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.8-20040803 +1.3.8-20040812 diff --git a/doc/Makefile.in b/doc/Makefile.in index 1e4d818..a43ad24 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -26,7 +26,7 @@ all: language FORCE @epstopdf doxygen_logo.eps --outfile=../latex/doxygen_logo.pdf clean: - rm -rf ../html ../latex *.bak translator_report.txt + rm -rf ../html ../latex *.bak language: language.doc diff --git a/doc/config.doc b/doc/config.doc index c37644c..486c3ea 100644 --- a/doc/config.doc +++ b/doc/config.doc @@ -932,7 +932,7 @@ function's detailed documentation block.
\c HTML_FOOTER
\addindex HTML_FOOTER The \c HTML_FOOTER tag can be used to specify a user-defined HTML footer for - each generated HTML page. To get valid HTML the header file should contain + each generated HTML page. To get valid HTML the footer file should contain at least a \c \ and a \c \ tag. A minimal example: \verbatim @@ -940,7 +940,7 @@ function's detailed documentation block. \endverbatim If the tag is left blank doxygen will generate a standard footer. - The following commands have a special meaning inside the header: + The following commands have a special meaning inside the footer: \$title, \$datetime, \$date, \$doxygenversion, \$projectname, \$projectnumber. @@ -1412,7 +1412,9 @@ EXTRA_PACKAGES = times are defined before the preprocessor is started (similar to the -D option of gcc). The argument of the tag is a list of macros of the form: name or name=definition (no spaces). - If the definition and the "=" are omitted, "=1" is assumed. + If the definition and the "=" are omitted, "=1" is assumed. To prevent + a macro definition from being undefined via #undef or recursively expanded + use the := operator instead of the = operator. \anchor cfg_expand_as_defined
\c EXPAND_AS_DEFINED
diff --git a/doc/language.doc b/doc/language.doc index d7c42dd..b39b756 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other than English (the default). The output language is chosen through the configuration file (with default name and known as Doxyfile). -Currently (version 1.3.8), 30 languages +Currently (version 1.3.8-20040803), 30 languages are supported (sorted alphabetically): Afrikaans, Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French, @@ -95,8 +95,8 @@ when the translator was updated. Danish Erik Søe Sørensen - erik at mail dot nu - 1.3.8 + eriksoe+doxygen at daimi dot au dot dk + up-to-date Dutch @@ -113,7 +113,7 @@ when the translator was updated. Finnish Olli Korhonen - Olli.Korhonen at ccc dot fi + olli.korhonen lost at cyberspace obsolete @@ -137,7 +137,7 @@ when the translator was updated. Hungarian Földvári György
Ákos Kiss - foldvari at diatronltd dot com
akiss at users dot sourceforge dot net + foldvari lost at cyberspace
akiss at users dot sourceforge dot net 1.3.8 @@ -220,8 +220,8 @@ when the translator was updated. Slovene - Matjaz Ostroversnik - matjaz.ostroversnik at zrs-tk dot si + Matjaž Ostroveršnik + matjaz.ostroversnik at ztm dot si 1.2.16 @@ -239,7 +239,7 @@ when the translator was updated. Ukrainian Olexij Tkatchenko - olexij.tkatchenko at gmx dot de + olexij.tkatchenko at parcs dot de 1.2.11 @@ -273,13 +273,13 @@ when the translator was updated. \hline Czech & Petr P\v{r}ikryl & {\tt\tiny prikrylp@skil.cz} & up-to-date \\ \hline - Danish & Erik S\o{}e S\o{}rensen & {\tt\tiny erik@mail.nu} & 1.3.8 \\ + Danish & Erik S\o{}e S\o{}rensen & {\tt\tiny eriksoe+doxygen@daimi.au.dk} & up-to-date \\ \hline Dutch & Dimitri van Heesch & {\tt\tiny dimitri@stack.nl} & up-to-date \\ \hline English & Dimitri van Heesch & {\tt\tiny dimitri@stack.nl} & up-to-date \\ \hline - Finnish & Olli Korhonen & {\tt\tiny Olli.Korhonen@ccc.fi} & obsolete \\ + Finnish & Olli Korhonen & {\tt\tiny olli.korhonen lost@cyberspace} & obsolete \\ \hline French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.3.8 \\ \hline @@ -287,7 +287,7 @@ when the translator was updated. \hline Greek & Harry Kalogirou & {\tt\tiny harkal@rainbow.cs.unipi.gr} & 1.2.11 \\ \hline - Hungarian & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt\tiny foldvari@diatronltd.com} & 1.3.8 \\ + Hungarian & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt\tiny foldvari lost@cyberspace} & 1.3.8 \\ ~ & \'{A}kos Kiss & {\tt\tiny akiss@users.sourceforge.net} & ~ \\ \hline Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\ @@ -322,13 +322,13 @@ when the translator was updated. \hline Slovak & Stanislav Kudl\'{a}\v{c} & {\tt\tiny skudlac@pobox.sk} & 1.2.18 \\ \hline - Slovene & Matjaz Ostroversnik & {\tt\tiny matjaz.ostroversnik@zrs-tk.si} & 1.2.16 \\ + Slovene & Matja\v{z} Ostrover\v{s}nik & {\tt\tiny matjaz.ostroversnik@ztm.si} & 1.2.16 \\ \hline Spanish & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & 1.3.8 \\ \hline Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.3.8 \\ \hline - Ukrainian & Olexij Tkatchenko & {\tt\tiny olexij.tkatchenko@gmx.de} & 1.2.11 \\ + Ukrainian & Olexij Tkatchenko & {\tt\tiny olexij.tkatchenko@parcs.de} & 1.2.11 \\ \hline \end{tabular} \endlatexonly diff --git a/doc/maintainers.txt b/doc/maintainers.txt index e627f5c..82275f5 100644 --- a/doc/maintainers.txt +++ b/doc/maintainers.txt @@ -33,7 +33,7 @@ TranslatorCzech Petr Přikryl: prikrylp@skil.cz TranslatorDanish -Erik Søe Sørensen: erik@mail.nu +Erik Søe Sørensen: eriksoe+doxygen@daimi.au.dk TranslatorDutch Dimitri van Heesch: dimitri@stack.nl @@ -42,7 +42,7 @@ TranslatorEnglish Dimitri van Heesch: dimitri@stack.nl TranslatorFinnish -Olli Korhonen: Olli.Korhonen@ccc.fi +Olli Korhonen: olli.korhonen lost@cyberspace TranslatorFrench Xavier Outhier: xouthier@yahoo.fr @@ -54,7 +54,7 @@ TranslatorGreek Harry Kalogirou: harkal@rainbow.cs.unipi.gr TranslatorHungarian -Földvári György: foldvari@diatronltd.com +Földvári György: foldvari lost@cyberspace Ákos Kiss: akiss@users.sourceforge.net TranslatorItalian @@ -97,7 +97,7 @@ TranslatorSlovak Stanislav Kudláč: skudlac@pobox.sk TranslatorSlovene -Matjaz Ostroversnik: matjaz.ostroversnik@zrs-tk.si +Matjaž Ostroveršnik: matjaz.ostroversnik@ztm.si TranslatorSpanish Francisco Oltra Thennet: foltra@puc.cl @@ -106,5 +106,6 @@ TranslatorSwedish Mikael Hallin: mikaelhallin@yahoo.se TranslatorUkrainian -Olexij Tkatchenko: olexij.tkatchenko@gmx.de +Olexij Tkatchenko: olexij.tkatchenko@parcs.de + diff --git a/doc/translator.py b/doc/translator.py index c103b1b..1c32b5a 100644 --- a/doc/translator.py +++ b/doc/translator.py @@ -41,7 +41,8 @@ - Plural not used for reporting a single missing method. - Removal of not used translator adapters is suggested only when the report is not restricted to selected languages - explicitly via script arguments + explicitly via script arguments. + 2004/07/26 - Better reporting of not-needed adapters. """ from __future__ import generators @@ -1440,10 +1441,24 @@ class TrManager: # i.e. all languages were checked against the needed translator # adapters. if not self.script_argLst: + to_remove = {} for version, adaptClassId in self.adaptMethodsDic.values(): if version < adaptMinVersion: - f.write('\nNote: The %s class ' % adaptClassId) - f.write('is not used and can be removed.\n') + to_remove[adaptClassId] = True + + if to_remove: + lst = to_remove.keys() + lst.sort() + plural = len(lst) > 1 + note = 'Note: The adapter class' + if plural: note += 'es' + note += ' ' + ', '.join(lst) + if not plural: + note += ' is' + else: + note += ' are' + note += ' not used and can be removed.' + f.write('\n' + fill(note) + '\n') # Write the list of the English-based classes. if self.EnBasedIdLst: diff --git a/doc/translator_report.txt b/doc/translator_report.txt index a815ed0..7095ce1 100644 --- a/doc/translator_report.txt +++ b/doc/translator_report.txt @@ -1,1047 +1,495 @@ -Doxygen supports the following (23) languages (sorted alphabetically): - - Brazilian - Chinese - Croatian - Czech - Danish - Dutch - English - Finnish - French - German - Hungarian - Italian - Japanese - Korean - Norwegian - Polish - Portuguese - Romanian - Russian - Slovak - Slovene - Spanish - Swedish +(1.3.8-20040803) ----------------------------------------------------------------------- -The following translator classes are up-to-date (sorted alphabetically). -This means that they derive from the Translator class. If the translator -derives from TranslatorAdapterCVS, it is considered to be almost up-to-date. -In other words, it is newer than the last official release. Anyway, there -still may be some details listed even for the up-to-date translators. -Please, check the text below. +Doxygen supports the following 30 languages (sorted alphabetically): + +Afrikaans, Brazilian Portuguese, Catalan, Chinese, Chinese +Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French, +German, Greek, Hungarian, Italian, Japanese (+En), Korean (+En), +Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, Serbian, +Slovak, Slovene, Spanish, Swedish, and Ukrainian. +Of them, 13 translators are up-to-date, 17 translators are based on +some adapter class, and 2 are English based. + +---------------------------------------------------------------------- +The following translator classes are up-to-date (sorted +alphabetically). This means that they derive from the Translator class +and they implement all 195 of the required methods. Anyway, there +still may be some details listed even for them: + + TranslatorAfrikaans + TranslatorBrazilian + TranslatorChinese TranslatorCroatian TranslatorCzech - TranslatorDanish (TranslatorAdapterCVS) + TranslatorDanish + TranslatorDutch TranslatorEnglish TranslatorGerman - TranslatorItalian (TranslatorAdapterCVS) + TranslatorItalian + TranslatorJapanese + TranslatorNorwegian TranslatorRussian - TranslatorSlovak (TranslatorAdapterCVS) - TranslatorSpanish (TranslatorAdapterCVS) ---------------------------------------------------------------------- -The following translator classes are obsolete (sorted alphabetically). -This means that they derive from some of the adapter classes. - - TranslatorBrazilian (TranslatorAdapter_1_2_6) - TranslatorChinese (TranslatorAdapter_1_2_1) - TranslatorDutch (TranslatorAdapter_1_2_6) - TranslatorFinnish (TranslatorAdapter_1_0_0) - TranslatorFrench (TranslatorAdapter_1_2_0) - TranslatorHungarian (TranslatorAdapter_1_2_1) - TranslatorJapanese (TranslatorAdapter_1_2_5) - TranslatorKorean (TranslatorAdapter_1_1_0) - TranslatorNorwegian (TranslatorAdapter_1_2_2) - TranslatorPolish (TranslatorAdapter_1_2_1) - TranslatorPortuguese (TranslatorAdapter_1_1_5) - TranslatorRomanian (TranslatorAdapter_1_2_1) - TranslatorSlovene (TranslatorAdapter_1_1_5) - TranslatorSwedish (TranslatorAdapter_1_0_0) - +The following translator classes need some maintenance (the most +obsolete at the end). The other info shows the estimation of Doxygen +version when the class was last updated and number of methods that +must be implemented to become up-to-date: + + TranslatorSwedish 1.3.8 1 method to implement + TranslatorSpanish 1.3.8 1 method to implement + TranslatorSerbian 1.3.8 1 method to implement + TranslatorLithuanian 1.3.8 1 method to implement + TranslatorKorean 1.3.8 1 method to implement + TranslatorHungarian 1.3.8 1 method to implement + TranslatorFrench 1.3.8 1 method to implement + TranslatorChinesetraditional 1.3.8 1 method to implement + TranslatorPortuguese 1.3.3 5 methods to implement + TranslatorPolish 1.3 12 methods to implement + TranslatorSlovak 1.2.18 14 methods to implement + TranslatorCatalan 1.2.17 15 methods to implement + TranslatorSlovene 1.2.16 16 methods to implement + TranslatorRomanian 1.2.16 16 methods to implement + TranslatorUkrainian 1.2.11 19 methods to implement + TranslatorGreek 1.2.11 19 methods to implement + TranslatorFinnish obsolete 92 methods to implement ---------------------------------------------------------------------- -Localized translators are expected to implement the following methods -(prototypes sorted aplhabetically): - -QCString idLanguage() -QCString idLanguageCharset() -QCString latexLanguageSupportCommand() -QCString trAlphabeticalList() -QCString trAttention() -QCString trAuthor(bool first_capital, bool singular) -QCString trBug() -QCString trBugList() -QCString trBugsAndLimitations() -QCString trClass(bool first_capital, bool singular) -QCString trClassDiagram(const char *clName) -QCString trClassDocumentation() -QCString trClassHierarchy() -QCString trClassHierarchyDescription() -QCString trClasses() -QCString trCode() -QCString trCollaborationDiagram(const char *clName) -QCString trCompoundIndex() -QCString trCompoundList() -QCString trCompoundListDescription() -QCString trCompoundMembers() -QCString trCompoundMembersDescription(bool extractAll) -QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) -QCString trCompounds() -QCString trConstructorDocumentation() -QCString trDCOPMethods() -QCString trDate() -QCString trDefineDocumentation() -QCString trDefineValue() -QCString trDefinedAtLineInSourceFile() -QCString trDefinedIn() -QCString trDefinedInSourceFile() -QCString trDefines() -QCString trDeprecated() -QCString trDetailedDescription() -QCString trDocumentation() -QCString trEnumName() -QCString trEnumValue() -QCString trEnumerationTypeDocumentation() -QCString trEnumerationValueDocumentation() -QCString trEnumerationValues() -QCString trEnumerations() -QCString trExampleDocumentation() -QCString trExamples() -QCString trExamplesDescription() -QCString trExceptions() -QCString trField(bool first_capital, bool singular) -QCString trFile(bool first_capital, bool singular) -QCString trFileDocumentation() -QCString trFileIndex() -QCString trFileList() -QCString trFileListDescription(bool extractAll) -QCString trFileMembers() -QCString trFileMembersDescription(bool extractAll) -QCString trFileReference(const char *fileName) -QCString trForInternalUseOnly() -QCString trFriends() -QCString trFuncProtos() -QCString trFunctionDocumentation() -QCString trFunctionPrototypeDocumentation() -QCString trFunctions() -QCString trGeneratedAt(const char *date,const char *projName) -QCString trGeneratedAutomatically(const char *s) -QCString trGeneratedBy() -QCString trGeneratedFromFiles(ClassDef::CompoundType compType, bool single) -QCString trGlobal(bool first_capital, bool singular) -QCString trGotoDocumentation() -QCString trGotoGraphicalHierarchy() -QCString trGotoSourceCode() -QCString trGotoTextualHierarchy() -QCString trGraphicalHierarchy() -QCString trGroup(bool first_capital, bool singular) -QCString trHeaderFiles() -QCString trHeaderFilesDescription() -QCString trHierarchicalIndex() -QCString trInclByDepGraph() -QCString trInclDepGraph(const char *fName) -QCString trIncludingInheritedMembers() -QCString trInheritedByList(int numEntries) -QCString trInheritsList(int numEntries) -QCString trInitialValue() -QCString trInterfaces() -QCString trInvariant() -QCString trLegend() -QCString trLegendDocs() -QCString trLegendTitle() -QCString trListOfAllMembers() -QCString trMainPage() -QCString trMember(bool first_capital, bool singular) -QCString trMemberDataDocumentation() -QCString trMemberEnumerationDocumentation() -QCString trMemberFunctionDocumentation() -QCString trMemberList() -QCString trMemberTypedefDocumentation() -QCString trModuleDocumentation() -QCString trModuleIndex() -QCString trModules() -QCString trModulesDescription() -QCString trMore() -QCString trNamespace(bool first_capital, bool singular) -QCString trNamespaceDocumentation() -QCString trNamespaceIndex() -QCString trNamespaceList() -QCString trNamespaceListDescription(bool extractAll) -QCString trNamespaceMemberDescription(bool extractAll) -QCString trNamespaceMembers() -QCString trNamespaceReference(const char *namespaceName) -QCString trNamespaces() -QCString trNoDescriptionAvailable() -QCString trNote() -QCString trPackage(const char *name) -QCString trPackageDocumentation() -QCString trPackageList() -QCString trPackageListDescription() -QCString trPackages() -QCString trPage(bool first_capital, bool singular) -QCString trPageAbbreviation() -QCString trPageDocumentation() -QCString trPageIndex() -QCString trParameters() -QCString trPostcondition() -QCString trPrecondition() -QCString trPrivateAttribs() -QCString trPrivateMembers() -QCString trPrivateSlots() -QCString trPrivateTypes() -QCString trProperties() -QCString trPropertyDocumentation() -QCString trProtectedAttribs() -QCString trProtectedMembers() -QCString trProtectedSlots() -QCString trProtectedTypes() -QCString trPublicAttribs() -QCString trPublicMembers() -QCString trPublicSlots() -QCString trPublicTypes() -QCString trRTFCharSet() -QCString trRTFGeneralIndex() -QCString trRTFansicp() -QCString trReferenceManual() -QCString trReferencedBy() -QCString trReimplementedForInternalReasons() -QCString trReimplementedFromList(int numEntries) -QCString trReimplementedInList(int numEntries) -QCString trRelatedFunctionDocumentation() -QCString trRelatedFunctions() -QCString trRelatedPages() -QCString trRelatedPagesDescription() -QCString trRelatedSubscript() -QCString trRemarks() -QCString trReturnValues() -QCString trReturns() -QCString trSearch() -QCString trSeeAlso() -QCString trSignals() -QCString trSince() -QCString trSources() -QCString trStaticPrivateAttribs() -QCString trStaticPrivateMembers() -QCString trStaticProtectedAttribs() -QCString trStaticProtectedMembers() -QCString trStaticPublicAttribs() -QCString trStaticPublicMembers() -QCString trTest() -QCString trTestList() -QCString trThisIsTheListOfAllMembers() -QCString trTodo() -QCString trTodoList() -QCString trTypedefDocumentation() -QCString trTypedefs() -QCString trVariableDocumentation() -QCString trVariables() -QCString trVersion() -QCString trWarning() -QCString trWriteList(int numEntries) -QCString trWrittenBy() +The following translator classes derive directly from the +TranslatorEnglish. The class identifier has the suffix 'En' that says +that this is intentional. Usually, there is also a non-English based +version of the translator for the language: + TranslatorJapaneseEn implements 5 methods + TranslatorKoreanEn implements 5 methods ----------------------------------------------------------------------- -Details related to specific translator classes follows. -Notice that the prototypes are recognized only when they -are the same as in the Translator class. +====================================================================== +Details for translators (classes sorted alphabetically): -TranslatorBrazilian (TranslatorAdapter_1_2_6) -------------------- -Missing methods (should be implemented): +TranslatorCatalan (TranslatorAdapter_1_2_17) 15 methods to implement +----------------- + + Implements 180 of the required methods. + + Missing methods (should be implemented): - QCString trRTFGeneralIndex() - QCString trPage(bool first_capital, bool singular) - QCString trFile(bool first_capital, bool singular) - QCString trGlobal(bool first_capital, bool singular) - QCString trField(bool first_capital, bool singular) - QCString trGroup(bool first_capital, bool singular) - QCString trRTFansicp() - QCString trNamespace(bool first_capital, bool singular) - QCString trClass(bool first_capital, bool singular) - QCString trRTFCharSet() - QCString trMember(bool first_capital, bool singular) - QCString trAuthor(bool first_capital, bool singular) + virtual QCString trEventDocumentation() + virtual QCString trPackageMembers() + virtual QCString trStaticPackageMembers() + virtual QCString trSearchResultsTitle() + virtual QCString trStaticPackageAttribs() + virtual QCString trCallGraph() + virtual QCString trDeprecatedList() + virtual QCString trPackageTypes() + virtual QCString trSearchResults(int numDocuments) + virtual QCString trPackageAttribs() + virtual QCString trSearchMatches() + virtual QCString trEvents() + virtual QCString trSourceFile(QCString & filename) + virtual QCString trSearchForIndex() + virtual QCString trAll() -Obsolete methods (should be removed): - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trFiles() - QCString trVerbatimText(const char *f) +TranslatorChinesetraditional (TranslatorAdapter_1_3_8) 1 method to implement +---------------------------- + Implements 194 of the required methods. + Missing methods (should be implemented): -TranslatorChinese (TranslatorAdapter_1_2_1) + virtual QCString trSourceFile(QCString & filename) + + +TranslatorFinnish (TranslatorEnglish) 92 methods to implement ----------------- -Missing methods (should be implemented): - - QCString trRTFGeneralIndex() - QCString trPage(bool first_capital, bool singular) - QCString trPackageListDescription() - QCString trFile(bool first_capital, bool singular) - QCString trBug() - QCString trGlobal(bool first_capital, bool singular) - QCString trPackageList() - QCString trField(bool first_capital, bool singular) - QCString trGroup(bool first_capital, bool singular) - QCString trPackage(const char *name) - QCString trProperties() - QCString trBugList() - QCString trDCOPMethods() - QCString trPackageDocumentation() - QCString trRTFansicp() - QCString trNamespace(bool first_capital, bool singular) - QCString trPropertyDocumentation() - QCString trClass(bool first_capital, bool singular) - QCString trGeneratedFromFiles(ClassDef::CompoundType compType, bool single) - QCString trInterfaces() - QCString trRTFCharSet() - QCString latexLanguageSupportCommand() - QCString trPackages() - QCString trMember(bool first_capital, bool singular) - QCString trDefineValue() - QCString trAuthor(bool first_capital, bool singular) - QCString trClasses() - -Obsolete methods (should be removed): - - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trFiles() - QCString trGeneratedFromFiles(ClassDef::CompoundType compType, bool) - QCString trVerbatimText(const char *f) - - - -TranslatorGerman (Translator) + Implements 103 of the required methods. + + Missing methods (should be implemented): + + virtual QCString trPublicAttribs() + virtual QCString trPropertyDocumentation() + virtual QCString trMember(bool first_capital, bool singular) + virtual QCString trPageIndex() + virtual QCString trSince() + virtual QCString trEventDocumentation() + virtual QCString trRemarks() + virtual QCString trProtectedTypes() + virtual QCString trFile(bool first_capital, bool singular) + virtual QCString trPackages() + virtual QCString trInclByDepGraph() + virtual QCString trField(bool first_capital, bool singular) + virtual QCString trRTFansicp() + virtual QCString trImplementedFromList(int numEntries) + virtual QCString trCollaborationDiagram(const char * clName) + virtual QCString trPackageListDescription() + virtual QCString trDefineValue() + virtual QCString trPackageMembers() + virtual QCString trStaticPackageMembers() + virtual QCString trPackage(const char * name) + virtual QCString trPublicTypes() + virtual QCString trSearchResultsTitle() + virtual QCString trTest() + virtual QCString trInvariant() + virtual QCString trPackageDocumentation() + virtual QCString trGraphicalHierarchy() + virtual QCString trSources() + virtual QCString trPostcondition() + virtual QCString trGotoGraphicalHierarchy() + virtual QCString trPageAbbreviation() + virtual QCString trGotoSourceCode() + virtual QCString trStaticPackageAttribs() + virtual QCString trCallGraph() + virtual QCString trStaticPublicAttribs() + virtual QCString trCode() + virtual QCString trTodo() + virtual QCString trDeprecatedList() + virtual QCString trRTFCharSet() + virtual QCString trInitialValue() + virtual QCString trAlphabeticalList() + virtual QCString trBug() + virtual QCString trNote() + virtual QCString trStaticPrivateAttribs() + virtual QCString trAttention() + virtual QCString trGotoTextualHierarchy() + virtual QCString trPackageTypes() + virtual QCString trMainPage() + virtual QCString trDeprecated() + virtual QCString trClass(bool first_capital, bool singular) + virtual QCString trImplementedInList(int numEntries) + virtual QCString trPrivateTypes() + virtual QCString trInclDepGraph(const char * fName) + virtual QCString trSearchResults(int numDocuments) + virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType, bool single) + virtual QCString trNamespaces() + virtual QCString trPrivateAttribs() + virtual QCString latexLanguageSupportCommand() + virtual QCString trInterfaces() + virtual QCString trDefinedInSourceFile() + virtual QCString trConstructorDocumentation() + virtual QCString trLegend() + virtual QCString trPackageAttribs() + virtual QCString trSearchMatches() + virtual QCString trClasses() + virtual QCString trProtectedAttribs() + virtual QCString trLegendTitle() + virtual QCString idLanguageCharset() + virtual QCString trEvents() + virtual QCString trGlobal(bool first_capital, bool singular) + virtual QCString trDCOPMethods() + virtual QCString trBugList() + virtual QCString trRTFGeneralIndex() + virtual QCString trNamespace(bool first_capital, bool singular) + virtual QCString trTestList() + virtual QCString trPrecondition() + virtual QCString trReturnValues() + virtual QCString trReferences() + virtual QCString trAuthor(bool first_capital, bool singular) + virtual QCString trLegendDocs() + virtual QCString trPackageList() + virtual QCString trTodoList() + virtual QCString trPage(bool first_capital, bool singular) + virtual QCString trSourceFile(QCString & filename) + virtual QCString trGotoDocumentation() + virtual QCString trDefinedAtLineInSourceFile() + virtual QCString trSearchForIndex() + virtual QCString trAll() + virtual QCString trRTFTableOfContents() + virtual QCString trGroup(bool first_capital, bool singular) + virtual QCString trReferencedBy() + virtual QCString trStaticProtectedAttribs() + virtual QCString trProperties() + + Obsolete methods (should be removed, never used): + + QCString trGeneratedFrom(const char * s, bool single) + QCString trVerbatimText(const char * f) + QCString trFiles() + virtual QCString updateNeededMessage() + QCString trAuthors() + QCString latexBabelPackage() + QCString trAuthor() + + +TranslatorFrench (TranslatorAdapter_1_3_8) 1 method to implement ---------------- -Missing methods (should be implemented): + Implements 194 of the required methods. - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) - QCString trPage(bool first_capital, bool singular) - QCString trFile(bool first_capital, bool singular) - QCString trField(bool first_capital, bool singular) - QCString trGroup(bool first_capital, bool singular) - QCString trNamespace(bool first_capital, bool singular) - QCString trClass(bool first_capital, bool singular) - QCString trMember(bool first_capital, bool singular) - QCString trAuthor(bool first_capital, bool singular) + Missing methods (should be implemented): -Obsolete methods (should be removed): + virtual QCString trSourceFile(QCString & filename) - QCString trAuthor(bool, bool singular) - QCString trClass(bool, bool singular) - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool ) - QCString trField(bool, bool singular) - QCString trFile(bool, bool singular) - QCString trGroup(bool, bool singular) - QCString trMember(bool, bool singular) - QCString trNamespace(bool, bool singular) - QCString trPage(bool, bool singular) +TranslatorGreek (TranslatorAdapter_1_2_11) 19 methods to implement +--------------- + Implements 176 of the required methods. -TranslatorDanish (TranslatorAdapterCVS) ----------------- + Missing methods (should be implemented): -Missing methods (should be implemented): + virtual QCString trEventDocumentation() + virtual QCString trImplementedFromList(int numEntries) + virtual QCString trPackageMembers() + virtual QCString trStaticPackageMembers() + virtual QCString trSearchResultsTitle() + virtual QCString trStaticPackageAttribs() + virtual QCString trCallGraph() + virtual QCString trDeprecatedList() + virtual QCString trPackageTypes() + virtual QCString trImplementedInList(int numEntries) + virtual QCString trSearchResults(int numDocuments) + virtual QCString trPackageAttribs() + virtual QCString trSearchMatches() + virtual QCString trEvents() + virtual QCString trReferences() + virtual QCString trSourceFile(QCString & filename) + virtual QCString trSearchForIndex() + virtual QCString trAll() + virtual QCString trRTFTableOfContents() - QCString trAuthor(bool first_capital, bool singular) + Obsolete methods (should be removed, never used): -Obsolete methods (should be removed): + virtual QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() +TranslatorHungarian (TranslatorAdapter_1_3_8) 1 method to implement +------------------- + Implements 194 of the required methods. -TranslatorSpanish (TranslatorAdapterCVS) ------------------ + Missing methods (should be implemented): -Missing methods (should be implemented): + virtual QCString trSourceFile(QCString & filename) - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) - QCString trAuthor(bool first_capital, bool singular) -Obsolete methods (should be removed): +TranslatorJapaneseEn (TranslatorEnglish) 190 methods to implement +-------------------- - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool ) - QCString trFiles() - QCString trVerbatimText(const char *f) + Implements 5 of the required methods. + This English-based translator implements the following methods: + virtual QCString trRTFansicp() + virtual QCString idLanguage() + virtual QCString trRTFCharSet() + virtual QCString latexLanguageSupportCommand() + virtual QCString idLanguageCharset() -TranslatorFinnish (TranslatorAdapter_1_0_0) ------------------ -Missing methods (should be implemented): - - QCString trGotoTextualHierarchy() - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) - QCString trRTFGeneralIndex() - QCString trSources() - QCString trPage(bool first_capital, bool singular) - QCString trPackageListDescription() - QCString trFile(bool first_capital, bool singular) - QCString trPrivateTypes() - QCString trDeprecated() - QCString trNote() - QCString trAlphabeticalList() - QCString trDefinedInSourceFile() - QCString trCode() - QCString trBug() - QCString trGlobal(bool first_capital, bool singular) - QCString trInitialValue() - QCString trPackageList() - QCString trField(bool first_capital, bool singular) - QCString trDefinedAtLineInSourceFile() - QCString trGroup(bool first_capital, bool singular) - QCString trPackage(const char *name) - QCString trProtectedTypes() - QCString trTest() - QCString trConstructorDocumentation() - QCString trProtectedAttribs() - QCString trProperties() - QCString trReferencedBy() - QCString trPrecondition() - QCString trPrivateAttribs() - QCString trRemarks() - QCString trTodo() - QCString trBugList() - QCString trDCOPMethods() - QCString trStaticPublicAttribs() - QCString trMainPage() - QCString trGotoGraphicalHierarchy() - QCString trPackageDocumentation() - QCString trRTFansicp() - QCString trPostcondition() - QCString trLegend() - QCString trPageAbbreviation() - QCString trPageIndex() - QCString trNamespace(bool first_capital, bool singular) - QCString trTestList() - QCString trCollaborationDiagram(const char *clName) - QCString trPropertyDocumentation() - QCString trClass(bool first_capital, bool singular) - QCString trInvariant() - QCString trTodoList() - QCString trPublicTypes() - QCString idLanguageCharset() - QCString trAttention() - QCString trGeneratedFromFiles(ClassDef::CompoundType compType, bool single) - QCString trInterfaces() - QCString trGotoSourceCode() - QCString trRTFCharSet() - QCString latexLanguageSupportCommand() - QCString trPackages() - QCString trNamespaces() - QCString trMember(bool first_capital, bool singular) - QCString trInclDepGraph(const char *fName) - QCString trDefineValue() - QCString trStaticProtectedAttribs() - QCString trInclByDepGraph() - QCString trReturnValues() - QCString trLegendTitle() - QCString trSince() - QCString trGotoDocumentation() - QCString trPublicAttribs() - QCString trLegendDocs() - QCString trStaticPrivateAttribs() - QCString trAuthor(bool first_capital, bool singular) - QCString trGraphicalHierarchy() - QCString trClasses() - -Obsolete methods (should be removed): - - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool ) - QCString trFiles() - QCString trGeneratedFrom(const char *s,bool single) - QCString trVerbatimText(const char *f) - - - -TranslatorFrench (TranslatorAdapter_1_2_0) +TranslatorKorean (TranslatorAdapter_1_3_8) 1 method to implement ---------------- -Missing methods (should be implemented): - - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) - QCString trRTFGeneralIndex() - QCString trPage(bool first_capital, bool singular) - QCString trPackageListDescription() - QCString trFile(bool first_capital, bool singular) - QCString trBug() - QCString trGlobal(bool first_capital, bool singular) - QCString trPackageList() - QCString trField(bool first_capital, bool singular) - QCString trGroup(bool first_capital, bool singular) - QCString trPackage(const char *name) - QCString trTest() - QCString trProperties() - QCString trBugList() - QCString trDCOPMethods() - QCString trPackageDocumentation() - QCString trRTFansicp() - QCString trNamespace(bool first_capital, bool singular) - QCString trTestList() - QCString trPropertyDocumentation() - QCString trClass(bool first_capital, bool singular) - QCString trInterfaces() - QCString trRTFCharSet() - QCString latexLanguageSupportCommand() - QCString trPackages() - QCString trMember(bool first_capital, bool singular) - QCString trDefineValue() - QCString trAuthor(bool first_capital, bool singular) - QCString trClasses() - -Obsolete methods (should be removed): - - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool ) - QCString trFiles() - QCString trIncludeFile() - QCString trVerbatimText(const char *f) - - - -TranslatorCroatian (Translator) + Implements 194 of the required methods. + + Missing methods (should be implemented): + + virtual QCString trSourceFile(QCString & filename) + + +TranslatorKoreanEn (TranslatorEnglish) 190 methods to implement ------------------ -Missing methods (should be implemented): + Implements 5 of the required methods. - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) + This English-based translator implements the following methods: -Obsolete methods (should be removed): + virtual QCString trRTFansicp() + virtual QCString idLanguage() + virtual QCString trRTFCharSet() + virtual QCString latexLanguageSupportCommand() + virtual QCString idLanguageCharset() - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool ) +TranslatorLithuanian (TranslatorAdapter_1_3_8) 1 method to implement +-------------------- + Implements 194 of the required methods. -TranslatorHungarian (TranslatorAdapter_1_2_1) -------------------- + Missing methods (should be implemented): -Missing methods (should be implemented): - - QCString trRTFGeneralIndex() - QCString trPage(bool first_capital, bool singular) - QCString trPackageListDescription() - QCString trFile(bool first_capital, bool singular) - QCString trBug() - QCString trGlobal(bool first_capital, bool singular) - QCString trPackageList() - QCString trField(bool first_capital, bool singular) - QCString trGroup(bool first_capital, bool singular) - QCString trPackage(const char *name) - QCString trProperties() - QCString trBugList() - QCString trDCOPMethods() - QCString trPackageDocumentation() - QCString trRTFansicp() - QCString trNamespace(bool first_capital, bool singular) - QCString trPropertyDocumentation() - QCString trClass(bool first_capital, bool singular) - QCString trInterfaces() - QCString trRTFCharSet() - QCString trPackages() - QCString trMember(bool first_capital, bool singular) - QCString trDefineValue() - QCString trAuthor(bool first_capital, bool singular) - QCString trClasses() - -Obsolete methods (should be removed): - - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trFiles() - QCString trVerbatimText(const char *f) - - - -TranslatorItalian (TranslatorAdapterCVS) ------------------ + virtual QCString trSourceFile(QCString & filename) -Missing methods (should be implemented): - QCString trFile(bool first_capital, bool singular) - QCString trNamespace(bool first_capital, bool singular) - QCString trAuthor(bool first_capital, bool singular) +TranslatorPolish (TranslatorAdapter_1_3) 12 methods to implement +---------------- -Obsolete methods (should be removed): + Implements 183 of the required methods. - QCString trAuthor() - QCString trAuthors() - QCString trFile(bool first_capital, bool) - QCString trFiles() - QCString trNamespace(bool first_capital, bool) - QCString trVerbatimText(const char *f) + Missing methods (should be implemented): + virtual QCString trPackageMembers() + virtual QCString trStaticPackageMembers() + virtual QCString trSearchResultsTitle() + virtual QCString trStaticPackageAttribs() + virtual QCString trCallGraph() + virtual QCString trPackageTypes() + virtual QCString trSearchResults(int numDocuments) + virtual QCString trPackageAttribs() + virtual QCString trSearchMatches() + virtual QCString trSourceFile(QCString & filename) + virtual QCString trSearchForIndex() + virtual QCString trAll() + Obsolete methods (should be removed, never used): -TranslatorJapanese (TranslatorAdapter_1_2_5) ------------------- + QCString trVerbatimText(const char * f) + QCString trFiles() + QCString trAuthors() + QCString latexBabelPackage() + QCString trAuthor() -Missing methods (should be implemented): - - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) - QCString trRTFGeneralIndex() - QCString trPage(bool first_capital, bool singular) - QCString trFile(bool first_capital, bool singular) - QCString trBug() - QCString trGlobal(bool first_capital, bool singular) - QCString trField(bool first_capital, bool singular) - QCString trGroup(bool first_capital, bool singular) - QCString trBugList() - QCString trRTFansicp() - QCString trNamespace(bool first_capital, bool singular) - QCString trClass(bool first_capital, bool singular) - QCString trGeneratedFromFiles(ClassDef::CompoundType compType, bool single) - QCString trRTFCharSet() - QCString latexLanguageSupportCommand() - QCString trMember(bool first_capital, bool singular) - QCString trAuthor(bool first_capital, bool singular) - -Obsolete methods (should be removed): - - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool ) - QCString trFiles() - QCString trGeneratedFromFiles(ClassDef::CompoundType compType, bool) - QCString trVerbatimText(const char *f) - - - -TranslatorKorean (TranslatorAdapter_1_1_0) ----------------- -Missing methods (should be implemented): - - QCString trRTFGeneralIndex() - QCString trPage(bool first_capital, bool singular) - QCString trPackageListDescription() - QCString trFile(bool first_capital, bool singular) - QCString trPrivateTypes() - QCString trNote() - QCString trBug() - QCString trGlobal(bool first_capital, bool singular) - QCString trPackageList() - QCString trField(bool first_capital, bool singular) - QCString trGroup(bool first_capital, bool singular) - QCString trPackage(const char *name) - QCString trProtectedTypes() - QCString trTest() - QCString trProtectedAttribs() - QCString trProperties() - QCString trReferencedBy() - QCString trPrivateAttribs() - QCString trRemarks() - QCString trTodo() - QCString trBugList() - QCString trDCOPMethods() - QCString trStaticPublicAttribs() - QCString trPackageDocumentation() - QCString trRTFansicp() - QCString trLegend() - QCString trNamespace(bool first_capital, bool singular) - QCString trTestList() - QCString trPropertyDocumentation() - QCString trClass(bool first_capital, bool singular) - QCString trTodoList() - QCString trPublicTypes() - QCString trAttention() - QCString trInterfaces() - QCString trRTFCharSet() - QCString latexLanguageSupportCommand() - QCString trPackages() - QCString trMember(bool first_capital, bool singular) - QCString trDefineValue() - QCString trStaticProtectedAttribs() - QCString trInclByDepGraph() - QCString trLegendTitle() - QCString trSince() - QCString trPublicAttribs() - QCString trLegendDocs() - QCString trStaticPrivateAttribs() - QCString trAuthor(bool first_capital, bool singular) - QCString trClasses() - -Obsolete methods (should be removed): - - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trFiles() - QCString trVerbatimText(const char *f) - - - -TranslatorDutch (TranslatorAdapter_1_2_6) ---------------- +TranslatorPortuguese (TranslatorAdapter_1_3_3) 5 methods to implement +-------------------- -Missing methods (should be implemented): + Implements 190 of the required methods. - QCString trRTFGeneralIndex() - QCString trPage(bool first_capital, bool singular) - QCString trFile(bool first_capital, bool singular) - QCString trGlobal(bool first_capital, bool singular) - QCString trField(bool first_capital, bool singular) - QCString trGroup(bool first_capital, bool singular) - QCString trRTFansicp() - QCString trNamespace(bool first_capital, bool singular) - QCString trClass(bool first_capital, bool singular) - QCString idLanguageCharset() - QCString trRTFCharSet() - QCString latexLanguageSupportCommand() - QCString trMember(bool first_capital, bool singular) - QCString trAuthor(bool first_capital, bool singular) + Missing methods (should be implemented): -Obsolete methods (should be removed): + virtual QCString trSearchResultsTitle() + virtual QCString trSearchResults(int numDocuments) + virtual QCString trSearchMatches() + virtual QCString trSourceFile(QCString & filename) + virtual QCString trSearchForIndex() - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trFiles() - QCString trVerbatimText(const char *f) +TranslatorRomanian (TranslatorAdapter_1_2_16) 16 methods to implement +------------------ + Implements 179 of the required methods. + + Missing methods (should be implemented): + + virtual QCString trEventDocumentation() + virtual QCString trPackageMembers() + virtual QCString trStaticPackageMembers() + virtual QCString trSearchResultsTitle() + virtual QCString trStaticPackageAttribs() + virtual QCString trCallGraph() + virtual QCString trDeprecatedList() + virtual QCString trPackageTypes() + virtual QCString trSearchResults(int numDocuments) + virtual QCString trPackageAttribs() + virtual QCString trSearchMatches() + virtual QCString trEvents() + virtual QCString trSourceFile(QCString & filename) + virtual QCString trSearchForIndex() + virtual QCString trAll() + virtual QCString trRTFTableOfContents() + + +TranslatorSerbian (TranslatorAdapter_1_3_8) 1 method to implement +----------------- -TranslatorNorwegian (TranslatorAdapter_1_2_2) -------------------- + Implements 194 of the required methods. + + Missing methods (should be implemented): + + virtual QCString trSourceFile(QCString & filename) -Missing methods (should be implemented): - - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) - QCString trRTFGeneralIndex() - QCString trPage(bool first_capital, bool singular) - QCString trPackageListDescription() - QCString trFile(bool first_capital, bool singular) - QCString trBug() - QCString trGlobal(bool first_capital, bool singular) - QCString trPackageList() - QCString trField(bool first_capital, bool singular) - QCString trGroup(bool first_capital, bool singular) - QCString trPackage(const char *name) - QCString trProperties() - QCString trBugList() - QCString trPackageDocumentation() - QCString trRTFansicp() - QCString trNamespace(bool first_capital, bool singular) - QCString trPropertyDocumentation() - QCString trClass(bool first_capital, bool singular) - QCString idLanguageCharset() - QCString trInterfaces() - QCString trRTFCharSet() - QCString latexLanguageSupportCommand() - QCString trPackages() - QCString trMember(bool first_capital, bool singular) - QCString trDefineValue() - QCString trAuthor(bool first_capital, bool singular) - QCString trClasses() - -Obsolete methods (should be removed): - - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool ) - QCString trFiles() - QCString trVerbatimText(const char *f) - - - -TranslatorPolish (TranslatorAdapter_1_2_1) + +TranslatorSlovak (TranslatorAdapter_1_2_18) 14 methods to implement ---------------- -Missing methods (should be implemented): - - QCString trRTFGeneralIndex() - QCString trPage(bool first_capital, bool singular) - QCString trPackageListDescription() - QCString trFile(bool first_capital, bool singular) - QCString trBug() - QCString trGlobal(bool first_capital, bool singular) - QCString trPackageList() - QCString trField(bool first_capital, bool singular) - QCString trGroup(bool first_capital, bool singular) - QCString trPackage(const char *name) - QCString trProperties() - QCString trBugList() - QCString trDCOPMethods() - QCString trPackageDocumentation() - QCString trRTFansicp() - QCString trNamespace(bool first_capital, bool singular) - QCString trPropertyDocumentation() - QCString trClass(bool first_capital, bool singular) - QCString idLanguageCharset() - QCString trInterfaces() - QCString trRTFCharSet() - QCString trPackages() - QCString trMember(bool first_capital, bool singular) - QCString trDefineValue() - QCString trAuthor(bool first_capital, bool singular) - QCString trClasses() - -Obsolete methods (should be removed): - - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trFiles() - QCString trVerbatimText(const char *f) - - - -TranslatorPortuguese (TranslatorAdapter_1_1_5) --------------------- + Implements 181 of the required methods. -Missing methods (should be implemented): - - QCString trRTFGeneralIndex() - QCString trPage(bool first_capital, bool singular) - QCString trPackageListDescription() - QCString trFile(bool first_capital, bool singular) - QCString trBug() - QCString trGlobal(bool first_capital, bool singular) - QCString trPackageList() - QCString trField(bool first_capital, bool singular) - QCString trGroup(bool first_capital, bool singular) - QCString trPackage(const char *name) - QCString trTest() - QCString trProperties() - QCString trBugList() - QCString trDCOPMethods() - QCString trPackageDocumentation() - QCString trRTFansicp() - QCString trLegend() - QCString trNamespace(bool first_capital, bool singular) - QCString trTestList() - QCString trPropertyDocumentation() - QCString trClass(bool first_capital, bool singular) - QCString idLanguageCharset() - QCString trInterfaces() - QCString trRTFCharSet() - QCString latexLanguageSupportCommand() - QCString trPackages() - QCString trMember(bool first_capital, bool singular) - QCString trDefineValue() - QCString trLegendTitle() - QCString trLegendDocs() - QCString trAuthor(bool first_capital, bool singular) - QCString trClasses() - -Obsolete methods (should be removed): - - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trFiles() - QCString trIncludeFile() - QCString trVerbatimText(const char *f) - - - -TranslatorRomanian (TranslatorAdapter_1_2_1) ------------------- + Missing methods (should be implemented): -Missing methods (should be implemented): - - QCString trRTFGeneralIndex() - QCString trPage(bool first_capital, bool singular) - QCString trPackageListDescription() - QCString trFile(bool first_capital, bool singular) - QCString trBug() - QCString trGlobal(bool first_capital, bool singular) - QCString trPackageList() - QCString trField(bool first_capital, bool singular) - QCString trGroup(bool first_capital, bool singular) - QCString trPackage(const char *name) - QCString trProperties() - QCString trBugList() - QCString trDCOPMethods() - QCString trPackageDocumentation() - QCString trRTFansicp() - QCString trNamespace(bool first_capital, bool singular) - QCString trPropertyDocumentation() - QCString trClass(bool first_capital, bool singular) - QCString trInterfaces() - QCString trRTFCharSet() - QCString trPackages() - QCString trMember(bool first_capital, bool singular) - QCString trDefineValue() - QCString trAuthor(bool first_capital, bool singular) - QCString trClasses() - -Obsolete methods (should be removed): - - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trFiles() - QCString trVerbatimText(const char *f) - - - -TranslatorSwedish (TranslatorAdapter_1_0_0) + virtual QCString trEventDocumentation() + virtual QCString trPackageMembers() + virtual QCString trStaticPackageMembers() + virtual QCString trSearchResultsTitle() + virtual QCString trStaticPackageAttribs() + virtual QCString trCallGraph() + virtual QCString trPackageTypes() + virtual QCString trSearchResults(int numDocuments) + virtual QCString trPackageAttribs() + virtual QCString trSearchMatches() + virtual QCString trEvents() + virtual QCString trSourceFile(QCString & filename) + virtual QCString trSearchForIndex() + virtual QCString trAll() + + +TranslatorSlovene (TranslatorAdapter_1_2_16) 16 methods to implement ----------------- -Missing methods (should be implemented): - - QCString trGotoTextualHierarchy() - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) - QCString trRTFGeneralIndex() - QCString trPage(bool first_capital, bool singular) - QCString trPackageListDescription() - QCString trFile(bool first_capital, bool singular) - QCString trPrivateTypes() - QCString trDeprecated() - QCString trNote() - QCString trCode() - QCString trBug() - QCString trGlobal(bool first_capital, bool singular) - QCString trInitialValue() - QCString trPackageList() - QCString trField(bool first_capital, bool singular) - QCString trGroup(bool first_capital, bool singular) - QCString trPackage(const char *name) - QCString trProtectedTypes() - QCString trTest() - QCString trConstructorDocumentation() - QCString trProtectedAttribs() - QCString trProperties() - QCString trReferencedBy() - QCString trPrecondition() - QCString trPrivateAttribs() - QCString trRemarks() - QCString trTodo() - QCString trBugList() - QCString trDCOPMethods() - QCString trStaticPublicAttribs() - QCString trGotoGraphicalHierarchy() - QCString trPackageDocumentation() - QCString trRTFansicp() - QCString trPostcondition() - QCString trLegend() - QCString trPageIndex() - QCString trNamespace(bool first_capital, bool singular) - QCString trTestList() - QCString trCollaborationDiagram(const char *clName) - QCString trPropertyDocumentation() - QCString trClass(bool first_capital, bool singular) - QCString trInvariant() - QCString trTodoList() - QCString trPublicTypes() - QCString idLanguageCharset() - QCString trAttention() - QCString trInterfaces() - QCString trGotoSourceCode() - QCString trRTFCharSet() - QCString latexLanguageSupportCommand() - QCString trPackages() - QCString trMember(bool first_capital, bool singular) - QCString trInclDepGraph(const char *fName) - QCString trDefineValue() - QCString trStaticProtectedAttribs() - QCString trInclByDepGraph() - QCString trLegendTitle() - QCString trSince() - QCString trGotoDocumentation() - QCString trPublicAttribs() - QCString trLegendDocs() - QCString trStaticPrivateAttribs() - QCString trAuthor(bool first_capital, bool singular) - QCString trGraphicalHierarchy() - QCString trClasses() - -Obsolete methods (should be removed): - - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool ) - QCString trFiles() - QCString trVerbatimText(const char *f) - - - -TranslatorSlovene (TranslatorAdapter_1_1_5) + Implements 179 of the required methods. + + Missing methods (should be implemented): + + virtual QCString trEventDocumentation() + virtual QCString trPackageMembers() + virtual QCString trStaticPackageMembers() + virtual QCString trSearchResultsTitle() + virtual QCString trStaticPackageAttribs() + virtual QCString trCallGraph() + virtual QCString trDeprecatedList() + virtual QCString trPackageTypes() + virtual QCString trSearchResults(int numDocuments) + virtual QCString trPackageAttribs() + virtual QCString trSearchMatches() + virtual QCString trEvents() + virtual QCString trSourceFile(QCString & filename) + virtual QCString trSearchForIndex() + virtual QCString trAll() + virtual QCString trRTFTableOfContents() + + +TranslatorSpanish (TranslatorAdapter_1_3_8) 1 method to implement ----------------- -Missing methods (should be implemented): - - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) - QCString trRTFGeneralIndex() - QCString trPage(bool first_capital, bool singular) - QCString trPackageListDescription() - QCString trFile(bool first_capital, bool singular) - QCString trBug() - QCString trGlobal(bool first_capital, bool singular) - QCString trPackageList() - QCString trField(bool first_capital, bool singular) - QCString trGroup(bool first_capital, bool singular) - QCString trPackage(const char *name) - QCString trTest() - QCString trProperties() - QCString trBugList() - QCString trDCOPMethods() - QCString trPackageDocumentation() - QCString trRTFansicp() - QCString trLegend() - QCString trNamespace(bool first_capital, bool singular) - QCString trTestList() - QCString trPropertyDocumentation() - QCString trClass(bool first_capital, bool singular) - QCString trInterfaces() - QCString trRTFCharSet() - QCString trPackages() - QCString trMember(bool first_capital, bool singular) - QCString trDefineValue() - QCString trLegendTitle() - QCString trLegendDocs() - QCString trAuthor(bool first_capital, bool singular) - QCString trClasses() - -Obsolete methods (should be removed): - - QCString latexBabelPackage() - QCString trAuthor() - QCString trAuthors() - QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool ) - QCString trFiles() - QCString trVerbatimText(const char *f) - - - -TranslatorSlovak (TranslatorAdapterCVS) ----------------- + Implements 194 of the required methods. + + Missing methods (should be implemented): + + virtual QCString trSourceFile(QCString & filename) + + Obsolete methods (should be removed, never used): -Missing methods (should be implemented): + virtual QCString trVerbatimText(const char * f) + virtual QCString trFiles() + virtual QCString trAuthors() + virtual QCString latexBabelPackage() - QCString trAuthor(bool first_capital, bool singular) -Obsolete methods (should be removed): +TranslatorSwedish (TranslatorAdapter_1_3_8) 1 method to implement +----------------- + + Implements 194 of the required methods. + + Missing methods (should be implemented): - QCString trAuthor() - QCString trAuthors() - QCString trFiles() + virtual QCString trSourceFile(QCString & filename) + + +TranslatorUkrainian (TranslatorAdapter_1_2_11) 19 methods to implement +------------------- + Implements 176 of the required methods. + + Missing methods (should be implemented): + + virtual QCString trEventDocumentation() + virtual QCString trImplementedFromList(int numEntries) + virtual QCString trPackageMembers() + virtual QCString trStaticPackageMembers() + virtual QCString trSearchResultsTitle() + virtual QCString trStaticPackageAttribs() + virtual QCString trCallGraph() + virtual QCString trDeprecatedList() + virtual QCString trPackageTypes() + virtual QCString trImplementedInList(int numEntries) + virtual QCString trSearchResults(int numDocuments) + virtual QCString trPackageAttribs() + virtual QCString trSearchMatches() + virtual QCString trEvents() + virtual QCString trReferences() + virtual QCString trSourceFile(QCString & filename) + virtual QCString trSearchForIndex() + virtual QCString trAll() + virtual QCString trRTFTableOfContents() \ No newline at end of file diff --git a/doc/trouble.doc b/doc/trouble.doc index e4165fb..c8c1c0e 100644 --- a/doc/trouble.doc +++ b/doc/trouble.doc @@ -71,6 +71,8 @@
  • Version 1.8.6 of dot (and maybe earlier versions too) do not generate proper map files, causing the graphs that doxygen generates not to be properly clickable. +
  • PHP only: Doxygen requires that all PHP statements (i.e. code) is + wrapped in a functions/methods, otherwise you may run into parse problems. diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec index 7a358d5..7ab9201 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.3.8_20040803 +Version: 1.3.8_20040812 Release: 1 Epoch: 1 Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz diff --git a/src/classdef.cpp b/src/classdef.cpp index 31555b4..9229ce3 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -955,7 +955,7 @@ void ClassDef::writeDocumentation(OutputList &ol) if (Config_getBool("SEARCHENGINE")) { Doxygen::searchIndex->setCurrentDoc(pageTitle,getOutputFileBase()); - Doxygen::searchIndex->addWord(localName().lower()); + Doxygen::searchIndex->addWord(localName()); } ol.startTextBlock(); @@ -2823,6 +2823,8 @@ QCString ClassDef::className() const void ClassDef::addListReferences() { + if (!isLinkableInProject()) return; + //printf("ClassDef(%s)::addListReferences()\n",name().data()); addRefItem(xrefListItems(), theTranslator->trClass(TRUE,TRUE), getOutputFileBase(),displayName() diff --git a/src/commentcnv.l b/src/commentcnv.l index 7e7d6a4..0f9f956 100644 --- a/src/commentcnv.l +++ b/src/commentcnv.l @@ -243,12 +243,16 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'")) g_readLineCtx=YY_START; BEGIN(ReadLine); } -^[ \t]*"//!"/.*\n { +^[ \t]*"//!" | // just //! +^[ \t]*"//!<"/.*\n | // or //!< something +^[ \t]*"//!"[^<]/.*\n { // or //!something replaceComment(0); g_readLineCtx=YY_START; BEGIN(ReadLine); } -\n[ \t]*"//!"/.*\n { +\n[ \t]*"//!" | +\n[ \t]*"//!<"/.*\n | +\n[ \t]*"//!"[^<]/.*\n { replaceComment(1); g_readLineCtx=YY_START; BEGIN(ReadLine); @@ -297,6 +301,7 @@ void replaceComment(int offset) } else { + //printf("replaceComment(%s)\n",yytext); int i=computeIndent(&yytext[offset]); if (i==g_blockHeadCol) { diff --git a/src/config.l b/src/config.l index 0371916..de33167 100644 --- a/src/config.l +++ b/src/config.l @@ -2521,7 +2521,9 @@ void Config::create() "are defined before the preprocessor is started (similar to the -D option of \n" "gcc). The argument of the tag is a list of macros of the form: name \n" "or name=definition (no spaces). If the definition and the = are \n" - "omitted =1 is assumed. \n" + "omitted =1 is assumed. To prevent a macro definition from being \n" + "undefined via #undef or recursively expanded use the := operator \n" + "instead of the = operator.\n" ); cl->addDependency("ENABLE_PREPROCESSING"); cl = addList( diff --git a/src/definition.cpp b/src/definition.cpp index 346b7e6..57d585e 100644 --- a/src/definition.cpp +++ b/src/definition.cpp @@ -363,6 +363,7 @@ void Definition::writeSourceDef(OutputList &ol,const char *) QCString lineStr,anchorStr; lineStr.sprintf("%d",m_startBodyLine); anchorStr.sprintf("l%05d",m_startBodyLine); + ol.newParagraph(); if (lineMarkerPosaddWord(word.lower()); + Doxygen::searchIndex->addWord(word); } } @@ -1251,7 +1251,7 @@ DocLinkedWord::DocLinkedWord(DocNode *parent,const QString &word, //printf("new word %s url=%s\n",word.data(),g_searchUrl.data()); if (!g_searchUrl.isEmpty()) { - Doxygen::searchIndex->addWord(word.lower()); + Doxygen::searchIndex->addWord(word); } } @@ -1517,6 +1517,8 @@ bool DocXRefItem::parse() m_file = refList->listName(); m_anchor = item->listAnchor; m_title = refList->sectionTitle(); + //printf("DocXRefItem: file=%s anchor=%s title=%s\n", + // m_file.data(),m_anchor.data(),m_title.data()); if (!item->text.isEmpty()) { diff --git a/src/doctokenizer.l b/src/doctokenizer.l index 638d30a..62d8886 100644 --- a/src/doctokenizer.l +++ b/src/doctokenizer.l @@ -283,7 +283,8 @@ URLCHAR [a-z_A-Z0-9\!\~\:\;\'\$\?\@\&\%\#\.\-\+\/\=] URLMASK (([a-z_A-Z][^\>\"\n]*{URLCHAR})|({URLCHAR}+))([({]{URLCHAR}*[)}])? FILESCHAR [a-z_A-Z0-9\\:\\\/\-\+] FILEECHAR [a-z_A-Z0-9\-\+] -FILEMASK {FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)* +HFILEMASK ("."{FILESCHAR}*{FILEECHAR}+)* +FILEMASK ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|{HFILEMASK} LINKMASK [^ \t\n\r\\@<&${}]+("("[^\n)]*")")?({BLANK}*("const"|"volatile"))? SPCMD1 {CMD}[a-z_A-Z0-9]+ SPCMD2 {CMD}[\\@<>&$#%~] diff --git a/src/doxygen.cpp b/src/doxygen.cpp index e923082..7fe82bb 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -1903,15 +1903,6 @@ static void buildVarList(Entry *root) } p=p->parent; } - // scope annonymous scope name at the end to determine the scope - // where we can put this variable - - //while ((i=scope.findRev("::"))!=-1 && (int)scope.length()>i+2 && - // scope.at(i+2)=='@' - // ) - //{ - // scope=scope.left(i); - //} MemberDef::MemberType mtype; QCString type=root->type.stripWhiteSpace(); @@ -4340,6 +4331,7 @@ static void findMember(Entry *root, QCString funcArgs; QCString funcTempList; QCString exceptions; + QCString funcSpec; bool isRelated=FALSE; bool isFriend=FALSE; bool done; @@ -4449,7 +4441,7 @@ static void findMember(Entry *root, } } scopeName=stripTemplateSpecifiersFromScope( - removeRedundantWhiteSpace(scopeName),FALSE); + removeRedundantWhiteSpace(scopeName),FALSE,&funcSpec); // split scope into a namespace and a class part extractNamespaceName(scopeName,className,namespaceName,TRUE); @@ -4482,7 +4474,14 @@ static void findMember(Entry *root, if (cd) { if (root->tArgLists) root->tArgLists->first(); - tempScopeName=cd->qualifiedNameWithTemplateParameters(root->tArgLists); + if (funcSpec.isEmpty()) + { + tempScopeName=cd->qualifiedNameWithTemplateParameters(root->tArgLists); + } + else + { + tempScopeName=scopeName+funcSpec; + } } //printf("scopeName=%s cd=%p root->tArgLists=%p result=%s\n", // scopeName.data(),cd,root->tArgLists,tempScopeName.data()); @@ -4551,6 +4550,7 @@ static void findMember(Entry *root, " namespaceName=`%s'\n" " className=`%s`\n" " funcType=`%s'\n" + " funcSpec=`%s'\n" " funcName=`%s'\n" " funcArgs=`%s'\n" " funcTempList=`%s'\n" @@ -4561,7 +4561,7 @@ static void findMember(Entry *root, " isFriend=%d\n" " isFunc=%d\n\n", namespaceName.data(),className.data(), - funcType.data(),funcName.data(),funcArgs.data(),funcTempList.data(), + funcType.data(),funcSpec.data(),funcName.data(),funcArgs.data(),funcTempList.data(), funcDecl.data(),root->relates.data(),exceptions.data(),isRelated,isFriend, isFunc ); @@ -4589,262 +4589,300 @@ static void findMember(Entry *root, "2. member name exists (%d members with this name)\n",mn->count()); if (!className.isEmpty()) // class name is valid { - int count=0; - MemberNameIterator mni(*mn); - MemberDef *md; - bool memFound=FALSE; - for (mni.toFirst();!memFound && (md=mni.current());++mni) + if (funcSpec.isEmpty()) // not a member specialization { - ClassDef *cd=md->getClassDef(); - Debug::print(Debug::FindMembers,0, - "3. member definition found, " - "scope needed=`%s' scope=`%s' args=`%s'\n", - scopeName.data(),cd ? cd->name().data() : "", - md->argsString()); - //printf("Member %s (member scopeName=%s) (this scopeName=%s) classTempList=%s\n",md->name().data(),cd->name().data(),scopeName.data(),classTempList.data()); - bool ambig; - FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig); - NamespaceDef *nd=0; - if (!namespaceName.isEmpty()) nd=getResolvedNamespace(namespaceName); - - ClassDef *tcd=findClassDefinition(fd,nd,scopeName); - - if (cd && tcd==cd) // member's classes match + int count=0; + MemberNameIterator mni(*mn); + MemberDef *md; + bool memFound=FALSE; + for (mni.toFirst();!memFound && (md=mni.current());++mni) { + ClassDef *cd=md->getClassDef(); Debug::print(Debug::FindMembers,0, - "4. class definition %s found\n",cd->name().data()); - //int ci; - //ArgumentList *classTemplArgs = cd->templateArguments(); - //ArgumentList *funcTemplArgs = md->memberDefTemplateArguments(); - //if ((ci=cd->name().find("::"))!=-1) // nested class - //{ - // ClassDef *parentClass = getClass(cd->name().left(ci)); - // if (parentClass) - // classTemplArgs = parentClass->templateArguments(); - //} - ////printf("cd->name=%s classTemplArgs=%s\n",cd->name().data(), - //// argListToString(classTemplArgs).data()); - - - // get the template parameter lists found at the member declaration - QList declTemplArgs; - cd->getTemplateParameterLists(declTemplArgs); - if (md->templateArguments()) - { - declTemplArgs.append(md->templateArguments()); - } + "3. member definition found, " + "scope needed=`%s' scope=`%s' args=`%s'\n", + scopeName.data(),cd ? cd->name().data() : "", + md->argsString()); + //printf("Member %s (member scopeName=%s) (this scopeName=%s) classTempList=%s\n",md->name().data(),cd->name().data(),scopeName.data(),classTempList.data()); + bool ambig; + FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig); + NamespaceDef *nd=0; + if (!namespaceName.isEmpty()) nd=getResolvedNamespace(namespaceName); - // get the template parameter lists found at the member definition - QList *defTemplArgs = root->tArgLists; - //printf("defTemplArgs=%p\n",defTemplArgs); + ClassDef *tcd=findClassDefinition(fd,nd,scopeName); - // do we replace the decl argument lists with the def argument lists? - bool substDone=FALSE; - ArgumentList *argList=0; - - /* substitute the occurrences of class template names in the - * argument list before matching - */ - if (declTemplArgs.count()>0 && defTemplArgs && - declTemplArgs.count()==defTemplArgs->count() && - md->argumentList() - ) + if (cd && tcd==cd) // member's classes match { - /* the function definition has template arguments - * and the class definition also has template arguments, so - * we must substitute the template names of the class by that - * of the function definition before matching. + Debug::print(Debug::FindMembers,0, + "4. class definition %s found\n",cd->name().data()); + //int ci; + //ArgumentList *classTemplArgs = cd->templateArguments(); + //ArgumentList *funcTemplArgs = md->memberDefTemplateArguments(); + //if ((ci=cd->name().find("::"))!=-1) // nested class + //{ + // ClassDef *parentClass = getClass(cd->name().left(ci)); + // if (parentClass) + // classTemplArgs = parentClass->templateArguments(); + //} + ////printf("cd->name=%s classTemplArgs=%s\n",cd->name().data(), + //// argListToString(classTemplArgs).data()); + + + // get the template parameter lists found at the member declaration + QList declTemplArgs; + cd->getTemplateParameterLists(declTemplArgs); + if (md->templateArguments()) + { + declTemplArgs.append(md->templateArguments()); + } + + // get the template parameter lists found at the member definition + QList *defTemplArgs = root->tArgLists; + //printf("defTemplArgs=%p\n",defTemplArgs); + + // do we replace the decl argument lists with the def argument lists? + bool substDone=FALSE; + ArgumentList *argList=0; + + /* substitute the occurrences of class template names in the + * argument list before matching */ - argList = new ArgumentList; - substituteTemplatesInArgList(declTemplArgs,*defTemplArgs, - md->argumentList(),argList); + if (declTemplArgs.count()>0 && defTemplArgs && + declTemplArgs.count()==defTemplArgs->count() && + md->argumentList() + ) + { + /* the function definition has template arguments + * and the class definition also has template arguments, so + * we must substitute the template names of the class by that + * of the function definition before matching. + */ + argList = new ArgumentList; + substituteTemplatesInArgList(declTemplArgs,*defTemplArgs, + md->argumentList(),argList); + + substDone=TRUE; + } + else /* no template arguments, compare argument lists directly */ + { + argList = md->argumentList(); + } - substDone=TRUE; - } - else /* no template arguments, compare argument lists directly */ - { - argList = md->argumentList(); - } + Debug::print(Debug::FindMembers,0, + "5. matching `%s'<=>`%s' className=%s namespaceName=%s\n", + argListToString(argList).data(),argListToString(root->argList).data(), + className.data(),namespaceName.data() + ); - Debug::print(Debug::FindMembers,0, - "5. matching `%s'<=>`%s' className=%s namespaceName=%s\n", - argListToString(argList).data(),argListToString(root->argList).data(), - className.data(),namespaceName.data() - ); - - // TODO: match loop for all possible scopes + // TODO: match loop for all possible scopes - bool ambig; - FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig); + bool ambig; + FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig); - // list of namespaces using in the file/namespace that this - // member definition is part of - NamespaceSDict *nl = new NamespaceSDict; - if (nd) - { - NamespaceSDict *nnl = nd->getUsedNamespaces(); - if (nnl) + // list of namespaces using in the file/namespace that this + // member definition is part of + NamespaceSDict *nl = new NamespaceSDict; + if (nd) { - NamespaceDef *nnd; - NamespaceSDict::Iterator nsdi(*nnl); - for (nsdi.toFirst();(nnd=nsdi.current());++nsdi) + NamespaceSDict *nnl = nd->getUsedNamespaces(); + if (nnl) { - nl->append(nnd->qualifiedName(),nnd); + NamespaceDef *nnd; + NamespaceSDict::Iterator nsdi(*nnl); + for (nsdi.toFirst();(nnd=nsdi.current());++nsdi) + { + nl->append(nnd->qualifiedName(),nnd); + } } } - } - if (fd) - { - NamespaceSDict *fnl = fd->getUsedNamespaces(); - if (fnl) + if (fd) { - NamespaceDef *fnd; - NamespaceSDict::Iterator nsdi(*fnl); - for (nsdi.toFirst();(fnd=nsdi.current());++nsdi) + NamespaceSDict *fnl = fd->getUsedNamespaces(); + if (fnl) { - nl->append(fnd->qualifiedName(),fnd); + NamespaceDef *fnd; + NamespaceSDict::Iterator nsdi(*fnl); + for (nsdi.toFirst();(fnd=nsdi.current());++nsdi) + { + nl->append(fnd->qualifiedName(),fnd); + } } } - } - SDict *cl = new SDict(17); - if (nd) - { - SDict *ncl = nd->getUsedClasses(); - if (ncl) + SDict *cl = new SDict(17); + if (nd) { - SDict::Iterator csdi(*ncl); - Definition *ncd; - for (csdi.toFirst();(ncd=csdi.current());++csdi) + SDict *ncl = nd->getUsedClasses(); + if (ncl) { - cl->append(ncd->qualifiedName(),ncd); + SDict::Iterator csdi(*ncl); + Definition *ncd; + for (csdi.toFirst();(ncd=csdi.current());++csdi) + { + cl->append(ncd->qualifiedName(),ncd); + } } } - } - if (fd) - { - SDict *fcl = fd->getUsedClasses(); - if (fcl) + if (fd) { - SDict::Iterator csdi(*fcl); - Definition *fcd; - for (csdi.toFirst();(fcd=csdi.current());++csdi) + SDict *fcl = fd->getUsedClasses(); + if (fcl) { - cl->append(fcd->qualifiedName(),fcd); + SDict::Iterator csdi(*fcl); + Definition *fcd; + for (csdi.toFirst();(fcd=csdi.current());++csdi) + { + cl->append(fcd->qualifiedName(),fcd); + } } } - } - - bool matching= - md->isVariable() || md->isTypedef() || // needed for function pointers - (md->argumentList()==0 && root->argList->count()==0) || - matchArguments(argList, root->argList,className,namespaceName, - TRUE,nl,cl); + bool matching= + md->isVariable() || md->isTypedef() || // needed for function pointers + (md->argumentList()==0 && root->argList->count()==0) || + matchArguments(argList, root->argList,className,namespaceName, + TRUE,nl,cl); - Debug::print(Debug::FindMembers,0, - "6. match results = %d\n",matching); - - if (substDone) // found a new argument list - { - //printf("root->tArgList=`%s'\n",argListToString(root->tArgList).data()); - if (matching) // replace member's argument list + + Debug::print(Debug::FindMembers,0, + "6. match results = %d\n",matching); + + if (substDone) // found a new argument list { - //printf("Setting scope template argument of member %s to %s\n", - // md->name().data(), argListToString(root->tArgList).data() - // ); - //printf("Setting member template argument of member %s to %s\n", - // md->name().data(), argListToString(root->mtArgList).data() - // ); - - md->setDefinitionTemplateParameterLists(root->tArgLists); - md->setArgumentList(argList); + //printf("root->tArgList=`%s'\n",argListToString(root->tArgList).data()); + if (matching) // replace member's argument list + { + //printf("Setting scope template argument of member %s to %s\n", + // md->name().data(), argListToString(root->tArgList).data() + // ); + //printf("Setting member template argument of member %s to %s\n", + // md->name().data(), argListToString(root->mtArgList).data() + // ); + + md->setDefinitionTemplateParameterLists(root->tArgLists); + md->setArgumentList(argList); + } + else // no match -> delete argument list + { + delete argList; + } } - else // no match -> delete argument list + if (matching) { - delete argList; + //printf("addMemberDocs root->inLine=%d md->isInline()=%d\n", + // root->inLine,md->isInline()); + addMemberDocs(root,md,funcDecl,0,overloaded,nl); + count++; + memFound=TRUE; } - } - if (matching) - { - //printf("addMemberDocs root->inLine=%d md->isInline()=%d\n", - // root->inLine,md->isInline()); - addMemberDocs(root,md,funcDecl,0,overloaded,nl); - count++; - memFound=TRUE; - } - delete cl; - delete nl; + delete cl; + delete nl; + } } - } - if (count==0 && root->parent && root->parent->section==Entry::OBJCIMPL_SEC) - { - goto localObjCMethod; - } - if (count==0 && !(isFriend && funcType=="class")) - { - int candidates=0; - if (mn->count()>0) + if (count==0 && root->parent && root->parent->section==Entry::OBJCIMPL_SEC) { - for (mni.toFirst();(md=mni.current());++mni) + goto localObjCMethod; + } + if (count==0 && !(isFriend && funcType=="class")) + { + int candidates=0; + if (mn->count()>0) { - ClassDef *cd=md->getClassDef(); - if (cd!=0 && cd->name()==className) + for (mni.toFirst();(md=mni.current());++mni) { - if (root->tArgLists && md->templateArguments() && - root->tArgLists->getLast()->count()<=md->templateArguments()->count()) - { // assume we have found a template specialization - // for which there is only a definition, no declaration in - // the class. TODO: we should actually check whether - // the arguments match! - addMethodToClass(root,cd,md->name(),/*cd->name(),*/isFriend); - return; + ClassDef *cd=md->getClassDef(); + if (cd!=0 && cd->name()==className) + { + if (root->tArgLists && md->templateArguments() && + root->tArgLists->getLast()->count()<=md->templateArguments()->count()) + { // assume we have found a template specialization + // for which there is only a definition, no declaration in + // the class. TODO: we should actually check whether + // the arguments match! + addMethodToClass(root,cd,md->name(),/*cd->name(),*/isFriend); + return; + } + candidates++; } - candidates++; } } - } - warn(root->fileName,root->startLine, - "Warning: no matching class member found for" - ); + warn(root->fileName,root->startLine, + "Warning: no matching class member found for" + ); - if (root->tArgLists) - { - QListIterator alli(*root->tArgLists); - ArgumentList *al; - for (;(al=alli.current());++alli) + if (root->tArgLists) { - warn_cont(" template %s\n",tempArgListToString(al).data()); + QListIterator alli(*root->tArgLists); + ArgumentList *al; + for (;(al=alli.current());++alli) + { + warn_cont(" template %s\n",tempArgListToString(al).data()); + } } - } - warn_cont(" %s\n",fullFuncDecl.data()); + warn_cont(" %s\n",fullFuncDecl.data()); - if (candidates>0) - { - warn_cont("Possible candidates:\n"); - for (mni.toFirst();(md=mni.current());++mni) + if (candidates>0) { - ClassDef *cd=md->getClassDef(); - if (cd!=0 && cd->name()==className) + warn_cont("Possible candidates:\n"); + for (mni.toFirst();(md=mni.current());++mni) { - if (md->templateArguments()) + ClassDef *cd=md->getClassDef(); + if (cd!=0 && cd->name()==className) { - warn_cont(" template %s\n",tempArgListToString(md->templateArguments()).data()); - } - warn_cont(" "); - if (md->typeString()) - { - warn_cont("%s ",md->typeString()); + if (md->templateArguments()) + { + warn_cont(" template %s\n",tempArgListToString(md->templateArguments()).data()); + } + warn_cont(" "); + if (md->typeString()) + { + warn_cont("%s ",md->typeString()); + } + QCString qScope = cd->qualifiedNameWithTemplateParameters(); + if (!qScope.isEmpty()) warn_cont("%s::%s",qScope.data(),md->name().data()); + if (md->argsString()) warn_cont("%s",md->argsString()); + warn_cont("\n"); } - QCString qScope = cd->qualifiedNameWithTemplateParameters(); - if (!qScope.isEmpty()) warn_cont("%s::%s",qScope.data(),md->name().data()); - if (md->argsString()) warn_cont("%s",md->argsString()); - warn_cont("\n"); } } } } + else // member specialization + { + MemberDef::MemberType mtype=MemberDef::Function; + ArgumentList *tArgList = new ArgumentList; + // getTemplateArgumentsFromName(cd->name()+"::"+funcName,root->tArgLists); + MemberDef *md=new MemberDef( + root->fileName,root->startLine, + funcType,funcName,funcArgs,exceptions, + root->protection,root->virt,root->stat,FALSE, + mtype,tArgList,root->argList); + //printf("new specialized member %s args=`%s'\n",md->name().data(),funcArgs.data()); + if (root->tagInfo) + { + md->setAnchor(root->tagInfo->anchor); + md->setReference(root->tagInfo->tagName); + } + md->setMemberClass(cd); + md->setTemplateSpecialization(TRUE); + md->setDefinition(funcDecl); + md->enableCallGraph(root->callGraph); + md->setDocumentation(root->doc,root->docFile,root->docLine); + md->setInbodyDocumentation(root->inbodyDocs,root->inbodyFile,root->inbodyLine); + md->setDocsForDefinition(!root->proto); + md->setPrototype(root->proto); + md->addSectionsToDefinition(root->anchors); + md->setBodySegment(root->bodyLine,root->endBodyLine); + bool ambig; + FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig); + md->setBodyDef(fd); + md->setMemberSpecifiers(root->memSpec); + md->setMemberGroupId(root->mGrpId); + mn->append(md); + cd->insertMember(md); + md->setRefItems(root->sli); + } } else if (overloaded) // check if the function belongs to only one class { @@ -6683,7 +6721,7 @@ static void generateExampleDocs() pd->docLine(), // startLine pd, // context 0, // memberDef - pd->documentation()+"\n\\include "+pd->name(), // docs + pd->documentation()+"\n\n\\include "+pd->name(), // docs TRUE, // index words TRUE, // is example pd->name() @@ -7073,7 +7111,7 @@ static void copyAndFilterFile(const char *fileName,BufStr &dest) } else { - QCString cmd=filterName+" "+fileName; + QCString cmd=filterName+" \""+fileName+"\""; FILE *f=popen(cmd,"r"); if (!f) { @@ -7214,7 +7252,7 @@ static int readDir(QFileInfo *fi, ) { QDir dir((const char *)fi->absFilePath()); - dir.setFilter( QDir::Files | QDir::Dirs ); + dir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden ); int totalSize=0; //printf("readDir `%s'\n",fi->absFilePath().data()); //printf("killDict=%p count=%d\n",killDict,killDict->count()); @@ -7837,41 +7875,6 @@ void readConfiguration(int argc, char **argv) setPerlModDoxyfile(configFileInfo.absFilePath()); Doxygen::xrefLists->setAutoDelete(TRUE); -#if 0 - /* init the special lists */ - Doxygen::specialLists->insert("todo", - new RefList("todo", - "GENERATE_TODOLIST", - theTranslator->trTodoList(), - theTranslator->trTodo() - //,BaseOutputDocInterface::Todo - ) - ); - Doxygen::specialLists->insert("test", - new RefList("test", - "GENERATE_TESTLIST", - theTranslator->trTestList(), - theTranslator->trTest() - //,BaseOutputDocInterface::Test - ) - ); - Doxygen::specialLists->insert("bug", - new RefList("bug", - "GENERATE_BUGLIST", - theTranslator->trBugList(), - theTranslator->trBug() - //,BaseOutputDocInterface::Bug - ) - ); - Doxygen::specialLists->insert("deprecated", - new RefList("deprecated", - "GENERATE_DEPRECATEDLIST", - theTranslator->trDeprecatedList(), - theTranslator->trDeprecated() - //,BaseOutputDocInterface::Deprecated - ) - ); -#endif } @@ -7884,15 +7887,6 @@ void parseInput() Doxygen::imageNameDict = new FileNameDict(257); Doxygen::dotFileNameDict = new FileNameDict(257); - //if (!Config_getString("DOC_URL").isEmpty()) - //{ - // Doxygen::tagDestinationDict.insert("_doc",new QCString(Config_getString("DOC_URL"))); - //} - //if (!Config_getString("CGI_URL").isEmpty()) - //{ - // Doxygen::tagDestinationDict.insert("_cgi",new QCString(Config_getString("CGI_URL")+"/"+Config_getString("CGI_NAME"))); - //} - /************************************************************************** * Initialize some global constants **************************************************************************/ @@ -8313,16 +8307,16 @@ void parseInput() findEnums(root); findEnumDocumentation(root); + msg("Searching for members imported via using declarations...\n"); + findUsingDeclImports(root); + findUsingDeclarations(root); + msg("Searching for member function documentation...\n"); findObjCMethodDefinitions(root); findMemberDocumentation(root); // may introduce new members ! transferRelatedFunctionDocumentation(); transferFunctionDocumentation(); - msg("Searching for members imported via using declarations...\n"); - findUsingDeclImports(root); - findUsingDeclarations(root); - msg("Building page list...\n"); buildPageList(root); diff --git a/src/filedef.cpp b/src/filedef.cpp index 2dabcc9..12c9872 100644 --- a/src/filedef.cpp +++ b/src/filedef.cpp @@ -222,7 +222,7 @@ void FileDef::writeDocumentation(OutputList &ol) if (Config_getBool("SEARCHENGINE")) { Doxygen::searchIndex->setCurrentDoc(pageTitle,getOutputFileBase()); - Doxygen::searchIndex->addWord(localName().lower()); + Doxygen::searchIndex->addWord(localName()); } if (!Config_getString("GENERATE_TAGFILE").isEmpty()) diff --git a/src/groupdef.cpp b/src/groupdef.cpp index 54b0bbd..aa4ec5b 100644 --- a/src/groupdef.cpp +++ b/src/groupdef.cpp @@ -16,6 +16,7 @@ */ #include +#include #include "qtbc.h" #include "groupdef.h" #include "classdef.h" @@ -457,14 +458,20 @@ void GroupDef::writeDocumentation(OutputList &ol) //ol.disable(OutputGenerator::Man); startFile(ol,getOutputFileBase(),name(),title); startTitle(ol,getOutputFileBase()); - ol.docify(title); + ol.parseText(title); addGroupListToTitle(ol,this); endTitle(ol,getOutputFileBase(),title); if (Config_getBool("SEARCHENGINE")) { Doxygen::searchIndex->setCurrentDoc(title,getOutputFileBase()); - Doxygen::searchIndex->addWord(localName().lower()); + static QRegExp we("[a-zA-Z_][a-zA-Z_0-9]*"); + int i=0,p=0,l=0; + while ((i=we.match(title,p,&l))!=-1) // foreach word in the title + { + Doxygen::searchIndex->addWord(title.mid(i,l)); + p=i+l; + } } if (Config_getBool("DETAILS_AT_TOP")) diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp index 5b59560..e6017ba 100644 --- a/src/htmldocvisitor.cpp +++ b/src/htmldocvisitor.cpp @@ -26,9 +26,8 @@ #include "dot.h" #include "message.h" #include "config.h" +#include "htmlgen.h" -#define PREFRAG_START "
    "
    -#define PREFRAG_END   "
    " static QString htmlAttribsToString(const HtmlAttribList &attribs) { @@ -872,7 +871,7 @@ void HtmlDocVisitor::visitPost(DocParamSect *) void HtmlDocVisitor::visitPre(DocParamList *pl) { if (m_hide) return; - m_t << " "; + m_t << " "; if (pl->direction()!=DocParamSect::Unspecified) { m_t << "["; @@ -890,7 +889,7 @@ void HtmlDocVisitor::visitPre(DocParamList *pl) } m_t << "] "; } - m_t << ""; + m_t << ""; QStrListIterator li(pl->parameters()); const char *s; bool first=TRUE; diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp index 69dd955..a17c256 100644 --- a/src/htmlgen.cpp +++ b/src/htmlgen.cpp @@ -42,12 +42,11 @@ #define DBG_HTML(x) static const char *defaultStyleSheet = -"H1 {\n" -" text-align: center;\n" +"BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {\n" " font-family: Geneva, Arial, Helvetica, sans-serif;\n" "}\n" -"H2 {\n" -" font-family: Geneva, Arial, Helvetica, sans-serif;\n" +"H1 {\n" +" text-align: center;\n" "}\n" "CAPTION { font-weight: bold }\n" "DIV.qindex {\n" @@ -93,10 +92,15 @@ static const char *defaultStyleSheet = "A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }\n" "A.el { text-decoration: none; font-weight: bold }\n" "A.elRef { font-weight: bold }\n" -"A.code { text-decoration: none; font-weight: normal; color: #1A419D}\n" -"A.codeRef { font-weight: normal; color: #1A419D}\n" +"A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}\n" +"A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}\n" +"A.codeRef:link { font-weight: normal; color: #0000FF}\n" +"A.codeRef:visited { font-weight: normal; color: #0000FF}\n" "A:hover { text-decoration: none; background-color: #f2f2ff }\n" "DL.el { margin-left: -1cm }\n" +".fragment {\n" +" font-family: monospace\n" +"}\n" "PRE.fragment {\n" " border: 1px solid #CCCCCC;\n" " background-color: #f5f5f5;\n" @@ -109,11 +113,12 @@ static const char *defaultStyleSheet = " padding-top: 4px;\n" " padding-bottom: 4px;\n" "}\n" -"DIV.fragment {\n" -" border: 1px solid #CCCCCC;\n" -" background-color: #f5f5f5;\n" -" padding: 6px;\n" -"}\n" +//"DIV.fragment {\n" +//" font-family: monospace\n" +//" border: 1px solid #CCCCCC;\n" +//" background-color: #f5f5f5;\n" +//" padding: 6px;\n" +//"}\n" "DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }\n" "TD.md { background-color: #F4F4FB; font-weight: bold; }\n" "TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; }\n" @@ -123,7 +128,6 @@ static const char *defaultStyleSheet = " margin-top: 12px;\n" " margin-bottom: 6px;\n" " font-weight: bold;\n" -" font-family: Geneva, Arial, Helvetica, sans-serif;\n" "}\n" "DIV.groupText { margin-left: 16px; font-style: italic; font-size: 14px }\n" "BODY {\n" @@ -216,7 +220,6 @@ static const char *defaultStyleSheet = " border-bottom-style: none;\n" " border-left-style: none;\n" " background-color: #FAFAFA;\n" -" font-family: Geneva, Arial, Helvetica, sans-serif;\n" " font-size: 12px;\n" "}\n" ".memItemRight {\n" @@ -235,7 +238,6 @@ static const char *defaultStyleSheet = " border-bottom-style: none;\n" " border-left-style: none;\n" " background-color: #FAFAFA;\n" -" font-family: Geneva, Arial, Helvetica, sans-serif;\n" " font-size: 13px;\n" "}\n" ".search { color: #003399;\n" @@ -1535,7 +1537,7 @@ void HtmlGenerator::writeSearchPage() t << "\n"; t << "function report_matches()\n"; t << "{\n"; - t << " return \"" << theTranslator->trSearchMatches() << " \";\n"; + t << " return \"" << theTranslator->trSearchMatches() << " \";\n"; t << "}\n"; t << "\n"; t << search_script; diff --git a/src/htmlgen.h b/src/htmlgen.h index e63030a..9371970 100644 --- a/src/htmlgen.h +++ b/src/htmlgen.h @@ -21,6 +21,9 @@ #include "qtbc.h" #include "outputgen.h" +#define PREFRAG_START "
    "
    +#define PREFRAG_END   "
    " + class QFile; class HtmlGenerator : public OutputGenerator @@ -112,8 +115,8 @@ class HtmlGenerator : public OutputGenerator void writeRuler() { t << "
    "; } void writeAnchor(const char *,const char *name) { t << ""; } - void startCodeFragment() { t << "
    "; } - void endCodeFragment() { t << "
    "; } + void startCodeFragment() { t << PREFRAG_START; } + void endCodeFragment() { t << PREFRAG_END; } void writeLineNumber(const char *,const char *,const char *,int); void startCodeLine() { col=0; } void endCodeLine() { codify("\n"); } diff --git a/src/mandocvisitor.cpp b/src/mandocvisitor.cpp index 6bb1288..4fddfce 100644 --- a/src/mandocvisitor.cpp +++ b/src/mandocvisitor.cpp @@ -460,6 +460,7 @@ void ManDocVisitor::visitPre(DocSimpleList *) { if (m_hide) return; m_indent+=2; + if (!m_firstCol) m_t << endl; m_t << ".PD 0" << endl; } @@ -507,6 +508,7 @@ void ManDocVisitor::visitPre(DocHtmlList *) { if (m_hide) return; m_indent+=2; + if (!m_firstCol) m_t << endl; m_t << ".PD 0" << endl; } @@ -514,6 +516,7 @@ void ManDocVisitor::visitPost(DocHtmlList *) { if (m_hide) return; m_indent-=2; + if (!m_firstCol) m_t << endl; m_t << ".PP" << endl; } @@ -741,6 +744,7 @@ void ManDocVisitor::visitPost(DocSecRefList *) { if (m_hide) return; m_indent-=2; + if (!m_firstCol) m_t << endl; m_t << ".PP" << endl; } diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 752e2d8..5c0570b 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -343,6 +343,7 @@ MemberDef::MemberDef(const char *df,int dl, section=0; groupAlias=0; explExt=FALSE; + tspec=FALSE; cachedAnonymousType=0; maxInitLines=Config_getInt("MAX_INITIALIZER_LINES"); userInitLines=-1; @@ -834,8 +835,8 @@ void MemberDef::writeDeclaration(OutputList &ol, if (Config_getBool("SEARCHENGINE")) { Doxygen::searchIndex->setCurrentDoc(qualifiedName(),getOutputFileBase(),anchor()); - Doxygen::searchIndex->addWord(localName().lower()); - Doxygen::searchIndex->addWord(qualifiedName().lower()); + Doxygen::searchIndex->addWord(localName()); + Doxygen::searchIndex->addWord(qualifiedName()); } Definition *d=0; @@ -1248,7 +1249,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, htmlHelp->addIndexItem(cname,name(),cfname,anchor()); } linkifyText(TextGeneratorOLImpl(ol),container,getBodyDef(),name(),ldef.left(i)); - //ol+=*vmd->enumDecl(); vmd->writeEnumDeclaration(ol,getClassDef(),getNamespaceDef(),getFileDef(),getGroupDef()); linkifyText(TextGeneratorOLImpl(ol),container,getBodyDef(),name(),ldef.right(ldef.length()-i-l)); @@ -1310,7 +1310,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, else // definition gets it template parameters from its class // (since no definition was found) { - if (cd) + if (cd && !isTemplateSpecialization()) { QList tempParamLists; cd->getTemplateParameterLists(tempParamLists); @@ -1670,7 +1670,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ol.parseText(reimplFromLine.right( reimplFromLine.length()-markerPos-2)); // text right from marker - ol.newParagraph(); } else { @@ -1751,7 +1750,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, index=newIndex+matchLen; } ol.parseText(reimplInLine.right(reimplInLine.length()-index)); - ol.newParagraph(); } } // write the list of examples that use this member @@ -2003,9 +2001,14 @@ void MemberDef::addListReference(Definition *) } } } - //printf("*** addListReference %s todo=%d test=%d bug=%d\n",name().data(),todoId(),testId(),bugId()); - addRefItem(xrefListItems(),memLabel, - getOutputFileBase()+"#"+anchor(),memName,argsString()); + if (xrefListItems()) + { + addRefItem(xrefListItems(),memLabel, + getOutputFileBase()+"#"+anchor(),memName,argsString()); + } + else + { + } } MemberList *MemberDef::getSectionList(Definition *d) const diff --git a/src/memberdef.h b/src/memberdef.h index 34c7164..2fa4a85 100644 --- a/src/memberdef.h +++ b/src/memberdef.h @@ -134,6 +134,7 @@ class MemberDef : public Definition bool isWritable() const { return (memSpec&Entry::Writable)!=0; } bool isImplementation() const { return m_implOnly; } bool isExternal() const { return explExt; } + bool isTemplateSpecialization() const { return tspec; } bool isObjCMethod() const; bool isConstructor() const; bool isDestructor() const; @@ -151,22 +152,23 @@ class MemberDef : public Definition bool isDocumentedFriendClass() const; // set functions - void setMemberType(MemberType t) { mtype=t; } - void setDefinition(const char *d) { def=d; } - void setFileDef(FileDef *fd) { fileDef=fd; } + void setMemberType(MemberType t) { mtype=t; } + void setDefinition(const char *d) { def=d; } + void setFileDef(FileDef *fd) { fileDef=fd; } void setAnchor(const char *a); - void setProtection(Protection p) { prot=p; } - void setMemberSpecifiers(int s) { memSpec=s; } - void mergeMemberSpecifiers(int s) { memSpec|=s; } + void setProtection(Protection p) { prot=p; } + void setMemberSpecifiers(int s) { memSpec=s; } + void mergeMemberSpecifiers(int s) { memSpec|=s; } void setInitializer(const char *i); - void setBitfields(const char *s) { bitfields = s; } - void setMaxInitLines(int lines) { userInitLines=lines; } + void setBitfields(const char *s) { bitfields = s; } + void setMaxInitLines(int lines) { userInitLines=lines; } void setMemberClass(ClassDef *cd); void setSectionList(Definition *d,MemberList *sl); void setGroupDef(GroupDef *gd,Grouping::GroupPri_t pri,const QCString &fileName,int startLine,bool hasDocs); - void setExplicitExternal(bool b) { explExt=b; } - void setReadAccessor(const char *r) { read=r; } - void setWriteAccessor(const char *w) { write=w; } + void setExplicitExternal(bool b) { explExt=b; } + void setReadAccessor(const char *r) { read=r; } + void setWriteAccessor(const char *w) { write=w; } + void setTemplateSpecialization(bool b) { tspec=b; } void makeRelated() { related=TRUE; } @@ -348,6 +350,7 @@ class MemberDef : public Definition GroupDef *group; // group in which this member is in bool explExt; // member was explicitly declared external + bool tspec; // member is a template specialization ClassDef *cachedAnonymousType; // if the member has an anonymous compound // as its type then this is computed by diff --git a/src/memberlist.cpp b/src/memberlist.cpp index 8a3ace5..e9ad1e1 100644 --- a/src/memberlist.cpp +++ b/src/memberlist.cpp @@ -286,14 +286,14 @@ void MemberList::writePlainDeclarations(OutputList &ol, { if (md->fromAnonymousScope() && !md->anonymousDeclShown()) { + md->setFromAnonymousScope(FALSE); //printf("anonymous compound members\n"); if (md->isBriefSectionVisible()) { if (first) ol.startMemberList(),first=FALSE; - md->setFromAnonymousScope(FALSE); md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup); - md->setFromAnonymousScope(TRUE); } + md->setFromAnonymousScope(TRUE); } } } diff --git a/src/namespacedef.cpp b/src/namespacedef.cpp index 4562067..2d1a717 100644 --- a/src/namespacedef.cpp +++ b/src/namespacedef.cpp @@ -275,15 +275,14 @@ void NamespaceDef::writeDocumentation(OutputList &ol) } startFile(ol,getOutputFileBase(),name(),pageTitle); startTitle(ol,getOutputFileBase()); - //ol.docify(pageTitle); - //ol.parseText(pageTitle); + ol.parseText(pageTitle); addGroupListToTitle(ol,this); endTitle(ol,getOutputFileBase(),displayName()); if (Config_getBool("SEARCHENGINE")) { Doxygen::searchIndex->setCurrentDoc(pageTitle,getOutputFileBase()); - Doxygen::searchIndex->addWord(localName().lower()); + Doxygen::searchIndex->addWord(localName()); } if (!Config_getString("GENERATE_TAGFILE").isEmpty()) diff --git a/src/pre.l b/src/pre.l index f052878..07e8d47 100644 --- a/src/pre.l +++ b/src/pre.l @@ -194,7 +194,7 @@ static FILE *checkAndOpenFile(const QCString &absName) QCString filterName = getFileFilter(absName); if (!filterName.isEmpty()) { - QCString cmd = filterName+" "+absName; + QCString cmd = filterName+" \""+absName+"\""; f=popen(cmd,"r"); if (!f) err("Error: could not execute filter %s\n",cmd.data()); } @@ -1486,6 +1486,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) Define *def; if ((def=isDefined(yytext)) /*&& !def->isPredefined*/ + && !def->nonRecursive ) { //printf("undefining %s\n",yytext); diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp index d2d6ec9..87fda60 100644 --- a/src/rtfgen.cpp +++ b/src/rtfgen.cpp @@ -37,8 +37,8 @@ #include "rtfdocvisitor.h" #include "docparser.h" -#define DBG_RTF(x) x; -//#define DBG_RTF(x) +//#define DBG_RTF(x) x; +#define DBG_RTF(x) static QCString dateToRTFDateString() { diff --git a/src/scanner.l b/src/scanner.l index a81a4b0..d9d7da9 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -2589,9 +2589,21 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] { varEntry->groups->append(new Grouping(*g)); } + if (current->sli) // copy special list items + { + QListIterator li(*current->sli); + ListItemInfo *lii; + for (li.toFirst();(lii=li.current());++li) + { + varEntry->addSpecialListItem(lii->type,lii->itemId); + } + //delete current->sli; + //current->sli = 0; + } - //printf("Add: type=`%s',name=`%s',args=`%s'\n", - // varEntry->type.data(),varEntry->name.data(),varEntry->args.data()); + //printf("Add: type=`%s',name=`%s',args=`%s' brief=%s doc=%s\n", + // varEntry->type.data(),varEntry->name.data(), + // varEntry->args.data(),varEntry->brief.data(),varEntry->doc.data()); current_root->addSubEntry(varEntry); } if (*yytext==';') diff --git a/src/search.php b/src/search.php index bc4330d..cef406c 100644 --- a/src/search.php +++ b/src/search.php @@ -14,9 +14,9 @@ function readString($file) function readHeader($file) { - $header =fgetc($file); $header.=fgetc($file); - $header.=fgetc($file); $header.=fgetc($file); - return $header; + $header =fgetc($file); $header.=fgetc($file); + $header.=fgetc($file); $header.=fgetc($file); + return $header; } function computeIndex($word) @@ -284,7 +284,7 @@ function main() if (!in_array($word,$foundWords)) { $foundWords[]=$word; - search($file,$word,$results); + search($file,strtolower($word),$results); } $word=strtok(" "); } diff --git a/src/search_php.h b/src/search_php.h index 2ffa41c..fb6668a 100644 --- a/src/search_php.h +++ b/src/search_php.h @@ -14,9 +14,9 @@ "\n" "function readHeader($file)\n" "{\n" -" $header =fgetc($file); $header.=fgetc($file);\n" -" $header.=fgetc($file); $header.=fgetc($file);\n" -" return $header;\n" +" $header =fgetc($file); $header.=fgetc($file);\n" +" $header.=fgetc($file); $header.=fgetc($file);\n" +" return $header;\n" "}\n" "\n" "function computeIndex($word)\n" @@ -284,7 +284,7 @@ " if (!in_array($word,$foundWords))\n" " {\n" " $foundWords[]=$word;\n" -" search($file,$word,$results);\n" +" search($file,strtolower($word),$results);\n" " }\n" " $word=strtok(\" \");\n" " }\n" diff --git a/src/searchindex.cpp b/src/searchindex.cpp index cf049aa..b85d87e 100644 --- a/src/searchindex.cpp +++ b/src/searchindex.cpp @@ -81,12 +81,14 @@ static int charsToIndex(const char *word) void SearchIndex::addWord(const char *word) { - IndexWord *w = m_words[word]; + QString wStr=QString(word).lower(); + if (wStr.isEmpty()) return; + IndexWord *w = m_words[wStr]; if (w==0) { - int idx=charsToIndex(word); + int idx=charsToIndex(wStr); if (idx<0) return; - w = new IndexWord(word); + w = new IndexWord(wStr); //fprintf(stderr,"addWord(%s) at index %d\n",word,idx); m_index[idx]->append(w); m_words.insert(word,w); diff --git a/src/translator_adapter.h b/src/translator_adapter.h index bf30e2c..9518721 100644 --- a/src/translator_adapter.h +++ b/src/translator_adapter.h @@ -152,204 +152,5 @@ class TranslatorAdapter_1_2_11 : public TranslatorAdapter_1_2_13 }; -class TranslatorAdapter_1_2_7 : public TranslatorAdapter_1_2_11 -{ - public: - virtual QCString updateNeededMessage() - { return createUpdateNeededMessage(idLanguage(),"release 1.2.7"); } - - /*! These are the default implementations of the obsolete methods - * for introducing author/authors (possibly localized). - */ - virtual QCString trAuthors() - { return "Author(s)"; } - - virtual QCString trAuthor() - { return "Author"; } - - /*! This is the localized implementation of newer equivalent - * using the obsolete methods trAuthors() and trAuthor(). - */ - virtual QCString trAuthor(bool first_capital, bool singular) - { - if (first_capital) - return (singular) ? trAuthor() : trAuthors(); // possibly localized - else - return english.trAuthor(first_capital, singular); - } -}; - - -/*! \brief Translator adapter class for release 1.2.6 - * - * Translator adapter for dealing with translator changes since - * release 1.2.6 - */ -class TranslatorAdapter_1_2_6 : public TranslatorAdapter_1_2_7 -{ - public: - virtual QCString updateNeededMessage() - { return createUpdateNeededMessage(idLanguage(),"release 1.2.6"); } - - /*! Used as ansicpg for RTF file */ - virtual QCString trRTFansicp() - { - return "1252"; - } - - /*! Used as ansicpg for RTF fcharset */ - virtual QCString trRTFCharSet() - { - return "0"; - } - - /*! Used as header RTF general index */ - virtual QCString trRTFGeneralIndex() - { - return "Index"; - } - - ////////////////////////////////////////////////////////////////// - // The following methods were replaced by newer equivalent, but - // the obsolete method may be localized. Let's use the localized - // result if possible. - - - /*! This is the default implementation of the obsolete method - * used in the documentation of a group before the list of - * links to documented files. This is possibly localized. - */ - virtual QCString trFiles() - { return "Files"; } - - /*! This is the localized implementation of newer equivalent - * using the obsolete method trFiles(). - */ - virtual QCString trFile(bool first_capital, bool singular) - { - if (first_capital && !singular) - return trFiles(); // possibly localized - else - return english.trFile(first_capital, singular); - } - - /*! The latexBabelPackage() was superceeded by - * latexLanguageSupportCommand(). The default implementation - * of the obsolete method follows. - */ - virtual QCString latexBabelPackage() - { return ""; } - - /*! Default implementation of the newer method. */ - virtual QCString latexLanguageSupportCommand() - { - QCString result(latexBabelPackage()); - if (!result.isEmpty()) - { - result = "\\usepackage[" + result; - result += "]{babel}\n"; - } - return result; - } - - virtual QCString idLanguageCharset() - { return english.idLanguageCharset(); } - - virtual QCString trClass(bool first_capital, bool singular) - { return english.trClass(first_capital,singular); } - - virtual QCString trNamespace(bool first_capital, bool singular) - { return english.trNamespace(first_capital,singular); } - - virtual QCString trGroup(bool first_capital, bool singular) - { return english.trGroup(first_capital,singular); } - - virtual QCString trPage(bool first_capital, bool singular) - { return english.trPage(first_capital,singular); } - - virtual QCString trMember(bool first_capital, bool singular) - { return english.trMember(first_capital,singular); } - - virtual QCString trField(bool first_capital, bool singular) - { return english.trField(first_capital,singular); } - - virtual QCString trGlobal(bool first_capital, bool singular) - { return english.trGlobal(first_capital,singular); } - - -}; - -/*! \brief Translator adapter class for release 1.2.5 - * - * Translator adapter for dealing with translator changes since - * release 1.2.5 - */ -class TranslatorAdapter_1_2_5 : public TranslatorAdapter_1_2_6 -{ - public: - virtual QCString updateNeededMessage() - { return createUpdateNeededMessage(idLanguage(),"release 1.2.5"); } - - virtual QCString trBug() - { return english.trBug(); } - - virtual QCString trBugList() - { return english.trBugList(); } -}; - -/*! \brief Translator adapter class for release 1.2.4 - * - * Translator adapter for dealing with translator changes since - * release 1.2.4 - */ -class TranslatorAdapter_1_2_4 : public TranslatorAdapter_1_2_5 -{ - public: - virtual QCString updateNeededMessage() - { return createUpdateNeededMessage(idLanguage(),"release 1.2.4"); } - - virtual QCString trInterfaces() - { return english.trInterfaces(); } - - virtual QCString trClasses() - { return english.trClasses(); } - - virtual QCString trPackage(const char *name) - { return english.trPackage(name); } - - virtual QCString trPackageList() - { return english.trPackageList(); } - - virtual QCString trPackageListDescription() - { return english.trPackageListDescription(); } - - virtual QCString trPackages() - { return english.trPackages(); } - - virtual QCString trPackageDocumentation() - { return english.trPackageDocumentation(); } - - virtual QCString trDefineValue() - { return english.trDefineValue(); } - -}; - -/*! \brief Translator adapter class for release 1.2.2 - * - * Translator adapter for dealing with translator changes since - * release 1.2.2 - */ -class TranslatorAdapter_1_2_2 : public TranslatorAdapter_1_2_4 -{ - public: - virtual QCString updateNeededMessage() - { return createUpdateNeededMessage(idLanguage(),"release 1.2.2"); } - - virtual QCString trProperties() - { return english.trProperties(); } - - virtual QCString trPropertyDocumentation() - { return english.trPropertyDocumentation(); } -}; - #endif + diff --git a/src/util.cpp b/src/util.cpp index f2ef4c3..c204a18 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -2012,6 +2012,7 @@ void trimBaseClassScope(BaseClassList *bcl,QCString &s,int level=0) } } +#if 0 /*! if either t1 or t2 contains a namespace scope, then remove that * scope. If neither or both have a namespace scope, t1 and t2 remain * unchanged. @@ -2086,6 +2087,7 @@ static void trimNamespaceScope(QCString &t1,QCString &t2,const QCString &nsName) p2 = QMAX(i2-2,0); } } +#endif /*! According to the C++ spec and Ivan Vecerina: @@ -2227,7 +2229,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, //srcAType=stripTemplateSpecifiersFromScope(srcAType,FALSE); //dstAType=stripTemplateSpecifiersFromScope(dstAType,FALSE); - //printf("srcA=%s:%s dstA=%s:%s\n",srcAType.data(),srcA->name.data(), + //printf("srcA=%s|%s dstA=%s|%s\n",srcAType.data(),srcA->name.data(), // dstAType.data(),dstA->name.data()); if (srcA->array!=dstA->array) // nomatch for char[] against char @@ -2240,7 +2242,9 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, // remove a namespace scope that is only in one type // (assuming a using statement was used) - trimNamespaceScope(srcAType,dstAType,namespaceName); + //printf("Trimming %s<->%s: %s\n",srcAType.data(),dstAType.data(),namespaceName.data()); + //trimNamespaceScope(srcAType,dstAType,namespaceName); + //printf("After Trimming %s<->%s\n",srcAType.data(),dstAType.data()); //QCString srcScope; //QCString dstScope; @@ -2268,6 +2272,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, srcAType=trimScope(namespaceName,srcAType); dstAType=trimScope(namespaceName,dstAType); } + //printf("#usingNamespace=%d\n",usingNamespaces->count()); if (usingNamespaces && usingNamespaces->count()>0) { NamespaceSDict::Iterator nli(*usingNamespaces); @@ -2278,6 +2283,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, dstAType=trimScope(nd->name(),dstAType); } } + //printf("#usingClasses=%d\n",usingClasses->count()); if (usingClasses && usingClasses->count()>0) { SDict::Iterator cli(*usingClasses); @@ -2289,7 +2295,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, } } - //printf("2. srcA=%s:%s dstA=%s:%s\n",srcAType.data(),srcA->name.data(), + //printf("2. srcA=%s|%s dstA=%s|%s\n",srcAType.data(),srcA->name.data(), // dstAType.data(),dstA->name.data()); if (!srcA->name.isEmpty() && !dstA->type.isEmpty() && @@ -4200,7 +4206,8 @@ QList *copyArgumentLists(const QList *srcLists) * strip both unless A or B are specialized template classes. */ QCString stripTemplateSpecifiersFromScope(const QCString &fullName, - bool parentOnly) + bool parentOnly, + QCString *pLastScopeStripped) { QCString result; int p=0; @@ -4237,6 +4244,10 @@ QCString stripTemplateSpecifiersFromScope(const QCString &fullName, result+=fullName.mid(i,e-i); //printf("2:result+=%s\n",fullName.mid(i,e-i-1).data()); } + else if (pLastScopeStripped) + { + *pLastScopeStripped=fullName.mid(i,e-i); + } p=e; i=fullName.find('<',p); } @@ -4420,7 +4431,7 @@ void addRefItem(const QList *sli, const char *prefix, const char *name,const char *title,const char *args) { - //printf("addRefItem(%s,%s,%s,%s)\n",prefix,name,title,args); + //printf("addRefItem(prefix=%s,name=%s,title=%s,args=%s)\n",prefix,name,title,args); if (sli) { QListIterator slii(*sli); @@ -4440,8 +4451,8 @@ void addRefItem(const QList *sli, { RefItem *item = refList->getRefItem(lii->itemId); ASSERT(item!=0); - if (item->written) return; //printf("anchor=%s\n",item->listAnchor.data()); + if (item->written) return; QCString doc(1000); doc = "\\anchor "; diff --git a/src/util.h b/src/util.h index a458494..2f5db03 100644 --- a/src/util.h +++ b/src/util.h @@ -190,7 +190,8 @@ QCString substituteTemplateArgumentsInString( ArgumentList *copyArgumentList(const ArgumentList *src); QList *copyArgumentLists(const QList *srcLists); QCString stripTemplateSpecifiersFromScope(const QCString &fullName, - bool parentOnly=TRUE); + bool parentOnly=TRUE, + QCString *lastScopeStripped=0); QCString resolveTypeDef(Definition *d,const QCString &name, Definition **typedefContext=0); QCString mergeScopes(const QCString &leftScope,const QCString &rightScope); -- cgit v0.12