Commit bb18b811 authored by dimitri's avatar dimitri

Release-1.3.8-20040812

parent 6e8975ab
DOXYGEN Version 1.3.8-20040803 DOXYGEN Version 1.3.8-20040812
Please read the installation section of the manual Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions. (http://www.doxygen.org/install.html) for instructions.
-------- --------
Dimitri van Heesch (03 August 2004) Dimitri van Heesch (12 August 2004)
DOXYGEN Version 1.3.8_20040803 DOXYGEN Version 1.3.8_20040812
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. ...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy, Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (03 August 2004) Dimitri van Heesch (dimitri@stack.nl) (12 August 2004)
1.3.8-20040803 1.3.8-20040812
...@@ -26,7 +26,7 @@ all: language FORCE ...@@ -26,7 +26,7 @@ all: language FORCE
@epstopdf doxygen_logo.eps --outfile=../latex/doxygen_logo.pdf @epstopdf doxygen_logo.eps --outfile=../latex/doxygen_logo.pdf
clean: clean:
rm -rf ../html ../latex *.bak translator_report.txt rm -rf ../html ../latex *.bak
language: language.doc language: language.doc
......
...@@ -932,7 +932,7 @@ function's detailed documentation block. ...@@ -932,7 +932,7 @@ function's detailed documentation block.
<dt>\c HTML_FOOTER <dd> <dt>\c HTML_FOOTER <dd>
\addindex HTML_FOOTER \addindex HTML_FOOTER
The \c HTML_FOOTER tag can be used to specify a user-defined HTML footer for 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 \</BODY\> and a \c \</HTML\> tag. A minimal example: at least a \c \</BODY\> and a \c \</HTML\> tag. A minimal example:
\verbatim \verbatim
</BODY> </BODY>
...@@ -940,7 +940,7 @@ function's detailed documentation block. ...@@ -940,7 +940,7 @@ function's detailed documentation block.
\endverbatim \endverbatim
If the tag is left blank doxygen will generate a standard footer. 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:
<code>\$title</code>, <code>\$datetime</code>, <code>\$date</code>, <code>\$title</code>, <code>\$datetime</code>, <code>\$date</code>,
<code>\$doxygenversion</code>, <code>\$projectname</code>, <code>\$doxygenversion</code>, <code>\$projectname</code>,
<code>\$projectnumber</code>. <code>\$projectnumber</code>.
...@@ -1412,7 +1412,9 @@ EXTRA_PACKAGES = times ...@@ -1412,7 +1412,9 @@ EXTRA_PACKAGES = times
are defined before the preprocessor is started (similar to the -D option of 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: gcc). The argument of the tag is a list of macros of the form:
<code>name</code> or <code>name=definition</code> (no spaces). <code>name</code> or <code>name=definition</code> (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 \anchor cfg_expand_as_defined
<dt>\c EXPAND_AS_DEFINED <dd> <dt>\c EXPAND_AS_DEFINED <dd>
......
...@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other ...@@ -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 than English (the default). The output language is chosen through the
configuration file (with default name and known as Doxyfile). 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): are supported (sorted alphabetically):
Afrikaans, Brazilian Portuguese, Catalan, Chinese, Chinese Afrikaans, Brazilian Portuguese, Catalan, Chinese, Chinese
Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French, Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French,
...@@ -95,8 +95,8 @@ when the translator was updated. ...@@ -95,8 +95,8 @@ when the translator was updated.
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Danish</td> <td>Danish</td>
<td>Erik S&oslash;e S&oslash;rensen</td> <td>Erik S&oslash;e S&oslash;rensen</td>
<td>erik at mail dot nu</td> <td>eriksoe+doxygen at daimi dot au dot dk</td>
<td>1.3.8</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Dutch</td> <td>Dutch</td>
...@@ -113,7 +113,7 @@ when the translator was updated. ...@@ -113,7 +113,7 @@ when the translator was updated.
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Finnish</td> <td>Finnish</td>
<td>Olli Korhonen</td> <td>Olli Korhonen</td>
<td>Olli.Korhonen at ccc dot fi</td> <td>olli.korhonen lost at cyberspace</td>
<td>obsolete</td> <td>obsolete</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
...@@ -137,7 +137,7 @@ when the translator was updated. ...@@ -137,7 +137,7 @@ when the translator was updated.
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Hungarian</td> <td>Hungarian</td>
<td>F&ouml;ldv&aacute;ri Gy&ouml;rgy<br>&Aacute;kos Kiss</td> <td>F&ouml;ldv&aacute;ri Gy&ouml;rgy<br>&Aacute;kos Kiss</td>
<td>foldvari at diatronltd dot com<br>akiss at users dot sourceforge dot net</td> <td>foldvari lost at cyberspace<br>akiss at users dot sourceforge dot net</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
...@@ -220,8 +220,8 @@ when the translator was updated. ...@@ -220,8 +220,8 @@ when the translator was updated.
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Slovene</td> <td>Slovene</td>
<td>Matjaz Ostroversnik</td> <td>Matja&#x017e; Ostrover&#x0161;nik</td>
<td>matjaz.ostroversnik at zrs-tk dot si</td> <td>matjaz.ostroversnik at ztm dot si</td>
<td>1.2.16</td> <td>1.2.16</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
...@@ -239,7 +239,7 @@ when the translator was updated. ...@@ -239,7 +239,7 @@ when the translator was updated.
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Ukrainian</td> <td>Ukrainian</td>
<td>Olexij Tkatchenko</td> <td>Olexij Tkatchenko</td>
<td>olexij.tkatchenko at gmx dot de</td> <td>olexij.tkatchenko at parcs dot de</td>
<td>1.2.11</td> <td>1.2.11</td>
</tr> </tr>
<!-- table content end --> <!-- table content end -->
...@@ -273,13 +273,13 @@ when the translator was updated. ...@@ -273,13 +273,13 @@ when the translator was updated.
\hline \hline
Czech & Petr P\v{r}ikryl & {\tt\tiny prikrylp@skil.cz} & up-to-date \\ Czech & Petr P\v{r}ikryl & {\tt\tiny prikrylp@skil.cz} & up-to-date \\
\hline \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 \hline
Dutch & Dimitri van Heesch & {\tt\tiny dimitri@stack.nl} & up-to-date \\ Dutch & Dimitri van Heesch & {\tt\tiny dimitri@stack.nl} & up-to-date \\
\hline \hline
English & Dimitri van Heesch & {\tt\tiny dimitri@stack.nl} & up-to-date \\ English & Dimitri van Heesch & {\tt\tiny dimitri@stack.nl} & up-to-date \\
\hline \hline
Finnish & Olli Korhonen & {\tt\tiny Olli.Korhonen@ccc.fi} & obsolete \\ Finnish & Olli Korhonen & {\tt\tiny olli.korhonen lost@cyberspace} & obsolete \\
\hline \hline
French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.3.8 \\ French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.3.8 \\
\hline \hline
...@@ -287,7 +287,7 @@ when the translator was updated. ...@@ -287,7 +287,7 @@ when the translator was updated.
\hline \hline
Greek & Harry Kalogirou & {\tt\tiny harkal@rainbow.cs.unipi.gr} & 1.2.11 \\ Greek & Harry Kalogirou & {\tt\tiny harkal@rainbow.cs.unipi.gr} & 1.2.11 \\
\hline \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} & ~ \\ ~ & \'{A}kos Kiss & {\tt\tiny akiss@users.sourceforge.net} & ~ \\
\hline \hline
Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\ Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\
...@@ -322,13 +322,13 @@ when the translator was updated. ...@@ -322,13 +322,13 @@ when the translator was updated.
\hline \hline
Slovak & Stanislav Kudl\'{a}\v{c} & {\tt\tiny skudlac@pobox.sk} & 1.2.18 \\ Slovak & Stanislav Kudl\'{a}\v{c} & {\tt\tiny skudlac@pobox.sk} & 1.2.18 \\
\hline \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 \hline
Spanish & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & 1.3.8 \\ Spanish & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & 1.3.8 \\
\hline \hline
Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.3.8 \\ Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.3.8 \\
\hline \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 \hline
\end{tabular} \end{tabular}
\endlatexonly \endlatexonly
......
...@@ -33,7 +33,7 @@ TranslatorCzech ...@@ -33,7 +33,7 @@ TranslatorCzech
Petr P&rcaron;ikryl: prikrylp@skil.cz Petr P&rcaron;ikryl: prikrylp@skil.cz
TranslatorDanish TranslatorDanish
Erik S&oslash;e S&oslash;rensen: erik@mail.nu Erik S&oslash;e S&oslash;rensen: eriksoe+doxygen@daimi.au.dk
TranslatorDutch TranslatorDutch
Dimitri van Heesch: dimitri@stack.nl Dimitri van Heesch: dimitri@stack.nl
...@@ -42,7 +42,7 @@ TranslatorEnglish ...@@ -42,7 +42,7 @@ TranslatorEnglish
Dimitri van Heesch: dimitri@stack.nl Dimitri van Heesch: dimitri@stack.nl
TranslatorFinnish TranslatorFinnish
Olli Korhonen: Olli.Korhonen@ccc.fi Olli Korhonen: olli.korhonen lost@cyberspace
TranslatorFrench TranslatorFrench
Xavier Outhier: xouthier@yahoo.fr Xavier Outhier: xouthier@yahoo.fr
...@@ -54,7 +54,7 @@ TranslatorGreek ...@@ -54,7 +54,7 @@ TranslatorGreek
Harry Kalogirou: harkal@rainbow.cs.unipi.gr Harry Kalogirou: harkal@rainbow.cs.unipi.gr
TranslatorHungarian TranslatorHungarian
F&ouml;ldv&aacute;ri Gy&ouml;rgy: foldvari@diatronltd.com F&ouml;ldv&aacute;ri Gy&ouml;rgy: foldvari lost@cyberspace
&Aacute;kos Kiss: akiss@users.sourceforge.net &Aacute;kos Kiss: akiss@users.sourceforge.net
TranslatorItalian TranslatorItalian
...@@ -97,7 +97,7 @@ TranslatorSlovak ...@@ -97,7 +97,7 @@ TranslatorSlovak
Stanislav Kudl&aacute;&ccaron;: skudlac@pobox.sk Stanislav Kudl&aacute;&ccaron;: skudlac@pobox.sk
TranslatorSlovene TranslatorSlovene
Matjaz Ostroversnik: matjaz.ostroversnik@zrs-tk.si Matja&zcaron; Ostrover&scaron;nik: matjaz.ostroversnik@ztm.si
TranslatorSpanish TranslatorSpanish
Francisco Oltra Thennet: foltra@puc.cl Francisco Oltra Thennet: foltra@puc.cl
...@@ -106,5 +106,6 @@ TranslatorSwedish ...@@ -106,5 +106,6 @@ TranslatorSwedish
Mikael Hallin: mikaelhallin@yahoo.se Mikael Hallin: mikaelhallin@yahoo.se
TranslatorUkrainian TranslatorUkrainian
Olexij Tkatchenko: olexij.tkatchenko@gmx.de Olexij Tkatchenko: olexij.tkatchenko@parcs.de
...@@ -41,7 +41,8 @@ ...@@ -41,7 +41,8 @@
- Plural not used for reporting a single missing method. - Plural not used for reporting a single missing method.
- Removal of not used translator adapters is suggested only - Removal of not used translator adapters is suggested only
when the report is not restricted to selected languages 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 from __future__ import generators
...@@ -1440,10 +1441,24 @@ class TrManager: ...@@ -1440,10 +1441,24 @@ class TrManager:
# i.e. all languages were checked against the needed translator # i.e. all languages were checked against the needed translator
# adapters. # adapters.
if not self.script_argLst: if not self.script_argLst:
to_remove = {}
for version, adaptClassId in self.adaptMethodsDic.values(): for version, adaptClassId in self.adaptMethodsDic.values():
if version < adaptMinVersion: if version < adaptMinVersion:
f.write('\nNote: The %s class ' % adaptClassId) to_remove[adaptClassId] = True
f.write('is not used and can be removed.\n')
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. # Write the list of the English-based classes.
if self.EnBasedIdLst: if self.EnBasedIdLst:
......
Doxygen supports the following (23) languages (sorted alphabetically): (1.3.8-20040803)
Brazilian
Chinese
Croatian
Czech
Danish
Dutch
English
Finnish
French
German
Hungarian
Italian
Japanese
Korean
Norwegian
Polish
Portuguese
Romanian
Russian
Slovak
Slovene
Spanish
Swedish
---------------------------------------------------------------------- Doxygen supports the following 30 languages (sorted alphabetically):
The following translator classes are up-to-date (sorted alphabetically).
This means that they derive from the Translator class. If the translator Afrikaans, Brazilian Portuguese, Catalan, Chinese, Chinese
derives from TranslatorAdapterCVS, it is considered to be almost up-to-date. Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French,
In other words, it is newer than the last official release. Anyway, there German, Greek, Hungarian, Italian, Japanese (+En), Korean (+En),
still may be some details listed even for the up-to-date translators. Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, Serbian,
Please, check the text below. 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 TranslatorCroatian
TranslatorCzech TranslatorCzech
TranslatorDanish (TranslatorAdapterCVS) TranslatorDanish
TranslatorDutch
TranslatorEnglish TranslatorEnglish
TranslatorGerman TranslatorGerman
TranslatorItalian (TranslatorAdapterCVS) TranslatorItalian
TranslatorJapanese
TranslatorNorwegian
TranslatorRussian TranslatorRussian
TranslatorSlovak (TranslatorAdapterCVS)
TranslatorSpanish (TranslatorAdapterCVS)
---------------------------------------------------------------------- ----------------------------------------------------------------------
The following translator classes are obsolete (sorted alphabetically). The following translator classes need some maintenance (the most
This means that they derive from some of the adapter classes. obsolete at the end). The other info shows the estimation of Doxygen
version when the class was last updated and number of methods that
TranslatorBrazilian (TranslatorAdapter_1_2_6) must be implemented to become up-to-date:
TranslatorChinese (TranslatorAdapter_1_2_1)
TranslatorDutch (TranslatorAdapter_1_2_6) TranslatorSwedish 1.3.8 1 method to implement
TranslatorFinnish (TranslatorAdapter_1_0_0) TranslatorSpanish 1.3.8 1 method to implement
TranslatorFrench (TranslatorAdapter_1_2_0) TranslatorSerbian 1.3.8 1 method to implement
TranslatorHungarian (TranslatorAdapter_1_2_1) TranslatorLithuanian 1.3.8 1 method to implement
TranslatorJapanese (TranslatorAdapter_1_2_5) TranslatorKorean 1.3.8 1 method to implement
TranslatorKorean (TranslatorAdapter_1_1_0) TranslatorHungarian 1.3.8 1 method to implement
TranslatorNorwegian (TranslatorAdapter_1_2_2) TranslatorFrench 1.3.8 1 method to implement
TranslatorPolish (TranslatorAdapter_1_2_1) TranslatorChinesetraditional 1.3.8 1 method to implement
TranslatorPortuguese (TranslatorAdapter_1_1_5) TranslatorPortuguese 1.3.3 5 methods to implement
TranslatorRomanian (TranslatorAdapter_1_2_1) TranslatorPolish 1.3 12 methods to implement
TranslatorSlovene (TranslatorAdapter_1_1_5) TranslatorSlovak 1.2.18 14 methods to implement
TranslatorSwedish (TranslatorAdapter_1_0_0) 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 The following translator classes derive directly from the
(prototypes sorted aplhabetically): TranslatorEnglish. The class identifier has the suffix 'En' that says
that this is intentional. Usually, there is also a non-English based
QCString idLanguage() version of the translator for the language:
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()
TranslatorJapaneseEn implements 5 methods
TranslatorKoreanEn implements 5 methods
---------------------------------------------------------------------- ======================================================================
Details related to specific translator classes follows. Details for translators (classes sorted alphabetically):
Notice that the prototypes are recognized only when they
are the same as in the Translator class.
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() virtual QCString trEventDocumentation()
QCString trPage(bool first_capital, bool singular) virtual QCString trPackageMembers()
QCString trFile(bool first_capital, bool singular) virtual QCString trStaticPackageMembers()
QCString trGlobal(bool first_capital, bool singular) virtual QCString trSearchResultsTitle()
QCString trField(bool first_capital, bool singular) virtual QCString trStaticPackageAttribs()
QCString trGroup(bool first_capital, bool singular) virtual QCString trCallGraph()
QCString trRTFansicp() virtual QCString trDeprecatedList()
QCString trNamespace(bool first_capital, bool singular) virtual QCString trPackageTypes()
QCString trClass(bool first_capital, bool singular) virtual QCString trSearchResults(int numDocuments)
QCString trRTFCharSet() virtual QCString trPackageAttribs()
QCString trMember(bool first_capital, bool singular) virtual QCString trSearchMatches()
QCString trAuthor(bool first_capital, bool singular) virtual QCString trEvents()
virtual QCString trSourceFile(QCString & filename)
virtual QCString trSearchForIndex()
virtual QCString trAll()
Obsolete methods (should be removed):
QCString latexBabelPackage() TranslatorChinesetraditional (TranslatorAdapter_1_3_8) 1 method to implement
QCString trAuthor() ----------------------------
QCString trAuthors()
QCString trFiles()
QCString trVerbatimText(const char *f)
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): Implements 103 of the required methods.
QCString trRTFGeneralIndex() Missing methods (should be implemented):
QCString trPage(bool first_capital, bool singular)
QCString trPackageListDescription() virtual QCString trPublicAttribs()
QCString trFile(bool first_capital, bool singular) virtual QCString trPropertyDocumentation()
QCString trBug() virtual QCString trMember(bool first_capital, bool singular)
QCString trGlobal(bool first_capital, bool singular) virtual QCString trPageIndex()
QCString trPackageList() virtual QCString trSince()
QCString trField(bool first_capital, bool singular) virtual QCString trEventDocumentation()
QCString trGroup(bool first_capital, bool singular) virtual QCString trRemarks()
QCString trPackage(const char *name) virtual QCString trProtectedTypes()
QCString trProperties() virtual QCString trFile(bool first_capital, bool singular)
QCString trBugList() virtual QCString trPackages()
QCString trDCOPMethods() virtual QCString trInclByDepGraph()
QCString trPackageDocumentation() virtual QCString trField(bool first_capital, bool singular)
QCString trRTFansicp() virtual QCString trRTFansicp()
QCString trNamespace(bool first_capital, bool singular) virtual QCString trImplementedFromList(int numEntries)
QCString trPropertyDocumentation() virtual QCString trCollaborationDiagram(const char * clName)
QCString trClass(bool first_capital, bool singular) virtual QCString trPackageListDescription()
QCString trGeneratedFromFiles(ClassDef::CompoundType compType, bool single) virtual QCString trDefineValue()
QCString trInterfaces() virtual QCString trPackageMembers()
QCString trRTFCharSet() virtual QCString trStaticPackageMembers()
QCString latexLanguageSupportCommand() virtual QCString trPackage(const char * name)
QCString trPackages() virtual QCString trPublicTypes()
QCString trMember(bool first_capital, bool singular) virtual QCString trSearchResultsTitle()
QCString trDefineValue() virtual QCString trTest()
QCString trAuthor(bool first_capital, bool singular) virtual QCString trInvariant()
QCString trClasses() virtual QCString trPackageDocumentation()
virtual QCString trGraphicalHierarchy()
Obsolete methods (should be removed): virtual QCString trSources()
virtual QCString trPostcondition()
QCString latexBabelPackage() virtual QCString trGotoGraphicalHierarchy()
QCString trAuthor() virtual QCString trPageAbbreviation()
QCString trAuthors() virtual QCString trGotoSourceCode()
QCString trFiles() virtual QCString trStaticPackageAttribs()
QCString trGeneratedFromFiles(ClassDef::CompoundType compType, bool) virtual QCString trCallGraph()
QCString trVerbatimText(const char *f) virtual QCString trStaticPublicAttribs()
virtual QCString trCode()
virtual QCString trTodo()
virtual QCString trDeprecatedList()
TranslatorGerman (Translator) 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) Missing methods (should be implemented):
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)
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() Implements 5 of the required methods.
QCString trAuthor()
QCString trAuthors()
QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool )
QCString trFiles()
QCString trVerbatimText(const char *f)
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): TranslatorKorean (TranslatorAdapter_1_3_8) 1 method to implement
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)
---------------- ----------------
Missing methods (should be implemented): Implements 194 of the required methods.
QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) Missing methods (should be implemented):
QCString trRTFGeneralIndex()
QCString trPage(bool first_capital, bool singular) virtual QCString trSourceFile(QCString & filename)
QCString trPackageListDescription()
QCString trFile(bool first_capital, bool singular)
QCString trBug() TranslatorKoreanEn (TranslatorEnglish) 190 methods to implement
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)
------------------ ------------------
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): virtual QCString trSourceFile(QCString & filename)
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)
-----------------
Missing methods (should be implemented):
QCString trFile(bool first_capital, bool singular) TranslatorPolish (TranslatorAdapter_1_3) 12 methods to implement
QCString trNamespace(bool first_capital, bool singular) ----------------
QCString trAuthor(bool first_capital, bool singular)
Obsolete methods (should be removed): Implements 183 of the required methods.
QCString trAuthor() Missing methods (should be implemented):
QCString trAuthors()
QCString trFile(bool first_capital, bool)
QCString trFiles()
QCString trNamespace(bool first_capital, bool)
QCString trVerbatimText(const char *f)
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): TranslatorPortuguese (TranslatorAdapter_1_3_3) 5 methods to implement
--------------------
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)
---------------
Missing methods (should be implemented): Implements 190 of the required methods.
QCString trRTFGeneralIndex() Missing methods (should be implemented):
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)
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):
TranslatorSlovak (TranslatorAdapter_1_2_18) 14 methods to implement
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)
---------------- ----------------
Missing methods (should be implemented): Implements 181 of the required methods.
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)
--------------------
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 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): virtual QCString trEventDocumentation()
virtual QCString trPackageMembers()
QCString trRTFGeneralIndex() virtual QCString trStaticPackageMembers()
QCString trPage(bool first_capital, bool singular) virtual QCString trSearchResultsTitle()
QCString trPackageListDescription() virtual QCString trStaticPackageAttribs()
QCString trFile(bool first_capital, bool singular) virtual QCString trCallGraph()
QCString trBug() virtual QCString trPackageTypes()
QCString trGlobal(bool first_capital, bool singular) virtual QCString trSearchResults(int numDocuments)
QCString trPackageList() virtual QCString trPackageAttribs()
QCString trField(bool first_capital, bool singular) virtual QCString trSearchMatches()
QCString trGroup(bool first_capital, bool singular) virtual QCString trEvents()
QCString trPackage(const char *name) virtual QCString trSourceFile(QCString & filename)
QCString trProperties() virtual QCString trSearchForIndex()
QCString trBugList() virtual QCString trAll()
QCString trDCOPMethods()
QCString trPackageDocumentation()
QCString trRTFansicp() TranslatorSlovene (TranslatorAdapter_1_2_16) 16 methods to implement
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)
----------------- -----------------
Missing methods (should be implemented): Implements 179 of the required methods.
QCString trGotoTextualHierarchy() Missing methods (should be implemented):
QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate)
QCString trRTFGeneralIndex() virtual QCString trEventDocumentation()
QCString trPage(bool first_capital, bool singular) virtual QCString trPackageMembers()
QCString trPackageListDescription() virtual QCString trStaticPackageMembers()
QCString trFile(bool first_capital, bool singular) virtual QCString trSearchResultsTitle()
QCString trPrivateTypes() virtual QCString trStaticPackageAttribs()
QCString trDeprecated() virtual QCString trCallGraph()
QCString trNote() virtual QCString trDeprecatedList()
QCString trCode() virtual QCString trPackageTypes()
QCString trBug() virtual QCString trSearchResults(int numDocuments)
QCString trGlobal(bool first_capital, bool singular) virtual QCString trPackageAttribs()
QCString trInitialValue() virtual QCString trSearchMatches()
QCString trPackageList() virtual QCString trEvents()
QCString trField(bool first_capital, bool singular) virtual QCString trSourceFile(QCString & filename)
QCString trGroup(bool first_capital, bool singular) virtual QCString trSearchForIndex()
QCString trPackage(const char *name) virtual QCString trAll()
QCString trProtectedTypes() virtual QCString trRTFTableOfContents()
QCString trTest()
QCString trConstructorDocumentation()
QCString trProtectedAttribs() TranslatorSpanish (TranslatorAdapter_1_3_8) 1 method to implement
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)
----------------- -----------------
Missing methods (should be implemented): Implements 194 of the required methods.
QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) Missing methods (should be implemented):
QCString trRTFGeneralIndex()
QCString trPage(bool first_capital, bool singular) virtual QCString trSourceFile(QCString & filename)
QCString trPackageListDescription()
QCString trFile(bool first_capital, bool singular) Obsolete methods (should be removed, never used):
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)
----------------
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() virtual QCString trSourceFile(QCString & filename)
QCString trAuthors()
QCString trFiles()
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
...@@ -71,6 +71,8 @@ ...@@ -71,6 +71,8 @@
<li>Version 1.8.6 of dot (and maybe earlier versions too) do not <li>Version 1.8.6 of dot (and maybe earlier versions too) do not
generate proper map files, causing the graphs that doxygen generates generate proper map files, causing the graphs that doxygen generates
not to be properly clickable. not to be properly clickable.
<li>PHP only: Doxygen requires that all PHP statements (i.e. code) is
wrapped in a functions/methods, otherwise you may run into parse problems.
</ul> </ul>
......
Summary: A documentation system for C/C++. Summary: A documentation system for C/C++.
Name: doxygen Name: doxygen
Version: 1.3.8_20040803 Version: 1.3.8_20040812
Release: 1 Release: 1
Epoch: 1 Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
...@@ -955,7 +955,7 @@ void ClassDef::writeDocumentation(OutputList &ol) ...@@ -955,7 +955,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
if (Config_getBool("SEARCHENGINE")) if (Config_getBool("SEARCHENGINE"))
{ {
Doxygen::searchIndex->setCurrentDoc(pageTitle,getOutputFileBase()); Doxygen::searchIndex->setCurrentDoc(pageTitle,getOutputFileBase());
Doxygen::searchIndex->addWord(localName().lower()); Doxygen::searchIndex->addWord(localName());
} }
ol.startTextBlock(); ol.startTextBlock();
...@@ -2823,6 +2823,8 @@ QCString ClassDef::className() const ...@@ -2823,6 +2823,8 @@ QCString ClassDef::className() const
void ClassDef::addListReferences() void ClassDef::addListReferences()
{ {
if (!isLinkableInProject()) return;
//printf("ClassDef(%s)::addListReferences()\n",name().data());
addRefItem(xrefListItems(), addRefItem(xrefListItems(),
theTranslator->trClass(TRUE,TRUE), theTranslator->trClass(TRUE,TRUE),
getOutputFileBase(),displayName() getOutputFileBase(),displayName()
......
...@@ -243,12 +243,16 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'")) ...@@ -243,12 +243,16 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'"))
g_readLineCtx=YY_START; g_readLineCtx=YY_START;
BEGIN(ReadLine); BEGIN(ReadLine);
} }
<SComment>^[ \t]*"//!"/.*\n { <SComment>^[ \t]*"//!" | // just //!
<SComment>^[ \t]*"//!<"/.*\n | // or //!< something
<SComment>^[ \t]*"//!"[^<]/.*\n { // or //!something
replaceComment(0); replaceComment(0);
g_readLineCtx=YY_START; g_readLineCtx=YY_START;
BEGIN(ReadLine); BEGIN(ReadLine);
} }
<SComment>\n[ \t]*"//!"/.*\n { <SComment>\n[ \t]*"//!" |
<SComment>\n[ \t]*"//!<"/.*\n |
<SComment>\n[ \t]*"//!"[^<]/.*\n {
replaceComment(1); replaceComment(1);
g_readLineCtx=YY_START; g_readLineCtx=YY_START;
BEGIN(ReadLine); BEGIN(ReadLine);
...@@ -297,6 +301,7 @@ void replaceComment(int offset) ...@@ -297,6 +301,7 @@ void replaceComment(int offset)
} }
else else
{ {
//printf("replaceComment(%s)\n",yytext);
int i=computeIndent(&yytext[offset]); int i=computeIndent(&yytext[offset]);
if (i==g_blockHeadCol) if (i==g_blockHeadCol)
{ {
......
...@@ -2521,7 +2521,9 @@ void Config::create() ...@@ -2521,7 +2521,9 @@ void Config::create()
"are defined before the preprocessor is started (similar to the -D option of \n" "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" "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" "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->addDependency("ENABLE_PREPROCESSING");
cl = addList( cl = addList(
......
...@@ -363,6 +363,7 @@ void Definition::writeSourceDef(OutputList &ol,const char *) ...@@ -363,6 +363,7 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
QCString lineStr,anchorStr; QCString lineStr,anchorStr;
lineStr.sprintf("%d",m_startBodyLine); lineStr.sprintf("%d",m_startBodyLine);
anchorStr.sprintf("l%05d",m_startBodyLine); anchorStr.sprintf("l%05d",m_startBodyLine);
ol.newParagraph();
if (lineMarkerPos<fileMarkerPos) // line marker before file marker if (lineMarkerPos<fileMarkerPos) // line marker before file marker
{ {
// write text left from linePos marker // write text left from linePos marker
...@@ -432,10 +433,6 @@ void Definition::writeSourceDef(OutputList &ol,const char *) ...@@ -432,10 +433,6 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
{ {
err("Error: translation error: invalid markers in trDefinedInSourceFile()\n"); err("Error: translation error: invalid markers in trDefinedInSourceFile()\n");
} }
ol.disableAllBut(OutputGenerator::RTF);
ol.newParagraph();
ol.enableAll();
} }
ol.popGeneratorState(); ol.popGeneratorState();
} }
......
...@@ -441,7 +441,7 @@ static bool findDocsForMemberOrCompound(const char *commandName, ...@@ -441,7 +441,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
//printf("findDocsForMemberOrCompound(%s)\n",commandName); //printf("findDocsForMemberOrCompound(%s)\n",commandName);
*pDoc=""; *pDoc="";
*pDef=0; *pDef=0;
QString cmdArg=commandName; QString cmdArg=substitute(commandName,"#","::");
int l=cmdArg.length(); int l=cmdArg.length();
if (l==0) return FALSE; if (l==0) return FALSE;
...@@ -1236,7 +1236,7 @@ DocWord::DocWord(DocNode *parent,const QString &word) : ...@@ -1236,7 +1236,7 @@ DocWord::DocWord(DocNode *parent,const QString &word) :
//printf("new word %s url=%s\n",word.data(),g_searchUrl.data()); //printf("new word %s url=%s\n",word.data(),g_searchUrl.data());
if (!g_searchUrl.isEmpty()) if (!g_searchUrl.isEmpty())
{ {
Doxygen::searchIndex->addWord(word.lower()); Doxygen::searchIndex->addWord(word);
} }
} }
...@@ -1251,7 +1251,7 @@ DocLinkedWord::DocLinkedWord(DocNode *parent,const QString &word, ...@@ -1251,7 +1251,7 @@ DocLinkedWord::DocLinkedWord(DocNode *parent,const QString &word,
//printf("new word %s url=%s\n",word.data(),g_searchUrl.data()); //printf("new word %s url=%s\n",word.data(),g_searchUrl.data());
if (!g_searchUrl.isEmpty()) if (!g_searchUrl.isEmpty())
{ {
Doxygen::searchIndex->addWord(word.lower()); Doxygen::searchIndex->addWord(word);
} }
} }
...@@ -1517,6 +1517,8 @@ bool DocXRefItem::parse() ...@@ -1517,6 +1517,8 @@ bool DocXRefItem::parse()
m_file = refList->listName(); m_file = refList->listName();
m_anchor = item->listAnchor; m_anchor = item->listAnchor;
m_title = refList->sectionTitle(); 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()) if (!item->text.isEmpty())
{ {
......
...@@ -283,7 +283,8 @@ URLCHAR [a-z_A-Z0-9\!\~\:\;\'\$\?\@\&\%\#\.\-\+\/\=] ...@@ -283,7 +283,8 @@ URLCHAR [a-z_A-Z0-9\!\~\:\;\'\$\?\@\&\%\#\.\-\+\/\=]
URLMASK (([a-z_A-Z][^\>\"\n]*{URLCHAR})|({URLCHAR}+))([({]{URLCHAR}*[)}])? URLMASK (([a-z_A-Z][^\>\"\n]*{URLCHAR})|({URLCHAR}+))([({]{URLCHAR}*[)}])?
FILESCHAR [a-z_A-Z0-9\\:\\\/\-\+] FILESCHAR [a-z_A-Z0-9\\:\\\/\-\+]
FILEECHAR [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"))? LINKMASK [^ \t\n\r\\@<&${}]+("("[^\n)]*")")?({BLANK}*("const"|"volatile"))?
SPCMD1 {CMD}[a-z_A-Z0-9]+ SPCMD1 {CMD}[a-z_A-Z0-9]+
SPCMD2 {CMD}[\\@<>&$#%~] SPCMD2 {CMD}[\\@<>&$#%~]
......
...@@ -1903,15 +1903,6 @@ static void buildVarList(Entry *root) ...@@ -1903,15 +1903,6 @@ static void buildVarList(Entry *root)
} }
p=p->parent; 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; MemberDef::MemberType mtype;
QCString type=root->type.stripWhiteSpace(); QCString type=root->type.stripWhiteSpace();
...@@ -4340,6 +4331,7 @@ static void findMember(Entry *root, ...@@ -4340,6 +4331,7 @@ static void findMember(Entry *root,
QCString funcArgs; QCString funcArgs;
QCString funcTempList; QCString funcTempList;
QCString exceptions; QCString exceptions;
QCString funcSpec;
bool isRelated=FALSE; bool isRelated=FALSE;
bool isFriend=FALSE; bool isFriend=FALSE;
bool done; bool done;
...@@ -4449,7 +4441,7 @@ static void findMember(Entry *root, ...@@ -4449,7 +4441,7 @@ static void findMember(Entry *root,
} }
} }
scopeName=stripTemplateSpecifiersFromScope( scopeName=stripTemplateSpecifiersFromScope(
removeRedundantWhiteSpace(scopeName),FALSE); removeRedundantWhiteSpace(scopeName),FALSE,&funcSpec);
// split scope into a namespace and a class part // split scope into a namespace and a class part
extractNamespaceName(scopeName,className,namespaceName,TRUE); extractNamespaceName(scopeName,className,namespaceName,TRUE);
...@@ -4482,7 +4474,14 @@ static void findMember(Entry *root, ...@@ -4482,7 +4474,14 @@ static void findMember(Entry *root,
if (cd) if (cd)
{ {
if (root->tArgLists) root->tArgLists->first(); 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", //printf("scopeName=%s cd=%p root->tArgLists=%p result=%s\n",
// scopeName.data(),cd,root->tArgLists,tempScopeName.data()); // scopeName.data(),cd,root->tArgLists,tempScopeName.data());
...@@ -4551,6 +4550,7 @@ static void findMember(Entry *root, ...@@ -4551,6 +4550,7 @@ static void findMember(Entry *root,
" namespaceName=`%s'\n" " namespaceName=`%s'\n"
" className=`%s`\n" " className=`%s`\n"
" funcType=`%s'\n" " funcType=`%s'\n"
" funcSpec=`%s'\n"
" funcName=`%s'\n" " funcName=`%s'\n"
" funcArgs=`%s'\n" " funcArgs=`%s'\n"
" funcTempList=`%s'\n" " funcTempList=`%s'\n"
...@@ -4561,7 +4561,7 @@ static void findMember(Entry *root, ...@@ -4561,7 +4561,7 @@ static void findMember(Entry *root,
" isFriend=%d\n" " isFriend=%d\n"
" isFunc=%d\n\n", " isFunc=%d\n\n",
namespaceName.data(),className.data(), 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, funcDecl.data(),root->relates.data(),exceptions.data(),isRelated,isFriend,
isFunc isFunc
); );
...@@ -4589,262 +4589,300 @@ static void findMember(Entry *root, ...@@ -4589,262 +4589,300 @@ static void findMember(Entry *root,
"2. member name exists (%d members with this name)\n",mn->count()); "2. member name exists (%d members with this name)\n",mn->count());
if (!className.isEmpty()) // class name is valid if (!className.isEmpty()) // class name is valid
{ {
int count=0; if (funcSpec.isEmpty()) // not a member specialization
MemberNameIterator mni(*mn);
MemberDef *md;
bool memFound=FALSE;
for (mni.toFirst();!memFound && (md=mni.current());++mni)
{ {
ClassDef *cd=md->getClassDef(); int count=0;
Debug::print(Debug::FindMembers,0, MemberNameIterator mni(*mn);
"3. member definition found, " MemberDef *md;
"scope needed=`%s' scope=`%s' args=`%s'\n", bool memFound=FALSE;
scopeName.data(),cd ? cd->name().data() : "<none>", for (mni.toFirst();!memFound && (md=mni.current());++mni)
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
{ {
ClassDef *cd=md->getClassDef();
Debug::print(Debug::FindMembers,0, Debug::print(Debug::FindMembers,0,
"4. class definition %s found\n",cd->name().data()); "3. member definition found, "
//int ci; "scope needed=`%s' scope=`%s' args=`%s'\n",
//ArgumentList *classTemplArgs = cd->templateArguments(); scopeName.data(),cd ? cd->name().data() : "<none>",
//ArgumentList *funcTemplArgs = md->memberDefTemplateArguments(); md->argsString());
//if ((ci=cd->name().find("::"))!=-1) // nested class //printf("Member %s (member scopeName=%s) (this scopeName=%s) classTempList=%s\n",md->name().data(),cd->name().data(),scopeName.data(),classTempList.data());
//{ bool ambig;
// ClassDef *parentClass = getClass(cd->name().left(ci)); FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig);
// if (parentClass) NamespaceDef *nd=0;
// classTemplArgs = parentClass->templateArguments(); if (!namespaceName.isEmpty()) nd=getResolvedNamespace(namespaceName);
//}
////printf("cd->name=%s classTemplArgs=%s\n",cd->name().data(),
//// argListToString(classTemplArgs).data());
// get the template parameter lists found at the member declaration
QList<ArgumentList> declTemplArgs;
cd->getTemplateParameterLists(declTemplArgs);
if (md->templateArguments())
{
declTemplArgs.append(md->templateArguments());
}
// get the template parameter lists found at the member definition ClassDef *tcd=findClassDefinition(fd,nd,scopeName);
QList<ArgumentList> *defTemplArgs = root->tArgLists;
//printf("defTemplArgs=%p\n",defTemplArgs);
// do we replace the decl argument lists with the def argument lists? if (cd && tcd==cd) // member's classes match
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()
)
{ {
/* the function definition has template arguments Debug::print(Debug::FindMembers,0,
* and the class definition also has template arguments, so "4. class definition %s found\n",cd->name().data());
* we must substitute the template names of the class by that //int ci;
* of the function definition before matching. //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<ArgumentList> declTemplArgs;
cd->getTemplateParameterLists(declTemplArgs);
if (md->templateArguments())
{
declTemplArgs.append(md->templateArguments());
}
// get the template parameter lists found at the member definition
QList<ArgumentList> *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; if (declTemplArgs.count()>0 && defTemplArgs &&
substituteTemplatesInArgList(declTemplArgs,*defTemplArgs, declTemplArgs.count()==defTemplArgs->count() &&
md->argumentList(),argList); 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; Debug::print(Debug::FindMembers,0,
} "5. matching `%s'<=>`%s' className=%s namespaceName=%s\n",
else /* no template arguments, compare argument lists directly */ argListToString(argList).data(),argListToString(root->argList).data(),
{ className.data(),namespaceName.data()
argList = md->argumentList(); );
}
Debug::print(Debug::FindMembers,0, // TODO: match loop for all possible scopes
"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
bool ambig; bool ambig;
FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig); FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig);
// list of namespaces using in the file/namespace that this // list of namespaces using in the file/namespace that this
// member definition is part of // member definition is part of
NamespaceSDict *nl = new NamespaceSDict; NamespaceSDict *nl = new NamespaceSDict;
if (nd) if (nd)
{
NamespaceSDict *nnl = nd->getUsedNamespaces();
if (nnl)
{ {
NamespaceDef *nnd; NamespaceSDict *nnl = nd->getUsedNamespaces();
NamespaceSDict::Iterator nsdi(*nnl); if (nnl)
for (nsdi.toFirst();(nnd=nsdi.current());++nsdi)
{ {
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)
if (fd)
{
NamespaceSDict *fnl = fd->getUsedNamespaces();
if (fnl)
{ {
NamespaceDef *fnd; NamespaceSDict *fnl = fd->getUsedNamespaces();
NamespaceSDict::Iterator nsdi(*fnl); if (fnl)
for (nsdi.toFirst();(fnd=nsdi.current());++nsdi)
{ {
nl->append(fnd->qualifiedName(),fnd); NamespaceDef *fnd;
NamespaceSDict::Iterator nsdi(*fnl);
for (nsdi.toFirst();(fnd=nsdi.current());++nsdi)
{
nl->append(fnd->qualifiedName(),fnd);
}
} }
} }
}
SDict<Definition> *cl = new SDict<Definition>(17); SDict<Definition> *cl = new SDict<Definition>(17);
if (nd) if (nd)
{
SDict<Definition> *ncl = nd->getUsedClasses();
if (ncl)
{ {
SDict<Definition>::Iterator csdi(*ncl); SDict<Definition> *ncl = nd->getUsedClasses();
Definition *ncd; if (ncl)
for (csdi.toFirst();(ncd=csdi.current());++csdi)
{ {
cl->append(ncd->qualifiedName(),ncd); SDict<Definition>::Iterator csdi(*ncl);
Definition *ncd;
for (csdi.toFirst();(ncd=csdi.current());++csdi)
{
cl->append(ncd->qualifiedName(),ncd);
}
} }
} }
} if (fd)
if (fd)
{
SDict<Definition> *fcl = fd->getUsedClasses();
if (fcl)
{ {
SDict<Definition>::Iterator csdi(*fcl); SDict<Definition> *fcl = fd->getUsedClasses();
Definition *fcd; if (fcl)
for (csdi.toFirst();(fcd=csdi.current());++csdi)
{ {
cl->append(fcd->qualifiedName(),fcd); SDict<Definition>::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); Debug::print(Debug::FindMembers,0,
"6. match results = %d\n",matching);
if (substDone) // found a new argument list
{ if (substDone) // found a new argument list
//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", //printf("root->tArgList=`%s'\n",argListToString(root->tArgList).data());
// md->name().data(), argListToString(root->tArgList).data() if (matching) // replace member's argument list
// ); {
//printf("Setting member template argument of member %s to %s\n", //printf("Setting scope template argument of member %s to %s\n",
// md->name().data(), argListToString(root->mtArgList).data() // md->name().data(), argListToString(root->tArgList).data()
// ); // );
//printf("Setting member template argument of member %s to %s\n",
md->setDefinitionTemplateParameterLists(root->tArgLists); // md->name().data(), argListToString(root->mtArgList).data()
md->setArgumentList(argList); // );
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;
} }
} delete cl;
if (matching) delete nl;
{ }
//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;
} }
} if (count==0 && root->parent && root->parent->section==Entry::OBJCIMPL_SEC)
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)
{ {
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(); for (mni.toFirst();(md=mni.current());++mni)
if (cd!=0 && cd->name()==className)
{ {
if (root->tArgLists && md->templateArguments() && ClassDef *cd=md->getClassDef();
root->tArgLists->getLast()->count()<=md->templateArguments()->count()) if (cd!=0 && cd->name()==className)
{ // assume we have found a template specialization {
// for which there is only a definition, no declaration in if (root->tArgLists && md->templateArguments() &&
// the class. TODO: we should actually check whether root->tArgLists->getLast()->count()<=md->templateArguments()->count())
// the arguments match! { // assume we have found a template specialization
addMethodToClass(root,cd,md->name(),/*cd->name(),*/isFriend); // for which there is only a definition, no declaration in
return; // 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, warn(root->fileName,root->startLine,
"Warning: no matching class member found for" "Warning: no matching class member found for"
); );
if (root->tArgLists) if (root->tArgLists)
{
QListIterator<ArgumentList> alli(*root->tArgLists);
ArgumentList *al;
for (;(al=alli.current());++alli)
{ {
warn_cont(" template %s\n",tempArgListToString(al).data()); QListIterator<ArgumentList> 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) if (candidates>0)
{
warn_cont("Possible candidates:\n");
for (mni.toFirst();(md=mni.current());++mni)
{ {
ClassDef *cd=md->getClassDef(); warn_cont("Possible candidates:\n");
if (cd!=0 && cd->name()==className) 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()); if (md->templateArguments())
} {
warn_cont(" "); warn_cont(" template %s\n",tempArgListToString(md->templateArguments()).data());
if (md->typeString()) }
{ warn_cont(" ");
warn_cont("%s ",md->typeString()); 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 else if (overloaded) // check if the function belongs to only one class
{ {
...@@ -6683,7 +6721,7 @@ static void generateExampleDocs() ...@@ -6683,7 +6721,7 @@ static void generateExampleDocs()
pd->docLine(), // startLine pd->docLine(), // startLine
pd, // context pd, // context
0, // memberDef 0, // memberDef
pd->documentation()+"\n\\include "+pd->name(), // docs pd->documentation()+"\n\n\\include "+pd->name(), // docs
TRUE, // index words TRUE, // index words
TRUE, // is example TRUE, // is example
pd->name() pd->name()
...@@ -7073,7 +7111,7 @@ static void copyAndFilterFile(const char *fileName,BufStr &dest) ...@@ -7073,7 +7111,7 @@ static void copyAndFilterFile(const char *fileName,BufStr &dest)
} }
else else
{ {
QCString cmd=filterName+" "+fileName; QCString cmd=filterName+" \""+fileName+"\"";
FILE *f=popen(cmd,"r"); FILE *f=popen(cmd,"r");
if (!f) if (!f)
{ {
...@@ -7214,7 +7252,7 @@ static int readDir(QFileInfo *fi, ...@@ -7214,7 +7252,7 @@ static int readDir(QFileInfo *fi,
) )
{ {
QDir dir((const char *)fi->absFilePath()); QDir dir((const char *)fi->absFilePath());
dir.setFilter( QDir::Files | QDir::Dirs ); dir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden );
int totalSize=0; int totalSize=0;
//printf("readDir `%s'\n",fi->absFilePath().data()); //printf("readDir `%s'\n",fi->absFilePath().data());
//printf("killDict=%p count=%d\n",killDict,killDict->count()); //printf("killDict=%p count=%d\n",killDict,killDict->count());
...@@ -7837,41 +7875,6 @@ void readConfiguration(int argc, char **argv) ...@@ -7837,41 +7875,6 @@ void readConfiguration(int argc, char **argv)
setPerlModDoxyfile(configFileInfo.absFilePath()); setPerlModDoxyfile(configFileInfo.absFilePath());
Doxygen::xrefLists->setAutoDelete(TRUE); 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() ...@@ -7884,15 +7887,6 @@ void parseInput()
Doxygen::imageNameDict = new FileNameDict(257); Doxygen::imageNameDict = new FileNameDict(257);
Doxygen::dotFileNameDict = 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 * Initialize some global constants
**************************************************************************/ **************************************************************************/
...@@ -8313,16 +8307,16 @@ void parseInput() ...@@ -8313,16 +8307,16 @@ void parseInput()
findEnums(root); findEnums(root);
findEnumDocumentation(root); findEnumDocumentation(root);
msg("Searching for members imported via using declarations...\n");
findUsingDeclImports(root);
findUsingDeclarations(root);
msg("Searching for member function documentation...\n"); msg("Searching for member function documentation...\n");
findObjCMethodDefinitions(root); findObjCMethodDefinitions(root);
findMemberDocumentation(root); // may introduce new members ! findMemberDocumentation(root); // may introduce new members !
transferRelatedFunctionDocumentation(); transferRelatedFunctionDocumentation();
transferFunctionDocumentation(); transferFunctionDocumentation();
msg("Searching for members imported via using declarations...\n");
findUsingDeclImports(root);
findUsingDeclarations(root);
msg("Building page list...\n"); msg("Building page list...\n");
buildPageList(root); buildPageList(root);
......
...@@ -222,7 +222,7 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -222,7 +222,7 @@ void FileDef::writeDocumentation(OutputList &ol)
if (Config_getBool("SEARCHENGINE")) if (Config_getBool("SEARCHENGINE"))
{ {
Doxygen::searchIndex->setCurrentDoc(pageTitle,getOutputFileBase()); Doxygen::searchIndex->setCurrentDoc(pageTitle,getOutputFileBase());
Doxygen::searchIndex->addWord(localName().lower()); Doxygen::searchIndex->addWord(localName());
} }
if (!Config_getString("GENERATE_TAGFILE").isEmpty()) if (!Config_getString("GENERATE_TAGFILE").isEmpty())
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
*/ */
#include <ctype.h> #include <ctype.h>
#include <qregexp.h>
#include "qtbc.h" #include "qtbc.h"
#include "groupdef.h" #include "groupdef.h"
#include "classdef.h" #include "classdef.h"
...@@ -457,14 +458,20 @@ void GroupDef::writeDocumentation(OutputList &ol) ...@@ -457,14 +458,20 @@ void GroupDef::writeDocumentation(OutputList &ol)
//ol.disable(OutputGenerator::Man); //ol.disable(OutputGenerator::Man);
startFile(ol,getOutputFileBase(),name(),title); startFile(ol,getOutputFileBase(),name(),title);
startTitle(ol,getOutputFileBase()); startTitle(ol,getOutputFileBase());
ol.docify(title); ol.parseText(title);
addGroupListToTitle(ol,this); addGroupListToTitle(ol,this);
endTitle(ol,getOutputFileBase(),title); endTitle(ol,getOutputFileBase(),title);
if (Config_getBool("SEARCHENGINE")) if (Config_getBool("SEARCHENGINE"))
{ {
Doxygen::searchIndex->setCurrentDoc(title,getOutputFileBase()); 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")) if (Config_getBool("DETAILS_AT_TOP"))
......
...@@ -26,9 +26,8 @@ ...@@ -26,9 +26,8 @@
#include "dot.h" #include "dot.h"
#include "message.h" #include "message.h"
#include "config.h" #include "config.h"
#include "htmlgen.h"
#define PREFRAG_START "<div class=\"fragment\"><pre>"
#define PREFRAG_END "</pre></div>"
static QString htmlAttribsToString(const HtmlAttribList &attribs) static QString htmlAttribsToString(const HtmlAttribList &attribs)
{ {
...@@ -872,7 +871,7 @@ void HtmlDocVisitor::visitPost(DocParamSect *) ...@@ -872,7 +871,7 @@ void HtmlDocVisitor::visitPost(DocParamSect *)
void HtmlDocVisitor::visitPre(DocParamList *pl) void HtmlDocVisitor::visitPre(DocParamList *pl)
{ {
if (m_hide) return; if (m_hide) return;
m_t << " <tr><td>"; m_t << " <tr><td valign=\"top\">";
if (pl->direction()!=DocParamSect::Unspecified) if (pl->direction()!=DocParamSect::Unspecified)
{ {
m_t << "<tt>["; m_t << "<tt>[";
...@@ -890,7 +889,7 @@ void HtmlDocVisitor::visitPre(DocParamList *pl) ...@@ -890,7 +889,7 @@ void HtmlDocVisitor::visitPre(DocParamList *pl)
} }
m_t << "]</tt>&nbsp;"; m_t << "]</tt>&nbsp;";
} }
m_t << "</td><td valign=top><em>"; m_t << "</td><td valign=\"top\"><em>";
QStrListIterator li(pl->parameters()); QStrListIterator li(pl->parameters());
const char *s; const char *s;
bool first=TRUE; bool first=TRUE;
......
...@@ -42,12 +42,11 @@ ...@@ -42,12 +42,11 @@
#define DBG_HTML(x) #define DBG_HTML(x)
static const char *defaultStyleSheet = static const char *defaultStyleSheet =
"H1 {\n" "BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {\n"
" text-align: center;\n"
" font-family: Geneva, Arial, Helvetica, sans-serif;\n" " font-family: Geneva, Arial, Helvetica, sans-serif;\n"
"}\n" "}\n"
"H2 {\n" "H1 {\n"
" font-family: Geneva, Arial, Helvetica, sans-serif;\n" " text-align: center;\n"
"}\n" "}\n"
"CAPTION { font-weight: bold }\n" "CAPTION { font-weight: bold }\n"
"DIV.qindex {\n" "DIV.qindex {\n"
...@@ -93,10 +92,15 @@ static const char *defaultStyleSheet = ...@@ -93,10 +92,15 @@ static const char *defaultStyleSheet =
"A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }\n" "A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }\n"
"A.el { text-decoration: none; font-weight: bold }\n" "A.el { text-decoration: none; font-weight: bold }\n"
"A.elRef { font-weight: bold }\n" "A.elRef { font-weight: bold }\n"
"A.code { text-decoration: none; font-weight: normal; color: #1A419D}\n" "A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}\n"
"A.codeRef { font-weight: normal; color: #1A419D}\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" "A:hover { text-decoration: none; background-color: #f2f2ff }\n"
"DL.el { margin-left: -1cm }\n" "DL.el { margin-left: -1cm }\n"
".fragment {\n"
" font-family: monospace\n"
"}\n"
"PRE.fragment {\n" "PRE.fragment {\n"
" border: 1px solid #CCCCCC;\n" " border: 1px solid #CCCCCC;\n"
" background-color: #f5f5f5;\n" " background-color: #f5f5f5;\n"
...@@ -109,11 +113,12 @@ static const char *defaultStyleSheet = ...@@ -109,11 +113,12 @@ static const char *defaultStyleSheet =
" padding-top: 4px;\n" " padding-top: 4px;\n"
" padding-bottom: 4px;\n" " padding-bottom: 4px;\n"
"}\n" "}\n"
"DIV.fragment {\n" //"DIV.fragment {\n"
" border: 1px solid #CCCCCC;\n" //" font-family: monospace\n"
" background-color: #f5f5f5;\n" //" border: 1px solid #CCCCCC;\n"
" padding: 6px;\n" //" background-color: #f5f5f5;\n"
"}\n" //" padding: 6px;\n"
//"}\n"
"DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }\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.md { background-color: #F4F4FB; font-weight: bold; }\n"
"TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; }\n" "TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; }\n"
...@@ -123,7 +128,6 @@ static const char *defaultStyleSheet = ...@@ -123,7 +128,6 @@ static const char *defaultStyleSheet =
" margin-top: 12px;\n" " margin-top: 12px;\n"
" margin-bottom: 6px;\n" " margin-bottom: 6px;\n"
" font-weight: bold;\n" " font-weight: bold;\n"
" font-family: Geneva, Arial, Helvetica, sans-serif;\n"
"}\n" "}\n"
"DIV.groupText { margin-left: 16px; font-style: italic; font-size: 14px }\n" "DIV.groupText { margin-left: 16px; font-style: italic; font-size: 14px }\n"
"BODY {\n" "BODY {\n"
...@@ -216,7 +220,6 @@ static const char *defaultStyleSheet = ...@@ -216,7 +220,6 @@ static const char *defaultStyleSheet =
" border-bottom-style: none;\n" " border-bottom-style: none;\n"
" border-left-style: none;\n" " border-left-style: none;\n"
" background-color: #FAFAFA;\n" " background-color: #FAFAFA;\n"
" font-family: Geneva, Arial, Helvetica, sans-serif;\n"
" font-size: 12px;\n" " font-size: 12px;\n"
"}\n" "}\n"
".memItemRight {\n" ".memItemRight {\n"
...@@ -235,7 +238,6 @@ static const char *defaultStyleSheet = ...@@ -235,7 +238,6 @@ static const char *defaultStyleSheet =
" border-bottom-style: none;\n" " border-bottom-style: none;\n"
" border-left-style: none;\n" " border-left-style: none;\n"
" background-color: #FAFAFA;\n" " background-color: #FAFAFA;\n"
" font-family: Geneva, Arial, Helvetica, sans-serif;\n"
" font-size: 13px;\n" " font-size: 13px;\n"
"}\n" "}\n"
".search { color: #003399;\n" ".search { color: #003399;\n"
...@@ -1535,7 +1537,7 @@ void HtmlGenerator::writeSearchPage() ...@@ -1535,7 +1537,7 @@ void HtmlGenerator::writeSearchPage()
t << "\n"; t << "\n";
t << "function report_matches()\n"; t << "function report_matches()\n";
t << "{\n"; t << "{\n";
t << " return \"" << theTranslator->trSearchMatches() << " \";\n"; t << " return \"" << theTranslator->trSearchMatches() << " \";\n";
t << "}\n"; t << "}\n";
t << "\n"; t << "\n";
t << search_script; t << search_script;
......
...@@ -21,6 +21,9 @@ ...@@ -21,6 +21,9 @@
#include "qtbc.h" #include "qtbc.h"
#include "outputgen.h" #include "outputgen.h"
#define PREFRAG_START "<div class=\"fragment\"><pre class=\"fragment\">"
#define PREFRAG_END "</pre></div>"
class QFile; class QFile;
class HtmlGenerator : public OutputGenerator class HtmlGenerator : public OutputGenerator
...@@ -112,8 +115,8 @@ class HtmlGenerator : public OutputGenerator ...@@ -112,8 +115,8 @@ class HtmlGenerator : public OutputGenerator
void writeRuler() { t << "<hr>"; } void writeRuler() { t << "<hr>"; }
void writeAnchor(const char *,const char *name) void writeAnchor(const char *,const char *name)
{ t << "<a name=\"" << name <<"\"></a>"; } { t << "<a name=\"" << name <<"\"></a>"; }
void startCodeFragment() { t << "<pre class=\"fragment\"><div>"; } void startCodeFragment() { t << PREFRAG_START; }
void endCodeFragment() { t << "</div></pre>"; } void endCodeFragment() { t << PREFRAG_END; }
void writeLineNumber(const char *,const char *,const char *,int); void writeLineNumber(const char *,const char *,const char *,int);
void startCodeLine() { col=0; } void startCodeLine() { col=0; }
void endCodeLine() { codify("\n"); } void endCodeLine() { codify("\n"); }
......
...@@ -460,6 +460,7 @@ void ManDocVisitor::visitPre(DocSimpleList *) ...@@ -460,6 +460,7 @@ void ManDocVisitor::visitPre(DocSimpleList *)
{ {
if (m_hide) return; if (m_hide) return;
m_indent+=2; m_indent+=2;
if (!m_firstCol) m_t << endl;
m_t << ".PD 0" << endl; m_t << ".PD 0" << endl;
} }
...@@ -507,6 +508,7 @@ void ManDocVisitor::visitPre(DocHtmlList *) ...@@ -507,6 +508,7 @@ void ManDocVisitor::visitPre(DocHtmlList *)
{ {
if (m_hide) return; if (m_hide) return;
m_indent+=2; m_indent+=2;
if (!m_firstCol) m_t << endl;
m_t << ".PD 0" << endl; m_t << ".PD 0" << endl;
} }
...@@ -514,6 +516,7 @@ void ManDocVisitor::visitPost(DocHtmlList *) ...@@ -514,6 +516,7 @@ void ManDocVisitor::visitPost(DocHtmlList *)
{ {
if (m_hide) return; if (m_hide) return;
m_indent-=2; m_indent-=2;
if (!m_firstCol) m_t << endl;
m_t << ".PP" << endl; m_t << ".PP" << endl;
} }
...@@ -741,6 +744,7 @@ void ManDocVisitor::visitPost(DocSecRefList *) ...@@ -741,6 +744,7 @@ void ManDocVisitor::visitPost(DocSecRefList *)
{ {
if (m_hide) return; if (m_hide) return;
m_indent-=2; m_indent-=2;
if (!m_firstCol) m_t << endl;
m_t << ".PP" << endl; m_t << ".PP" << endl;
} }
......
...@@ -343,6 +343,7 @@ MemberDef::MemberDef(const char *df,int dl, ...@@ -343,6 +343,7 @@ MemberDef::MemberDef(const char *df,int dl,
section=0; section=0;
groupAlias=0; groupAlias=0;
explExt=FALSE; explExt=FALSE;
tspec=FALSE;
cachedAnonymousType=0; cachedAnonymousType=0;
maxInitLines=Config_getInt("MAX_INITIALIZER_LINES"); maxInitLines=Config_getInt("MAX_INITIALIZER_LINES");
userInitLines=-1; userInitLines=-1;
...@@ -834,8 +835,8 @@ void MemberDef::writeDeclaration(OutputList &ol, ...@@ -834,8 +835,8 @@ void MemberDef::writeDeclaration(OutputList &ol,
if (Config_getBool("SEARCHENGINE")) if (Config_getBool("SEARCHENGINE"))
{ {
Doxygen::searchIndex->setCurrentDoc(qualifiedName(),getOutputFileBase(),anchor()); Doxygen::searchIndex->setCurrentDoc(qualifiedName(),getOutputFileBase(),anchor());
Doxygen::searchIndex->addWord(localName().lower()); Doxygen::searchIndex->addWord(localName());
Doxygen::searchIndex->addWord(qualifiedName().lower()); Doxygen::searchIndex->addWord(qualifiedName());
} }
Definition *d=0; Definition *d=0;
...@@ -1248,7 +1249,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1248,7 +1249,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
htmlHelp->addIndexItem(cname,name(),cfname,anchor()); htmlHelp->addIndexItem(cname,name(),cfname,anchor());
} }
linkifyText(TextGeneratorOLImpl(ol),container,getBodyDef(),name(),ldef.left(i)); linkifyText(TextGeneratorOLImpl(ol),container,getBodyDef(),name(),ldef.left(i));
//ol+=*vmd->enumDecl();
vmd->writeEnumDeclaration(ol,getClassDef(),getNamespaceDef(),getFileDef(),getGroupDef()); vmd->writeEnumDeclaration(ol,getClassDef(),getNamespaceDef(),getFileDef(),getGroupDef());
linkifyText(TextGeneratorOLImpl(ol),container,getBodyDef(),name(),ldef.right(ldef.length()-i-l)); linkifyText(TextGeneratorOLImpl(ol),container,getBodyDef(),name(),ldef.right(ldef.length()-i-l));
...@@ -1310,7 +1310,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1310,7 +1310,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
else // definition gets it template parameters from its class else // definition gets it template parameters from its class
// (since no definition was found) // (since no definition was found)
{ {
if (cd) if (cd && !isTemplateSpecialization())
{ {
QList<ArgumentList> tempParamLists; QList<ArgumentList> tempParamLists;
cd->getTemplateParameterLists(tempParamLists); cd->getTemplateParameterLists(tempParamLists);
...@@ -1670,7 +1670,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1670,7 +1670,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
ol.parseText(reimplFromLine.right( ol.parseText(reimplFromLine.right(
reimplFromLine.length()-markerPos-2)); // text right from marker reimplFromLine.length()-markerPos-2)); // text right from marker
ol.newParagraph();
} }
else else
{ {
...@@ -1751,7 +1750,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1751,7 +1750,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
index=newIndex+matchLen; index=newIndex+matchLen;
} }
ol.parseText(reimplInLine.right(reimplInLine.length()-index)); ol.parseText(reimplInLine.right(reimplInLine.length()-index));
ol.newParagraph();
} }
} }
// write the list of examples that use this member // write the list of examples that use this member
...@@ -2003,9 +2001,14 @@ void MemberDef::addListReference(Definition *) ...@@ -2003,9 +2001,14 @@ void MemberDef::addListReference(Definition *)
} }
} }
} }
//printf("*** addListReference %s todo=%d test=%d bug=%d\n",name().data(),todoId(),testId(),bugId()); if (xrefListItems())
addRefItem(xrefListItems(),memLabel, {
getOutputFileBase()+"#"+anchor(),memName,argsString()); addRefItem(xrefListItems(),memLabel,
getOutputFileBase()+"#"+anchor(),memName,argsString());
}
else
{
}
} }
MemberList *MemberDef::getSectionList(Definition *d) const MemberList *MemberDef::getSectionList(Definition *d) const
......
...@@ -134,6 +134,7 @@ class MemberDef : public Definition ...@@ -134,6 +134,7 @@ class MemberDef : public Definition
bool isWritable() const { return (memSpec&Entry::Writable)!=0; } bool isWritable() const { return (memSpec&Entry::Writable)!=0; }
bool isImplementation() const { return m_implOnly; } bool isImplementation() const { return m_implOnly; }
bool isExternal() const { return explExt; } bool isExternal() const { return explExt; }
bool isTemplateSpecialization() const { return tspec; }
bool isObjCMethod() const; bool isObjCMethod() const;
bool isConstructor() const; bool isConstructor() const;
bool isDestructor() const; bool isDestructor() const;
...@@ -151,22 +152,23 @@ class MemberDef : public Definition ...@@ -151,22 +152,23 @@ class MemberDef : public Definition
bool isDocumentedFriendClass() const; bool isDocumentedFriendClass() const;
// set functions // set functions
void setMemberType(MemberType t) { mtype=t; } void setMemberType(MemberType t) { mtype=t; }
void setDefinition(const char *d) { def=d; } void setDefinition(const char *d) { def=d; }
void setFileDef(FileDef *fd) { fileDef=fd; } void setFileDef(FileDef *fd) { fileDef=fd; }
void setAnchor(const char *a); void setAnchor(const char *a);
void setProtection(Protection p) { prot=p; } void setProtection(Protection p) { prot=p; }
void setMemberSpecifiers(int s) { memSpec=s; } void setMemberSpecifiers(int s) { memSpec=s; }
void mergeMemberSpecifiers(int s) { memSpec|=s; } void mergeMemberSpecifiers(int s) { memSpec|=s; }
void setInitializer(const char *i); void setInitializer(const char *i);
void setBitfields(const char *s) { bitfields = s; } void setBitfields(const char *s) { bitfields = s; }
void setMaxInitLines(int lines) { userInitLines=lines; } void setMaxInitLines(int lines) { userInitLines=lines; }
void setMemberClass(ClassDef *cd); void setMemberClass(ClassDef *cd);
void setSectionList(Definition *d,MemberList *sl); void setSectionList(Definition *d,MemberList *sl);
void setGroupDef(GroupDef *gd,Grouping::GroupPri_t pri,const QCString &fileName,int startLine,bool hasDocs); void setGroupDef(GroupDef *gd,Grouping::GroupPri_t pri,const QCString &fileName,int startLine,bool hasDocs);
void setExplicitExternal(bool b) { explExt=b; } void setExplicitExternal(bool b) { explExt=b; }
void setReadAccessor(const char *r) { read=r; } void setReadAccessor(const char *r) { read=r; }
void setWriteAccessor(const char *w) { write=w; } void setWriteAccessor(const char *w) { write=w; }
void setTemplateSpecialization(bool b) { tspec=b; }
void makeRelated() { related=TRUE; } void makeRelated() { related=TRUE; }
...@@ -348,6 +350,7 @@ class MemberDef : public Definition ...@@ -348,6 +350,7 @@ class MemberDef : public Definition
GroupDef *group; // group in which this member is in GroupDef *group; // group in which this member is in
bool explExt; // member was explicitly declared external bool explExt; // member was explicitly declared external
bool tspec; // member is a template specialization
ClassDef *cachedAnonymousType; // if the member has an anonymous compound ClassDef *cachedAnonymousType; // if the member has an anonymous compound
// as its type then this is computed by // as its type then this is computed by
......
...@@ -286,14 +286,14 @@ void MemberList::writePlainDeclarations(OutputList &ol, ...@@ -286,14 +286,14 @@ void MemberList::writePlainDeclarations(OutputList &ol,
{ {
if (md->fromAnonymousScope() && !md->anonymousDeclShown()) if (md->fromAnonymousScope() && !md->anonymousDeclShown())
{ {
md->setFromAnonymousScope(FALSE);
//printf("anonymous compound members\n"); //printf("anonymous compound members\n");
if (md->isBriefSectionVisible()) if (md->isBriefSectionVisible())
{ {
if (first) ol.startMemberList(),first=FALSE; if (first) ol.startMemberList(),first=FALSE;
md->setFromAnonymousScope(FALSE);
md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup); md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup);
md->setFromAnonymousScope(TRUE);
} }
md->setFromAnonymousScope(TRUE);
} }
} }
} }
......
...@@ -275,15 +275,14 @@ void NamespaceDef::writeDocumentation(OutputList &ol) ...@@ -275,15 +275,14 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
} }
startFile(ol,getOutputFileBase(),name(),pageTitle); startFile(ol,getOutputFileBase(),name(),pageTitle);
startTitle(ol,getOutputFileBase()); startTitle(ol,getOutputFileBase());
//ol.docify(pageTitle); ol.parseText(pageTitle);
//ol.parseText(pageTitle);
addGroupListToTitle(ol,this); addGroupListToTitle(ol,this);
endTitle(ol,getOutputFileBase(),displayName()); endTitle(ol,getOutputFileBase(),displayName());
if (Config_getBool("SEARCHENGINE")) if (Config_getBool("SEARCHENGINE"))
{ {
Doxygen::searchIndex->setCurrentDoc(pageTitle,getOutputFileBase()); Doxygen::searchIndex->setCurrentDoc(pageTitle,getOutputFileBase());
Doxygen::searchIndex->addWord(localName().lower()); Doxygen::searchIndex->addWord(localName());
} }
if (!Config_getString("GENERATE_TAGFILE").isEmpty()) if (!Config_getString("GENERATE_TAGFILE").isEmpty())
......
...@@ -194,7 +194,7 @@ static FILE *checkAndOpenFile(const QCString &absName) ...@@ -194,7 +194,7 @@ static FILE *checkAndOpenFile(const QCString &absName)
QCString filterName = getFileFilter(absName); QCString filterName = getFileFilter(absName);
if (!filterName.isEmpty()) if (!filterName.isEmpty())
{ {
QCString cmd = filterName+" "+absName; QCString cmd = filterName+" \""+absName+"\"";
f=popen(cmd,"r"); f=popen(cmd,"r");
if (!f) err("Error: could not execute filter %s\n",cmd.data()); if (!f) err("Error: could not execute filter %s\n",cmd.data());
} }
...@@ -1486,6 +1486,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -1486,6 +1486,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
Define *def; Define *def;
if ((def=isDefined(yytext)) if ((def=isDefined(yytext))
/*&& !def->isPredefined*/ /*&& !def->isPredefined*/
&& !def->nonRecursive
) )
{ {
//printf("undefining %s\n",yytext); //printf("undefining %s\n",yytext);
......
...@@ -37,8 +37,8 @@ ...@@ -37,8 +37,8 @@
#include "rtfdocvisitor.h" #include "rtfdocvisitor.h"
#include "docparser.h" #include "docparser.h"
#define DBG_RTF(x) x; //#define DBG_RTF(x) x;
//#define DBG_RTF(x) #define DBG_RTF(x)
static QCString dateToRTFDateString() static QCString dateToRTFDateString()
{ {
......
...@@ -2589,9 +2589,21 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -2589,9 +2589,21 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
{ {
varEntry->groups->append(new Grouping(*g)); varEntry->groups->append(new Grouping(*g));
} }
if (current->sli) // copy special list items
{
QListIterator<ListItemInfo> 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", //printf("Add: type=`%s',name=`%s',args=`%s' brief=%s doc=%s\n",
// varEntry->type.data(),varEntry->name.data(),varEntry->args.data()); // varEntry->type.data(),varEntry->name.data(),
// varEntry->args.data(),varEntry->brief.data(),varEntry->doc.data());
current_root->addSubEntry(varEntry); current_root->addSubEntry(varEntry);
} }
if (*yytext==';') if (*yytext==';')
......
...@@ -14,9 +14,9 @@ function readString($file) ...@@ -14,9 +14,9 @@ function readString($file)
function readHeader($file) function readHeader($file)
{ {
$header =fgetc($file); $header.=fgetc($file); $header =fgetc($file); $header.=fgetc($file);
$header.=fgetc($file); $header.=fgetc($file); $header.=fgetc($file); $header.=fgetc($file);
return $header; return $header;
} }
function computeIndex($word) function computeIndex($word)
...@@ -284,7 +284,7 @@ function main() ...@@ -284,7 +284,7 @@ function main()
if (!in_array($word,$foundWords)) if (!in_array($word,$foundWords))
{ {
$foundWords[]=$word; $foundWords[]=$word;
search($file,$word,$results); search($file,strtolower($word),$results);
} }
$word=strtok(" "); $word=strtok(" ");
} }
......
...@@ -14,9 +14,9 @@ ...@@ -14,9 +14,9 @@
"\n" "\n"
"function readHeader($file)\n" "function readHeader($file)\n"
"{\n" "{\n"
" $header =fgetc($file); $header.=fgetc($file);\n" " $header =fgetc($file); $header.=fgetc($file);\n"
" $header.=fgetc($file); $header.=fgetc($file);\n" " $header.=fgetc($file); $header.=fgetc($file);\n"
" return $header;\n" " return $header;\n"
"}\n" "}\n"
"\n" "\n"
"function computeIndex($word)\n" "function computeIndex($word)\n"
...@@ -284,7 +284,7 @@ ...@@ -284,7 +284,7 @@
" if (!in_array($word,$foundWords))\n" " if (!in_array($word,$foundWords))\n"
" {\n" " {\n"
" $foundWords[]=$word;\n" " $foundWords[]=$word;\n"
" search($file,$word,$results);\n" " search($file,strtolower($word),$results);\n"
" }\n" " }\n"
" $word=strtok(\" \");\n" " $word=strtok(\" \");\n"
" }\n" " }\n"
......
...@@ -81,12 +81,14 @@ static int charsToIndex(const char *word) ...@@ -81,12 +81,14 @@ static int charsToIndex(const char *word)
void SearchIndex::addWord(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) if (w==0)
{ {
int idx=charsToIndex(word); int idx=charsToIndex(wStr);
if (idx<0) return; if (idx<0) return;
w = new IndexWord(word); w = new IndexWord(wStr);
//fprintf(stderr,"addWord(%s) at index %d\n",word,idx); //fprintf(stderr,"addWord(%s) at index %d\n",word,idx);
m_index[idx]->append(w); m_index[idx]->append(w);
m_words.insert(word,w); m_words.insert(word,w);
......
...@@ -152,204 +152,5 @@ class TranslatorAdapter_1_2_11 : public TranslatorAdapter_1_2_13 ...@@ -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 #endif
...@@ -2012,6 +2012,7 @@ void trimBaseClassScope(BaseClassList *bcl,QCString &s,int level=0) ...@@ -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 /*! 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 * scope. If neither or both have a namespace scope, t1 and t2 remain
* unchanged. * unchanged.
...@@ -2086,6 +2087,7 @@ static void trimNamespaceScope(QCString &t1,QCString &t2,const QCString &nsName) ...@@ -2086,6 +2087,7 @@ static void trimNamespaceScope(QCString &t1,QCString &t2,const QCString &nsName)
p2 = QMAX(i2-2,0); p2 = QMAX(i2-2,0);
} }
} }
#endif
/*! According to the C++ spec and Ivan Vecerina: /*! According to the C++ spec and Ivan Vecerina:
...@@ -2227,7 +2229,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, ...@@ -2227,7 +2229,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
//srcAType=stripTemplateSpecifiersFromScope(srcAType,FALSE); //srcAType=stripTemplateSpecifiersFromScope(srcAType,FALSE);
//dstAType=stripTemplateSpecifiersFromScope(dstAType,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()); // dstAType.data(),dstA->name.data());
if (srcA->array!=dstA->array) // nomatch for char[] against char if (srcA->array!=dstA->array) // nomatch for char[] against char
...@@ -2240,7 +2242,9 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, ...@@ -2240,7 +2242,9 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
// remove a namespace scope that is only in one type // remove a namespace scope that is only in one type
// (assuming a using statement was used) // (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 srcScope;
//QCString dstScope; //QCString dstScope;
...@@ -2268,6 +2272,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, ...@@ -2268,6 +2272,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
srcAType=trimScope(namespaceName,srcAType); srcAType=trimScope(namespaceName,srcAType);
dstAType=trimScope(namespaceName,dstAType); dstAType=trimScope(namespaceName,dstAType);
} }
//printf("#usingNamespace=%d\n",usingNamespaces->count());
if (usingNamespaces && usingNamespaces->count()>0) if (usingNamespaces && usingNamespaces->count()>0)
{ {
NamespaceSDict::Iterator nli(*usingNamespaces); NamespaceSDict::Iterator nli(*usingNamespaces);
...@@ -2278,6 +2283,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, ...@@ -2278,6 +2283,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
dstAType=trimScope(nd->name(),dstAType); dstAType=trimScope(nd->name(),dstAType);
} }
} }
//printf("#usingClasses=%d\n",usingClasses->count());
if (usingClasses && usingClasses->count()>0) if (usingClasses && usingClasses->count()>0)
{ {
SDict<Definition>::Iterator cli(*usingClasses); SDict<Definition>::Iterator cli(*usingClasses);
...@@ -2289,7 +2295,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, ...@@ -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()); // dstAType.data(),dstA->name.data());
if (!srcA->name.isEmpty() && !dstA->type.isEmpty() && if (!srcA->name.isEmpty() && !dstA->type.isEmpty() &&
...@@ -4200,7 +4206,8 @@ QList<ArgumentList> *copyArgumentLists(const QList<ArgumentList> *srcLists) ...@@ -4200,7 +4206,8 @@ QList<ArgumentList> *copyArgumentLists(const QList<ArgumentList> *srcLists)
* strip both unless A<T> or B<S> are specialized template classes. * strip both unless A<T> or B<S> are specialized template classes.
*/ */
QCString stripTemplateSpecifiersFromScope(const QCString &fullName, QCString stripTemplateSpecifiersFromScope(const QCString &fullName,
bool parentOnly) bool parentOnly,
QCString *pLastScopeStripped)
{ {
QCString result; QCString result;
int p=0; int p=0;
...@@ -4237,6 +4244,10 @@ QCString stripTemplateSpecifiersFromScope(const QCString &fullName, ...@@ -4237,6 +4244,10 @@ QCString stripTemplateSpecifiersFromScope(const QCString &fullName,
result+=fullName.mid(i,e-i); result+=fullName.mid(i,e-i);
//printf("2:result+=%s\n",fullName.mid(i,e-i-1).data()); //printf("2:result+=%s\n",fullName.mid(i,e-i-1).data());
} }
else if (pLastScopeStripped)
{
*pLastScopeStripped=fullName.mid(i,e-i);
}
p=e; p=e;
i=fullName.find('<',p); i=fullName.find('<',p);
} }
...@@ -4420,7 +4431,7 @@ void addRefItem(const QList<ListItemInfo> *sli, ...@@ -4420,7 +4431,7 @@ void addRefItem(const QList<ListItemInfo> *sli,
const char *prefix, const char *prefix,
const char *name,const char *title,const char *args) 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) if (sli)
{ {
QListIterator<ListItemInfo> slii(*sli); QListIterator<ListItemInfo> slii(*sli);
...@@ -4440,8 +4451,8 @@ void addRefItem(const QList<ListItemInfo> *sli, ...@@ -4440,8 +4451,8 @@ void addRefItem(const QList<ListItemInfo> *sli,
{ {
RefItem *item = refList->getRefItem(lii->itemId); RefItem *item = refList->getRefItem(lii->itemId);
ASSERT(item!=0); ASSERT(item!=0);
if (item->written) return;
//printf("anchor=%s\n",item->listAnchor.data()); //printf("anchor=%s\n",item->listAnchor.data());
if (item->written) return;
QCString doc(1000); QCString doc(1000);
doc = "\\anchor "; doc = "\\anchor ";
......
...@@ -190,7 +190,8 @@ QCString substituteTemplateArgumentsInString( ...@@ -190,7 +190,8 @@ QCString substituteTemplateArgumentsInString(
ArgumentList *copyArgumentList(const ArgumentList *src); ArgumentList *copyArgumentList(const ArgumentList *src);
QList<ArgumentList> *copyArgumentLists(const QList<ArgumentList> *srcLists); QList<ArgumentList> *copyArgumentLists(const QList<ArgumentList> *srcLists);
QCString stripTemplateSpecifiersFromScope(const QCString &fullName, QCString stripTemplateSpecifiersFromScope(const QCString &fullName,
bool parentOnly=TRUE); bool parentOnly=TRUE,
QCString *lastScopeStripped=0);
QCString resolveTypeDef(Definition *d,const QCString &name, QCString resolveTypeDef(Definition *d,const QCString &name,
Definition **typedefContext=0); Definition **typedefContext=0);
QCString mergeScopes(const QCString &leftScope,const QCString &rightScope); QCString mergeScopes(const QCString &leftScope,const QCString &rightScope);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment