Commit e305d804 authored by dimitri's avatar dimitri

Release-1.3.8

parent 46361b70
DOXYGEN Version 1.3.7-20040718 DOXYGEN Version 1.3.8
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 (18 July 2004) Dimitri van Heesch (25 July 2004)
DOXYGEN Version 1.3.7_20040718 DOXYGEN Version 1.3.8
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) (18 July 2004) Dimitri van Heesch (dimitri@stack.nl) (25 July 2004)
1.3.7-20040718 1.3.8
...@@ -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.7-20040719), 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,
...@@ -45,7 +45,7 @@ when the translator was updated. ...@@ -45,7 +45,7 @@ when the translator was updated.
<td ><b><font size=+1 color="#ffffff"> Language </font></b></td> <td ><b><font size=+1 color="#ffffff"> Language </font></b></td>
<td ><b><font size=+1 color="#ffffff"> Maintainer </font></b></td> <td ><b><font size=+1 color="#ffffff"> Maintainer </font></b></td>
<td ><b><font size=+1 color="#ffffff"> Contact address </font> <td ><b><font size=+1 color="#ffffff"> Contact address </font>
<font size=-2 color="#ffffff">(remove the NOSPAM.)</font></b></td> <font size=-2 color="#ffffff">(replace the at and dot)</font></b></td>
<td ><b><font size=+1 color="#ffffff"> Status </font></b></td> <td ><b><font size=+1 color="#ffffff"> Status </font></b></td>
</tr> </tr>
<!-- table content begin --> <!-- table content begin -->
...@@ -53,104 +53,104 @@ when the translator was updated. ...@@ -53,104 +53,104 @@ when the translator was updated.
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Afrikaans</td> <td>Afrikaans</td>
<td>Johan Prinsloo</td> <td>Johan Prinsloo</td>
<td>johan@NOSPAM.zippysnoek.com</td> <td>johan at zippysnoek dot com</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Brazilian Portuguese</td> <td>Brazilian Portuguese</td>
<td>Fabio "FJTC" Jun Takada Chino</td> <td>Fabio "FJTC" Jun Takada Chino</td>
<td>chino@NOSPAM.icmc.sc.usp.br</td> <td>chino at icmc dot sc dot usp dot br</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Catalan</td> <td>Catalan</td>
<td>Albert Mora</td> <td>Albert Mora</td>
<td>amora@NOSPAM.iua.upf.es</td> <td>amora at iua dot upf dot es</td>
<td>1.2.17</td> <td>1.2.17</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Chinese</td> <td>Chinese</td>
<td>Li Daobing<br>Wei Liu</td> <td>Li Daobing<br>Wei Liu</td>
<td>lidaobing@NOSPAM.gmail.com<br>liuwei@NOSPAM.asiainfo.com</td> <td>lidaobing at gmail dot com<br>liuwei at asiainfo dot com</td>
<td>1.3.08</td> <td>1.3.08</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Chinese Traditional</td> <td>Chinese Traditional</td>
<td>Daniel YC Lin<br>Gary Lee</td> <td>Daniel YC Lin<br>Gary Lee</td>
<td>daniel@NOSPAM.twpda.com<br>garylee@NOSPAM.ecosine.com.tw</td> <td>daniel at twpda dot com<br>garylee at ecosine dot com dot tw</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Croatian</td> <td>Croatian</td>
<td>Boris Bralo</td> <td>Boris Bralo</td>
<td>boris.bralo@NOSPAM.zg.tel.hr</td> <td>boris.bralo at zg dot htnet dot hr</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Czech</td> <td>Czech</td>
<td>Petr P&#x0159;ikryl</td> <td>Petr P&#x0159;ikryl</td>
<td>prikrylp@NOSPAM.skil.cz</td> <td>prikrylp at skil dot cz</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<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@NOSPAM.mail.nu</td> <td>erik at mail dot nu</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Dutch</td> <td>Dutch</td>
<td>Dimitri van Heesch</td> <td>Dimitri van Heesch</td>
<td>dimitri@NOSPAM.stack.nl</td> <td>dimitri at stack dot nl</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>English</td> <td>English</td>
<td>Dimitri van Heesch</td> <td>Dimitri van Heesch</td>
<td>dimitri@NOSPAM.stack.nl</td> <td>dimitri at stack dot nl</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Finnish</td> <td>Finnish</td>
<td>Olli Korhonen</td> <td>Olli Korhonen</td>
<td>Olli.Korhonen@NOSPAM.ccc.fi</td> <td>Olli.Korhonen at ccc dot fi</td>
<td>obsolete</td> <td>obsolete</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>French</td> <td>French</td>
<td>Xavier Outhier</td> <td>Xavier Outhier</td>
<td>xouthier@NOSPAM.yahoo.fr</td> <td>xouthier at yahoo dot fr</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>German</td> <td>German</td>
<td>Jens Seidel</td> <td>Jens Seidel</td>
<td>jensseidel@NOSPAM.users.sf.net</td> <td>jensseidel at users dot sf dot net</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Greek</td> <td>Greek</td>
<td>Harry Kalogirou</td> <td>Harry Kalogirou</td>
<td>harkal@NOSPAM.rainbow.cs.unipi.gr</td> <td>harkal at rainbow dot cs dot unipi dot gr</td>
<td>1.2.11</td> <td>1.2.11</td>
</tr> </tr>
<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@NOSPAM.diatronltd.com<br>akiss@NOSPAM.users.sourceforge.net</td> <td>foldvari at diatronltd dot com<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">
<td>Italian</td> <td>Italian</td>
<td>Alessandro Falappa<br>Ahmed Aldo Faisal</td> <td>Alessandro Falappa<br>Ahmed Aldo Faisal</td>
<td>alessandro@NOSPAM.falappa.net<br>aaf23@NOSPAM.cam.ac.uk</td> <td>alessandro at falappa dot net<br>aaf23 at cam dot ac dot uk</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Japanese</td> <td>Japanese</td>
<td>Ryunosuke Satoh<br>Kenji Nagamatsu</td> <td>Ryunosuke Satoh<br>Kenji Nagamatsu<br>Iwasa Kazmi</td>
<td>sun594@NOSPAM.hotmail.com<br>naga@NOSPAM.joyful.club.ne.jp</td> <td>sun594 at hotmail dot com<br>naga at joyful dot club dot ne dot jp<br>iwasa at cosmo-system dot jp</td>
<td>1.3.3</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>JapaneseEn</td> <td>JapaneseEn</td>
...@@ -161,7 +161,7 @@ when the translator was updated. ...@@ -161,7 +161,7 @@ when the translator was updated.
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Korean</td> <td>Korean</td>
<td>Richard Kim</td> <td>Richard Kim</td>
<td>ryk@NOSPAM.dspwiz.com</td> <td>ryk at dspwiz dot com</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
...@@ -173,73 +173,73 @@ when the translator was updated. ...@@ -173,73 +173,73 @@ when the translator was updated.
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Lithuanian</td> <td>Lithuanian</td>
<td>Tomas Simonaitis<br>Mindaugas Radzius<br>Aidas Berukstis</td> <td>Tomas Simonaitis<br>Mindaugas Radzius<br>Aidas Berukstis</td>
<td>haden@NOSPAM.homelan.lt<br>mindaugasradzius@NOSPAM.takas.lt<br>aidasber@NOSPAM.takas.lt</td> <td>haden at homelan dot lt<br>mindaugasradzius at takas dot lt<br>aidasber at takas dot lt</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Norwegian</td> <td>Norwegian</td>
<td>Lars Erik Jordet</td> <td>Lars Erik Jordet</td>
<td>lej@NOSPAM.circuitry.no</td> <td>lejordet at gmail dot com</td>
<td>1.2.2</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Polish</td> <td>Polish</td>
<td>Piotr Kaminski<br>Grzegorz Kowal</td> <td>Piotr Kaminski<br>Grzegorz Kowal</td>
<td>Piotr.Kaminski@NOSPAM.ctm.gdynia.pl<br>g_kowal@NOSPAM.poczta.onet.pl</td> <td>Piotr.Kaminski at ctm dot gdynia dot pl<br>g_kowal at poczta dot onet dot pl</td>
<td>1.3</td> <td>1.3</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Portuguese</td> <td>Portuguese</td>
<td>Rui Godinho Lopes</td> <td>Rui Godinho Lopes</td>
<td>ruiglopes@NOSPAM.yahoo.com</td> <td>ruiglopes at yahoo dot com</td>
<td>1.3.3</td> <td>1.3.3</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Romanian</td> <td>Romanian</td>
<td>Alexandru Iosup</td> <td>Alexandru Iosup</td>
<td>aiosup@NOSPAM.yahoo.com</td> <td>aiosup at yahoo dot com</td>
<td>1.2.16</td> <td>1.2.16</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Russian</td> <td>Russian</td>
<td>Alexandr Chelpanov</td> <td>Alexandr Chelpanov</td>
<td>cav@NOSPAM.cryptopro.ru</td> <td>cav at cryptopro dot ru</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Serbian</td> <td>Serbian</td>
<td>Dejan Milosavljevic</td> <td>Dejan Milosavljevic</td>
<td>dmilos@NOSPAM.email.com</td> <td>dmilos at email dot com</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Slovak</td> <td>Slovak</td>
<td>Stanislav Kudl&aacute;&#x010d;</td> <td>Stanislav Kudl&aacute;&#x010d;</td>
<td>skudlac@NOSPAM.pobox.sk</td> <td>skudlac at pobox dot sk</td>
<td>1.2.18</td> <td>1.2.18</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Slovene</td> <td>Slovene</td>
<td>Matjaz Ostroversnik</td> <td>Matjaz Ostroversnik</td>
<td>matjaz.ostroversnik@NOSPAM.zrs-tk.si</td> <td>matjaz.ostroversnik at zrs-tk dot si</td>
<td>1.2.16</td> <td>1.2.16</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Spanish</td> <td>Spanish</td>
<td>Francisco Oltra Thennet</td> <td>Francisco Oltra Thennet</td>
<td>foltra@NOSPAM.puc.cl</td> <td>foltra at puc dot cl</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Swedish</td> <td>Swedish</td>
<td>Mikael Hallin</td> <td>Mikael Hallin</td>
<td>mikaelhallin@NOSPAM.yahoo.se</td> <td>mikaelhallin at yahoo dot se</td>
<td>1.3.3</td> <td>1.3.3</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Ukrainian</td> <td>Ukrainian</td>
<td>Olexij Tkatchenko</td> <td>Olexij Tkatchenko</td>
<td>olexij.tkatchenko@NOSPAM.gmx.de</td> <td>olexij.tkatchenko at gmx dot de</td>
<td>1.2.11</td> <td>1.2.11</td>
</tr> </tr>
<!-- table content end --> <!-- table content end -->
...@@ -269,7 +269,7 @@ when the translator was updated. ...@@ -269,7 +269,7 @@ when the translator was updated.
Chinese Traditional & Daniel YC Lin & {\tt\tiny daniel@twpda.com} & 1.3.8 \\ Chinese Traditional & Daniel YC Lin & {\tt\tiny daniel@twpda.com} & 1.3.8 \\
~ & Gary Lee & {\tt\tiny garylee@ecosine.com.tw} & ~ \\ ~ & Gary Lee & {\tt\tiny garylee@ecosine.com.tw} & ~ \\
\hline \hline
Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.tel.hr} & up-to-date \\ Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.htnet.hr} & up-to-date \\
\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
...@@ -293,8 +293,9 @@ when the translator was updated. ...@@ -293,8 +293,9 @@ when the translator was updated.
Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\ Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\
~ & Ahmed Aldo Faisal & {\tt\tiny aaf23@cam.ac.uk} & ~ \\ ~ & Ahmed Aldo Faisal & {\tt\tiny aaf23@cam.ac.uk} & ~ \\
\hline \hline
Japanese & Ryunosuke Satoh & {\tt\tiny sun594@hotmail.com} & 1.3.3 \\ Japanese & Ryunosuke Satoh & {\tt\tiny sun594@hotmail.com} & up-to-date \\
~ & Kenji Nagamatsu & {\tt\tiny naga@joyful.club.ne.jp} & ~ \\ ~ & Kenji Nagamatsu & {\tt\tiny naga@joyful.club.ne.jp} & ~ \\
~ & Iwasa Kazmi & {\tt\tiny iwasa@cosmo-system.jp} & ~ \\
\hline \hline
JapaneseEn & see the Japanese language & {\tt\tiny ~} & English based \\ JapaneseEn & see the Japanese language & {\tt\tiny ~} & English based \\
\hline \hline
...@@ -306,7 +307,7 @@ when the translator was updated. ...@@ -306,7 +307,7 @@ when the translator was updated.
~ & Mindaugas Radzius & {\tt\tiny mindaugasradzius@takas.lt} & ~ \\ ~ & Mindaugas Radzius & {\tt\tiny mindaugasradzius@takas.lt} & ~ \\
~ & Aidas Berukstis & {\tt\tiny aidasber@takas.lt} & ~ \\ ~ & Aidas Berukstis & {\tt\tiny aidasber@takas.lt} & ~ \\
\hline \hline
Norwegian & Lars Erik Jordet & {\tt\tiny lej@circuitry.no} & 1.2.2 \\ Norwegian & Lars Erik Jordet & {\tt\tiny lejordet@gmail.com} & up-to-date \\
\hline \hline
Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} & 1.3 \\ Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} & 1.3 \\
~ & Grzegorz Kowal & {\tt\tiny g\_kowal@poczta.onet.pl} & ~ \\ ~ & Grzegorz Kowal & {\tt\tiny g\_kowal@poczta.onet.pl} & ~ \\
......
...@@ -27,7 +27,7 @@ Daniel YC Lin: daniel@twpda.com ...@@ -27,7 +27,7 @@ Daniel YC Lin: daniel@twpda.com
Gary Lee: garylee@ecosine.com.tw Gary Lee: garylee@ecosine.com.tw
TranslatorCroatian TranslatorCroatian
Boris Bralo: boris.bralo@zg.tel.hr Boris Bralo: boris.bralo@zg.htnet.hr
TranslatorCzech TranslatorCzech
Petr P&rcaron;ikryl: prikrylp@skil.cz Petr P&rcaron;ikryl: prikrylp@skil.cz
...@@ -64,6 +64,7 @@ Ahmed Aldo Faisal: aaf23@cam.ac.uk ...@@ -64,6 +64,7 @@ Ahmed Aldo Faisal: aaf23@cam.ac.uk
TranslatorJapanese TranslatorJapanese
Ryunosuke Satoh: sun594@hotmail.com Ryunosuke Satoh: sun594@hotmail.com
Kenji Nagamatsu: naga@joyful.club.ne.jp Kenji Nagamatsu: naga@joyful.club.ne.jp
Iwasa Kazmi: iwasa@cosmo-system.jp
TranslatorKorean TranslatorKorean
Richard Kim: ryk@dspwiz.com Richard Kim: ryk@dspwiz.com
...@@ -74,7 +75,7 @@ Mindaugas Radzius: mindaugasradzius@takas.lt ...@@ -74,7 +75,7 @@ Mindaugas Radzius: mindaugasradzius@takas.lt
Aidas Berukstis: aidasber@takas.lt Aidas Berukstis: aidasber@takas.lt
TranslatorNorwegian TranslatorNorwegian
Lars Erik Jordet: lej@circuitry.no Lars Erik Jordet: lejordet@gmail.com
TranslatorPolish TranslatorPolish
Piotr Kaminski: Piotr.Kaminski@ctm.gdynia.pl Piotr Kaminski: Piotr.Kaminski@ctm.gdynia.pl
......
...@@ -22,27 +22,26 @@ ...@@ -22,27 +22,26 @@
History: History:
-------- --------
2002/05/21 2002/05/21 - This was the last Perl version.
- This was the last Perl version. 2003/05/16 - List of language marks can be passed as arguments.
2003/05/16 2004/01/24 - Total reimplementation started: classes TrManager, and Transl.
- If the script is given list of languages, only the translator report 2004/02/05 - First version that produces translator report. No language.doc yet.
is generated and only for those languages. 2004/02/10 - First fully functional version that generates both the translator
2004/01/24 report and the documentation. It is a bit slower than the
- Total reimplementation just started: classes TrManager, and Transl. Perl version, but is much less tricky and much more flexible.
2004/02/05 It also solves some problems that were not solved by the Perl
- First version that produces translator report. The documentation version. The translator report content should be more useful
in the language.doc is not generated yet. for developers.
2004/02/10
- First fully functional version that generates both the translator
report and the documentation. It is a bit slower than the Perl version,
but is much less tricky and much more flexible. It also solves some
problems that were not solved by the Perl version. The translator report
content should be more useful for developers.
2004/02/11 - Some tuning-up to provide more useful information. 2004/02/11 - Some tuning-up to provide more useful information.
2004/04/16 - Added new tokens to the tokenizer (to remove some warnings). 2004/04/16 - Added new tokens to the tokenizer (to remove some warnings).
2004/05/25 - Added from __future__ import generators not to force Python 2.3. 2004/05/25 - Added from __future__ import generators not to force Python 2.3.
2004/06/03 - Removed dependency on textwrap module. 2004/06/03 - Removed dependency on textwrap module.
2004/07/07 - Fixed the bug in the fill() function. 2004/07/07 - Fixed the bug in the fill() function.
2004/07/21 - Better e-mail mangling for HTML part of language.doc.
- Plural not used for reporting a single missing method.
- Removal of not used translator adapters is suggested only
when the report is not restricted to selected languages
explicitly via script arguments
""" """
from __future__ import generators from __future__ import generators
...@@ -1115,8 +1114,12 @@ class Transl: ...@@ -1115,8 +1114,12 @@ class Transl:
fout.write('\n\n\n') fout.write('\n\n\n')
fout.write(self.classId + ' (' + self.baseClassId + ')') fout.write(self.classId + ' (' + self.baseClassId + ')')
if self.missingMethods: if self.missingMethods:
fout.write(' %d' % len(self.missingMethods)) num = len(self.missingMethods)
fout.write(' methods to implement') fout.write(' %d' % num)
fout.write(' method')
if num > 1:
fout.write('s')
fout.write(' to implement')
fout.write('\n' + '-' * len(self.classId)) fout.write('\n' + '-' * len(self.classId))
# Write the info about the implemented required methods. # Write the info about the implemented required methods.
...@@ -1420,7 +1423,10 @@ class TrManager: ...@@ -1420,7 +1423,10 @@ class TrManager:
obj = self.__translDic[x] obj = self.__translDic[x]
f.write(' %-30s' % obj.classId) f.write(' %-30s' % obj.classId)
f.write(' %-6s' % obj.readableStatus) f.write(' %-6s' % obj.readableStatus)
f.write('\t%2d methods to implement' % len(obj.missingMethods)) numimpl = len(obj.missingMethods)
pluralS = ''
if numimpl > 1: pluralS = 's'
f.write('\t%2d method%s to implement' % (numimpl, pluralS))
if obj.note: if obj.note:
f.write('\n\tNote: ' + obj.note + '\n') f.write('\n\tNote: ' + obj.note + '\n')
f.write('\n') f.write('\n')
...@@ -1430,7 +1436,10 @@ class TrManager: ...@@ -1430,7 +1436,10 @@ class TrManager:
adaptMinVersion = obj.status adaptMinVersion = obj.status
# Set the note if some old translator adapters are not needed # Set the note if some old translator adapters are not needed
# any more. # any more. Do it only when the script is called without arguments,
# i.e. all languages were checked against the needed translator
# adapters.
if not self.script_argLst:
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) f.write('\nNote: The %s class ' % adaptClassId)
...@@ -1583,7 +1592,7 @@ class TrManager: ...@@ -1583,7 +1592,7 @@ class TrManager:
<td ><b><font size=+1 color="#ffffff"> Language </font></b></td> <td ><b><font size=+1 color="#ffffff"> Language </font></b></td>
<td ><b><font size=+1 color="#ffffff"> Maintainer </font></b></td> <td ><b><font size=+1 color="#ffffff"> Maintainer </font></b></td>
<td ><b><font size=+1 color="#ffffff"> Contact address </font> <td ><b><font size=+1 color="#ffffff"> Contact address </font>
<font size=-2 color="#ffffff">(remove the NOSPAM.)</font></b></td> <font size=-2 color="#ffffff">(replace the at and dot)</font></b></td>
<td ><b><font size=+1 color="#ffffff"> Status </font></b></td> <td ><b><font size=+1 color="#ffffff"> Status </font></b></td>
</tr> </tr>
<!-- table content begin --> <!-- table content begin -->
...@@ -1628,11 +1637,21 @@ class TrManager: ...@@ -1628,11 +1637,21 @@ class TrManager:
ee = '<br>'.join(le) ee = '<br>'.join(le)
# Mangle the e-mail and replace the entity references. # Mangle the e-mail and replace the entity references.
if ee: if ee and ee != '&nbsp;':
ee = ee.replace('@', '@NOSPAM.') # More than one maintainer address separated by <br> can be used.
emails = ee.split('<br>')
mangled_list = []
for email in emails:
name, domain = email.split('@')
domain = domain.replace('.', ' dot ')
mangled_list.append(name + ' at ' + domain)
ee = '<br>'.join(mangled_list)
if mm: if mm:
mm = mm.replace('&ccaron;', '&#x010d;') mm = mm.replace('&ccaron;', '&#x010d;')
mm = mm.replace('&rcaron;', '&#x0159;') mm = mm.replace('&rcaron;', '&#x0159;')
mm = mm.replace('&scaron;', '&#x0161;')
mm = mm.replace('&zcaron;', '&#x017e;')
# Append the maintainer and e-mail elements. # Append the maintainer and e-mail elements.
lst.append(htmlTdTpl % mm) lst.append(htmlTdTpl % mm)
...@@ -1717,6 +1736,8 @@ class TrManager: ...@@ -1717,6 +1736,8 @@ class TrManager:
latexTable = latexTable.replace('&oslash;', '\\o{}') latexTable = latexTable.replace('&oslash;', '\\o{}')
latexTable = latexTable.replace('&ccaron;', '\\v{c}') latexTable = latexTable.replace('&ccaron;', '\\v{c}')
latexTable = latexTable.replace('&rcaron;', '\\v{r}') latexTable = latexTable.replace('&rcaron;', '\\v{r}')
latexTable = latexTable.replace('&scaron;', '\\v{s}')
latexTable = latexTable.replace('&zcaron;', '\\v{z}')
latexTable = latexTable.replace('_', '\\_') latexTable = latexTable.replace('_', '\\_')
# Put the HTML and LaTeX parts together and define the dic item. # Put the HTML and LaTeX parts together and define the dic item.
......
Summary: A documentation system for C/C++. Summary: A documentation system for C/C++.
Name: doxygen Name: doxygen
Version: 1.3.7_20040718 Version: 1.3.8
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
......
...@@ -161,6 +161,8 @@ class ClassDef : public Definition ...@@ -161,6 +161,8 @@ class ClassDef : public Definition
*/ */
ClassDef *templateMaster() const { return m_templateMaster; } ClassDef *templateMaster() const { return m_templateMaster; }
bool isTemplate() const { return m_tempArgs!=0; }
IncludeInfo *includeInfo() const { return m_incInfo; } IncludeInfo *includeInfo() const { return m_incInfo; }
UsesClassDict *usedImplementationClasses() const UsesClassDict *usedImplementationClasses() const
......
...@@ -120,7 +120,6 @@ SDict<DefinitionList> *Doxygen::symbolMap; ...@@ -120,7 +120,6 @@ SDict<DefinitionList> *Doxygen::symbolMap;
bool Doxygen::outputToWizard=FALSE; bool Doxygen::outputToWizard=FALSE;
QDict<int> * Doxygen::htmlDirMap = 0; QDict<int> * Doxygen::htmlDirMap = 0;
QCache<LookupInfo> Doxygen::lookupCache(20000,20000); QCache<LookupInfo> Doxygen::lookupCache(20000,20000);
bool Doxygen::lookupCacheEnabled=FALSE;
static StringList inputFiles; static StringList inputFiles;
static StringDict excludeNameDict(1009); // sections static StringDict excludeNameDict(1009); // sections
...@@ -6193,6 +6192,54 @@ static void findSectionsInDocumentation() ...@@ -6193,6 +6192,54 @@ static void findSectionsInDocumentation()
if (Doxygen::mainPage) Doxygen::mainPage->findSectionsInDocumentation(); if (Doxygen::mainPage) Doxygen::mainPage->findSectionsInDocumentation();
} }
static void flushCachedTemplateRelations()
{
// remove all references to template classes from the cache
// as there can be new template instances that should be linked
// to instead.
QCacheIterator<LookupInfo> ci(Doxygen::lookupCache);
LookupInfo *li=0;
for (ci.toFirst();(li=ci.current());++ci)
{
if (li->classDef && li->classDef->isTemplate())
{
Doxygen::lookupCache.remove(ci.currentKey());
}
}
// remove all cached typedef resolutions whose target is a
// template class as this may now be a template instance
MemberNameSDict::Iterator fnli(Doxygen::functionNameSDict);
MemberName *fn;
for (;(fn=fnli.current());++fnli) // for each global function name
{
MemberNameIterator fni(*fn);
MemberDef *fmd;
for (;(fmd=fni.current());++fni) // for each function with that name
{
if (fmd->isTypedefValCached())
{
ClassDef *cd = fmd->getCachedTypedefVal();
if (cd->isTemplate()) fmd->invalidateTypedefValCache();
}
}
}
MemberNameSDict::Iterator mnli(Doxygen::memberNameSDict);
for (;(fn=mnli.current());++mnli) // for each class method name
{
MemberNameIterator mni(*fn);
MemberDef *fmd;
for (;(fmd=mni.current());++mni) // for each function with that name
{
if (fmd->isTypedefValCached())
{
ClassDef *cd = fmd->getCachedTypedefVal();
if (cd->isTemplate()) fmd->invalidateTypedefValCache();
}
}
}
}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
static void findDefineDocumentation(Entry *root) static void findDefineDocumentation(Entry *root)
...@@ -7437,7 +7484,6 @@ void initDoxygen() ...@@ -7437,7 +7484,6 @@ void initDoxygen()
Doxygen::memGrpInfoDict.setAutoDelete(TRUE); Doxygen::memGrpInfoDict.setAutoDelete(TRUE);
Doxygen::tagDestinationDict.setAutoDelete(TRUE); Doxygen::tagDestinationDict.setAutoDelete(TRUE);
Doxygen::lookupCache.setAutoDelete(TRUE); Doxygen::lookupCache.setAutoDelete(TRUE);
Doxygen::lookupCacheEnabled=FALSE;
} }
void cleanUpDoxygen() void cleanUpDoxygen()
...@@ -8227,6 +8273,9 @@ void parseInput() ...@@ -8227,6 +8273,9 @@ void parseInput()
findInheritedTemplateInstances(); findInheritedTemplateInstances();
findUsedTemplateInstances(); findUsedTemplateInstances();
msg("Flushing cached template relations that have become invalid...\n");
flushCachedTemplateRelations();
msg("Creating members for template instances...\n"); msg("Creating members for template instances...\n");
createTemplateInstanceMembers(); createTemplateInstanceMembers();
...@@ -8235,10 +8284,6 @@ void parseInput() ...@@ -8235,10 +8284,6 @@ void parseInput()
computeClassRelations(); computeClassRelations();
classEntries.clear(); classEntries.clear();
// from now on the class relations are fixed and we can
// start to cache them to improve performance
Doxygen::lookupCacheEnabled=TRUE;
msg("Searching for enumerations...\n"); msg("Searching for enumerations...\n");
findEnums(root); findEnums(root);
findEnumDocumentation(root); findEnumDocumentation(root);
......
...@@ -112,7 +112,6 @@ class Doxygen ...@@ -112,7 +112,6 @@ class Doxygen
static bool outputToWizard; static bool outputToWizard;
static QDict<int> *htmlDirMap; static QDict<int> *htmlDirMap;
static QCache<LookupInfo> lookupCache; static QCache<LookupInfo> lookupCache;
static bool lookupCacheEnabled;
}; };
void initDoxygen(); void initDoxygen();
......
...@@ -273,6 +273,7 @@ class MemberDef : public Definition ...@@ -273,6 +273,7 @@ class MemberDef : public Definition
QCString getCachedTypedefTemplSpec() const { return m_cachedTypedefTemplSpec; } QCString getCachedTypedefTemplSpec() const { return m_cachedTypedefTemplSpec; }
void cacheTypedefVal(ClassDef *val,const QCString &templSpec) void cacheTypedefVal(ClassDef *val,const QCString &templSpec)
{ m_isTypedefValCached=TRUE; m_cachedTypedefValue=val; m_cachedTypedefTemplSpec=templSpec; } { m_isTypedefValCached=TRUE; m_cachedTypedefValue=val; m_cachedTypedefTemplSpec=templSpec; }
void invalidateTypedefValCache() { m_isTypedefValCached=FALSE; }
// declaration <-> definition relation // declaration <-> definition relation
void setMemberDefinition(MemberDef *md) { memDef=md; } void setMemberDefinition(MemberDef *md) { memDef=md; }
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
#ifndef TRANSLATOR_JP_H #ifndef TRANSLATOR_JP_H
#define TRANSLATOR_JP_H #define TRANSLATOR_JP_H
class TranslatorJapanese : public TranslatorAdapter_1_3_3 class TranslatorJapanese : public Translator
{ {
private: private:
/*! The decode() can change euc into sjis */ /*! The decode() can change euc into sjis */
...@@ -600,12 +600,12 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 ...@@ -600,12 +600,12 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3
case ClassDef::Class: result+=decode("クラス "); break; case ClassDef::Class: result+=decode("クラス "); break;
case ClassDef::Struct: result+=decode("構造体 "); break; case ClassDef::Struct: result+=decode("構造体 "); break;
case ClassDef::Union: result+=decode("共用体 "); break; case ClassDef::Union: result+=decode("共用体 "); break;
case ClassDef::Interface: result+=decode("インタフェース"); break; case ClassDef::Interface: result+=decode("インタフェース "); break;
case ClassDef::Protocol: result+=decode("Protocol"); break; // translate me! case ClassDef::Protocol: result+=decode("プロトコル "); break;
case ClassDef::Category: result+=decode("Category"); break; // translate me! case ClassDef::Category: result+=decode("カテゴリ "); break;
case ClassDef::Exception: result+=decode("例外"); break; //TODO:fixme case ClassDef::Exception: result+=decode("例外 "); break;
} }
if (isTemplate) result+=decode(" テンプレート"); if (isTemplate) result+=decode("テンプレート ");
result+=(QCString)clName; result+=(QCString)clName;
return result; return result;
} }
...@@ -759,9 +759,9 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 ...@@ -759,9 +759,9 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3
case ClassDef::Struct: result+=decode("構造体"); break; case ClassDef::Struct: result+=decode("構造体"); break;
case ClassDef::Union: result+=decode("共用体"); break; case ClassDef::Union: result+=decode("共用体"); break;
case ClassDef::Interface: result+=decode("インタフェース"); break; case ClassDef::Interface: result+=decode("インタフェース"); break;
case ClassDef::Protocol: result+=decode("Protocol"); break; // translate me! case ClassDef::Protocol: result+=decode("プロトコル"); break;
case ClassDef::Category: result+=decode("Category"); break; // translate me! case ClassDef::Category: result+=decode("カテゴリ"); break;
case ClassDef::Exception: result+=decode("例外"); break; //TODO:fixme case ClassDef::Exception: result+=decode("例外"); break;
} }
result+=decode("の説明は次のファイルから生成されました:"); result+=decode("の説明は次のファイルから生成されました:");
return result; return result;
...@@ -1341,7 +1341,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 ...@@ -1341,7 +1341,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3
*/ */
virtual QCString trImplementedFromList(int numEntries) virtual QCString trImplementedFromList(int numEntries)
{ {
return trWriteList(numEntries)+decode("に実装されています")+"."; return trWriteList(numEntries)+decode("を実装しています")+".";
} }
/*! used in member documentation blocks to produce a list of /*! used in member documentation blocks to produce a list of
...@@ -1349,7 +1349,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 ...@@ -1349,7 +1349,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3
*/ */
virtual QCString trImplementedInList(int numEntries) virtual QCString trImplementedInList(int numEntries)
{ {
return trWriteList(numEntries)+decode("を実装しています")+"."; return trWriteList(numEntries)+decode("で実装されています")+".";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 1.2.16 // new since 1.2.16
...@@ -1447,5 +1447,67 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 ...@@ -1447,5 +1447,67 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3
{ {
return decode("関数の呼び出しグラフ:"); return decode("関数の呼び出しグラフ:");
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.3.3
//////////////////////////////////////////////////////////////////////////
/*! When the search engine is enabled this text is put in the header
* of each page before the field where one can enter the text to search
* for.
*/
virtual QCString trSearchForIndex()
{
return decode("検索");
}
/*! This string is used as the title for the page listing the search
* results.
*/
virtual QCString trSearchResultsTitle()
{
return decode("検索結果");
}
/*! This string is put just before listing the search results. The
* text can be different depending on the number of documents found.
* Inside the text you can put the special marker $num to insert
* the number representing the actual number of search results.
* The @a numDocuments parameter can be either 0, 1 or 2, where the
* value 2 represents 2 or more matches. HTML markup is allowed inside
* the returned string.
*/
virtual QCString trSearchResults(int numDocuments)
{
if (numDocuments==0)
{
return decode("入力された条件にマッチするドキュメントがありませんでした.");
}
else if (numDocuments==1)
{
return decode("入力された条件にマッチするドキュメントが <b>1</b> 件みつかりました.");
}
else
{
return decode("入力された条件にマッチするドキュメントが <b>$num</b> 件みつかりました. "
"最も一致しているものから表示されます.");
}
}
/*! This string is put before the list of matched words, for each search
* result. What follows is the list of words that matched the query.
*/
virtual QCString trSearchMatches()
{
return decode("マッチした単語:");
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.8
//////////////////////////////////////////////////////////////////////////
/*! This is used in HTML as the title of page with source code for file filename
*/
virtual QCString trSourceFile(QCString& filename)
{
return filename + decode(" ソースファイル");
}
}; };
#endif #endif
This diff is collapsed.
...@@ -662,7 +662,7 @@ ClassDef *newResolveTypedef(FileDef *fileScope,MemberDef *md,QCString *pTemplSpe ...@@ -662,7 +662,7 @@ ClassDef *newResolveTypedef(FileDef *fileScope,MemberDef *md,QCString *pTemplSpe
} }
// remember computed value for next time // remember computed value for next time
if (Doxygen::lookupCacheEnabled && result && result->getDefFileName()!="<code>") if (result && result->getDefFileName()!="<code>")
// this check is needed to prevent that temporary classes that are // this check is needed to prevent that temporary classes that are
// introduced while parsing code fragments are being cached here. // introduced while parsing code fragments are being cached here.
{ {
...@@ -1045,7 +1045,7 @@ ClassDef *getResolvedClassRec(Definition *scope, ...@@ -1045,7 +1045,7 @@ ClassDef *getResolvedClassRec(Definition *scope,
QCString key=scope->name()+"+"+name+"+"+explicitScopePart; QCString key=scope->name()+"+"+name+"+"+explicitScopePart;
LookupInfo *pval=Doxygen::lookupCache.find(key); LookupInfo *pval=Doxygen::lookupCache.find(key);
//printf("Searching for %s result=%p\n",key.data(),pval); //printf("Searching for %s result=%p\n",key.data(),pval);
if (Doxygen::lookupCacheEnabled && pval) if (pval)
{ {
if (pTemplSpec) *pTemplSpec=pval->templSpec; if (pTemplSpec) *pTemplSpec=pval->templSpec;
if (pTypeDef) *pTypeDef=pval->typeDef; if (pTypeDef) *pTypeDef=pval->typeDef;
...@@ -1142,16 +1142,9 @@ ClassDef *getResolvedClassRec(Definition *scope, ...@@ -1142,16 +1142,9 @@ ClassDef *getResolvedClassRec(Definition *scope,
pval->templSpec = bestTemplSpec; pval->templSpec = bestTemplSpec;
} }
else else
{
if (Doxygen::lookupCacheEnabled)
{ {
Doxygen::lookupCache.insert(key,new LookupInfo(bestMatch,bestTypedef,bestTemplSpec)); Doxygen::lookupCache.insert(key,new LookupInfo(bestMatch,bestTypedef,bestTemplSpec));
} }
else // remove the 0 key from the cache
{
Doxygen::lookupCache.remove(key);
}
}
//printf("] bestMatch=%s distance=%d\n", //printf("] bestMatch=%s distance=%d\n",
// bestMatch?bestMatch->name().data():"<none>",minDistance); // bestMatch?bestMatch->name().data():"<none>",minDistance);
//if (pTemplSpec) printf("templSpec=%s\n",pTemplSpec->data()); //if (pTemplSpec) printf("templSpec=%s\n",pTemplSpec->data());
......
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