Commit 9dbdf881 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.4.7

parent 0674d909
DOXYGEN Version 1.4.6-20060507 DOXYGEN Version 1.4.7
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 (07 May 2006) Dimitri van Heesch (11 June 2006)
...@@ -14,6 +14,7 @@ irix-n32 ...@@ -14,6 +14,7 @@ irix-n32
linux-g++ linux-g++
linux-64 linux-64
macosx-c++ macosx-c++
macosx-uni-c++
m68k-atari-mint-g++ m68k-atari-mint-g++
netbsd-g++ netbsd-g++
openbsd-g++ openbsd-g++
......
DOXYGEN Version 1.4.6_20060507 DOXYGEN Version 1.4.7
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) (07 May 2006) Dimitri van Heesch (dimitri@stack.nl) (11 June 2006)
...@@ -1191,6 +1191,16 @@ void MainWidget::saveConfigFile() ...@@ -1191,6 +1191,16 @@ void MainWidget::saveConfigFile()
if (!fn.isEmpty()) if (!fn.isEmpty())
{ {
QFile f(fn); QFile f(fn);
if (f.exists() && QMessageBox::question(this,
"Overwrite file? -- Doxywizard",
"A file called "+fn+" already exists. Do you want to overwrite it?",
"&Yes","&no",
QString::null, 0, 1)
)
{
statusBar()->message("Save request aborted",messageTimeout);
return;
}
if (f.open(IO_WriteOnly)) if (f.open(IO_WriteOnly))
{ {
QTextStream t(&f); QTextStream t(&f);
......
...@@ -17,10 +17,10 @@ ...@@ -17,10 +17,10 @@
doxygen_version_major=1 doxygen_version_major=1
doxygen_version_minor=4 doxygen_version_minor=4
doxygen_version_revision=6 doxygen_version_revision=7
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package. #NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn=20060507 doxygen_version_mmn=NO
bin_dirs=`echo $PATH | sed -e "s/:/ /g"` bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
...@@ -155,6 +155,9 @@ if test -z "$f_platform"; then ...@@ -155,6 +155,9 @@ if test -z "$f_platform"; then
if test "$f_insttool" = NO; then if test "$f_insttool" = NO; then
f_insttool=/usr/bin/install f_insttool=/usr/bin/install
fi fi
if test -n "`ls /Developer/SDKs/MacOSX10.*u.sdk`"; then
f_platform=macosx-uni-c++
fi
;; ;;
FreeBSD:*) FreeBSD:*)
f_platform=freebsd-g++ f_platform=freebsd-g++
......
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
Doxygen can use the "dot" tool from graphviz 1.5 to generate Doxygen can use the "dot" tool from graphviz 1.5 to generate
more advanced diagrams and graphs. Graphviz is an "open-sourced", more advanced diagrams and graphs. Graphviz is an "open-sourced",
cross-platform graph drawing toolkit from AT\&T and Lucent Bell Labs and cross-platform graph drawing toolkit and can be found
can be found at http://www.research.att.com/sw/tools/graphviz/ at http://www.graphviz.org/
If you have the "dot" tool available in the path, you can set If you have the "dot" tool available in the path, you can set
\ref cfg_have_dot "HAVE_DOT" to \c YES in the configuration file to \ref cfg_have_dot "HAVE_DOT" to \c YES in the configuration file to
......
...@@ -62,9 +62,9 @@ tools should be installed. ...@@ -62,9 +62,9 @@ tools should be installed.
<a href="http://www.tug.org/interest.html#free">teTeX 1.0</a> <a href="http://www.tug.org/interest.html#free">teTeX 1.0</a>
\latexonly \\par (see {\tt http://www.tug.org/interest.html\#free})\endlatexonly. \latexonly \\par (see {\tt http://www.tug.org/interest.html\#free})\endlatexonly.
This is needed for generating LaTeX, Postscript, and PDF output. This is needed for generating LaTeX, Postscript, and PDF output.
<li><a href="http://www.research.att.com/sw/tools/graphviz/"> <li><a href="http://www.graphviz.org/">
the Graph visualization toolkit version 1.8.10 or higher</a> the Graph visualization toolkit version 1.8.10 or higher</a>
\latexonly \\par (see {\tt http://www.research.att.com/sw/tools/graphviz/})\endlatexonly. \latexonly \\par (see {\tt http://www.graphviz.org/})\endlatexonly.
Needed for the include dependency graphs, Needed for the include dependency graphs,
the graphical inheritance graphs, and the collaboration graphs. the graphical inheritance graphs, and the collaboration graphs.
If you compile graphviz yourself, make sure you do include If you compile graphviz yourself, make sure you do include
...@@ -559,9 +559,9 @@ features: ...@@ -559,9 +559,9 @@ features:
You can download it from You can download it from
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/vsconHH1Start.asp">Microsoft</a>. <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/vsconHH1Start.asp">Microsoft</a>.
<li><a href="http://www.research.att.com/sw/tools/graphviz/"> <li><a href="http://www.graphviz.org/">
the Graph visualization toolkit version 1.8.10</a><br> the Graph visualization toolkit version 1.8.10</a><br>
\latexonly(see {\tt http://www.research.att.com/sw/tools/graphviz/})\endlatexonly. \latexonly(see {\tt http://www.graphviz.org/})\endlatexonly.
Needed for the include dependency graphs, the graphical inheritance graphs, Needed for the include dependency graphs, the graphical inheritance graphs,
and the collaboration graphs. and the collaboration graphs.
</ul> </ul>
......
...@@ -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.4.6), 31 languages Currently (version 1.4.7), 31 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,
...@@ -54,19 +54,19 @@ when the translator was updated. ...@@ -54,19 +54,19 @@ when the translator was updated.
<td>Afrikaans</td> <td>Afrikaans</td>
<td>Johan Prinsloo</td> <td>Johan Prinsloo</td>
<td>johan at zippysnoek dot com</td> <td>johan at zippysnoek dot com</td>
<td>up-to-date</td> <td>1.4.6</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>jun-chino at uol dot com dot br</td> <td>jun-chino at uol dot com dot br</td>
<td>up-to-date</td> <td>1.4.6</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Catalan</td> <td>Catalan</td>
<td>Maximiliano Pin<br>Albert Mora</td> <td>Maximiliano Pin<br>Albert Mora</td>
<td>mcpin at emtesistemas dot com<br>amora at iua dot upf dot es</td> <td>mcpin at emtesistemas dot com<br>amora at iua dot upf dot es</td>
<td>up-to-date</td> <td>1.4.6</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Chinese</td> <td>Chinese</td>
...@@ -78,19 +78,19 @@ when the translator was updated. ...@@ -78,19 +78,19 @@ when the translator was updated.
<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 at twpda dot com<br>garylee at ecosine dot com dot tw</td> <td>daniel at twpda dot com<br>garylee at ecosine dot com dot tw</td>
<td>up-to-date</td> <td>1.4.6</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 at zg dot htnet dot hr</td> <td>boris.bralo at zg dot htnet dot hr</td>
<td>up-to-date</td> <td>1.4.6</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 at skil dot cz</td> <td>prikrylp at skil dot cz</td>
<td>up-to-date</td> <td>1.4.6</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Danish</td> <td>Danish</td>
...@@ -120,13 +120,13 @@ when the translator was updated. ...@@ -120,13 +120,13 @@ when the translator was updated.
<td>French</td> <td>French</td>
<td>Xavier Outhier</td> <td>Xavier Outhier</td>
<td>xouthier at yahoo dot fr</td> <td>xouthier at yahoo dot fr</td>
<td>up-to-date</td> <td>1.4.6</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 at users dot sf dot net</td> <td>jensseidel at users dot sf dot net</td>
<td>up-to-date</td> <td>1.4.6</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Greek</td> <td>Greek</td>
...@@ -138,25 +138,25 @@ when the translator was updated. ...@@ -138,25 +138,25 @@ when the translator was updated.
<td>Hungarian</td> <td>Hungarian</td>
<td>&Aacute;kos Kiss<br>F&ouml;ldv&aacute;ri Gy&ouml;rgy</td> <td>&Aacute;kos Kiss<br>F&ouml;ldv&aacute;ri Gy&ouml;rgy</td>
<td>akiss at users dot sourceforge dot net<br>foldvari lost at cyberspace</td> <td>akiss at users dot sourceforge dot net<br>foldvari lost at cyberspace</td>
<td>up-to-date</td> <td>1.4.6</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Indonesian</td> <td>Indonesian</td>
<td>Hendy Irawan</td> <td>Hendy Irawan</td>
<td>ceefour at gauldong dot net</td> <td>ceefour at gauldong dot net</td>
<td>up-to-date</td> <td>1.4.6</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 at falappa dot net<br>aaf23 at cam dot ac dot uk</td> <td>alessandro at falappa dot net<br>aaf23 at cam dot ac dot uk</td>
<td>up-to-date</td> <td>1.4.6</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Japanese</td> <td>Japanese</td>
<td>Ryunosuke Satoh<br>Kenji Nagamatsu<br>Iwasa Kazmi</td> <td>Ryunosuke Satoh<br>Kenji Nagamatsu<br>Iwasa Kazmi</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>sun594 at hotmail dot com<br>naga at joyful dot club dot ne dot jp<br>iwasa at cosmo-system dot jp</td>
<td>up-to-date</td> <td>1.4.6</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>JapaneseEn</td> <td>JapaneseEn</td>
...@@ -168,7 +168,7 @@ when the translator was updated. ...@@ -168,7 +168,7 @@ when the translator was updated.
<td>Korean</td> <td>Korean</td>
<td>SooYoung Jung<br>Richard Kim</td> <td>SooYoung Jung<br>Richard Kim</td>
<td>jung5000 at gmail dot com<br>ryk at dspwiz dot com</td> <td>jung5000 at gmail dot com<br>ryk at dspwiz dot com</td>
<td>up-to-date</td> <td>1.4.6</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>KoreanEn</td> <td>KoreanEn</td>
...@@ -180,19 +180,19 @@ when the translator was updated. ...@@ -180,19 +180,19 @@ when the translator was updated.
<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 at homelan dot lt<br>mindaugasradzius at takas dot lt<br>aidasber at takas dot lt</td> <td>haden at homelan dot lt<br>mindaugasradzius at takas dot lt<br>aidasber at takas dot lt</td>
<td>up-to-date</td> <td>1.4.6</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>lejordet at gmail dot com</td> <td>lejordet at gmail dot com</td>
<td>1.3.9</td> <td>1.4.6</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 at ctm dot gdynia dot pl<br>g_kowal at poczta dot onet dot pl</td> <td>Piotr.Kaminski at ctm dot gdynia dot pl<br>g_kowal at poczta dot onet dot pl</td>
<td>up-to-date</td> <td>1.4.6</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Portuguese</td> <td>Portuguese</td>
...@@ -210,7 +210,7 @@ when the translator was updated. ...@@ -210,7 +210,7 @@ when the translator was updated.
<td>Russian</td> <td>Russian</td>
<td>Alexandr Chelpanov</td> <td>Alexandr Chelpanov</td>
<td>cav at cryptopro dot ru</td> <td>cav at cryptopro dot ru</td>
<td>up-to-date</td> <td>1.4.6</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Serbian</td> <td>Serbian</td>
...@@ -228,19 +228,19 @@ when the translator was updated. ...@@ -228,19 +228,19 @@ when the translator was updated.
<td>Slovene</td> <td>Slovene</td>
<td>Matja&#x017e; Ostrover&#x0161;nik</td> <td>Matja&#x017e; Ostrover&#x0161;nik</td>
<td>matjaz.ostroversnik at ztm dot si</td> <td>matjaz.ostroversnik at ztm dot si</td>
<td>up-to-date</td> <td>1.4.6</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 at puc dot cl</td> <td>foltra at puc dot cl</td>
<td>1.3.8</td> <td>1.4.6</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 at yahoo dot se</td> <td>mikaelhallin at yahoo dot se</td>
<td>up-to-date</td> <td>1.4.6</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Ukrainian</td> <td>Ukrainian</td>
...@@ -263,22 +263,22 @@ when the translator was updated. ...@@ -263,22 +263,22 @@ when the translator was updated.
\hline \hline
\hline \hline
Afrikaans & Johan Prinsloo & {\tt\tiny johan@zippysnoek.com} & up-to-date \\ Afrikaans & Johan Prinsloo & {\tt\tiny johan@zippysnoek.com} & 1.4.6 \\
\hline \hline
Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt\tiny jun-chino@uol.com.br} & up-to-date \\ Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt\tiny jun-chino@uol.com.br} & 1.4.6 \\
\hline \hline
Catalan & Maximiliano Pin & {\tt\tiny mcpin@emtesistemas.com} & up-to-date \\ Catalan & Maximiliano Pin & {\tt\tiny mcpin@emtesistemas.com} & 1.4.6 \\
~ & Albert Mora & {\tt\tiny amora@iua.upf.es} & ~ \\ ~ & Albert Mora & {\tt\tiny amora@iua.upf.es} & ~ \\
\hline \hline
Chinese & Li Daobing & {\tt\tiny lidaobing@gmail.com} & 1.4.1 \\ Chinese & Li Daobing & {\tt\tiny lidaobing@gmail.com} & 1.4.1 \\
~ & Wei Liu & {\tt\tiny liuwei@asiainfo.com} & ~ \\ ~ & Wei Liu & {\tt\tiny liuwei@asiainfo.com} & ~ \\
\hline \hline
Chinese Traditional & Daniel YC Lin & {\tt\tiny daniel@twpda.com} & up-to-date \\ Chinese Traditional & Daniel YC Lin & {\tt\tiny daniel@twpda.com} & 1.4.6 \\
~ & 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.htnet.hr} & up-to-date \\ Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.htnet.hr} & 1.4.6 \\
\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} & 1.4.6 \\
\hline \hline
Danish & Erik S\o{}e S\o{}rensen & {\tt\tiny eriksoe+doxygen@daimi.au.dk} & 1.3.9 \\ Danish & Erik S\o{}e S\o{}rensen & {\tt\tiny eriksoe+doxygen@daimi.au.dk} & 1.3.9 \\
\hline \hline
...@@ -288,55 +288,55 @@ when the translator was updated. ...@@ -288,55 +288,55 @@ when the translator was updated.
\hline \hline
Finnish & Olli Korhonen & {\tt\tiny olli.korhonen lost@cyberspace} & obsolete \\ Finnish & Olli Korhonen & {\tt\tiny olli.korhonen lost@cyberspace} & obsolete \\
\hline \hline
French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & up-to-date \\ French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.4.6 \\
\hline \hline
German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} & up-to-date \\ German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} & 1.4.6 \\
\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 & \'{A}kos Kiss & {\tt\tiny akiss@users.sourceforge.net} & up-to-date \\ Hungarian & \'{A}kos Kiss & {\tt\tiny akiss@users.sourceforge.net} & 1.4.6 \\
~ & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt\tiny foldvari lost@cyberspace} & ~ \\ ~ & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt\tiny foldvari lost@cyberspace} & ~ \\
\hline \hline
Indonesian & Hendy Irawan & {\tt\tiny ceefour@gauldong.net} & up-to-date \\ Indonesian & Hendy Irawan & {\tt\tiny ceefour@gauldong.net} & 1.4.6 \\
\hline \hline
Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\ Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & 1.4.6 \\
~ & 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} & up-to-date \\ Japanese & Ryunosuke Satoh & {\tt\tiny sun594@hotmail.com} & 1.4.6 \\
~ & 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} & ~ \\ ~ & 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
Korean & SooYoung Jung & {\tt\tiny jung5000@gmail.com} & up-to-date \\ Korean & SooYoung Jung & {\tt\tiny jung5000@gmail.com} & 1.4.6 \\
~ & Richard Kim & {\tt\tiny ryk@dspwiz.com} & ~ \\ ~ & Richard Kim & {\tt\tiny ryk@dspwiz.com} & ~ \\
\hline \hline
KoreanEn & see the Korean language & {\tt\tiny ~} & English based \\ KoreanEn & see the Korean language & {\tt\tiny ~} & English based \\
\hline \hline
Lithuanian & Tomas Simonaitis & {\tt\tiny haden@homelan.lt} & up-to-date \\ Lithuanian & Tomas Simonaitis & {\tt\tiny haden@homelan.lt} & 1.4.6 \\
~ & 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 lejordet@gmail.com} & 1.3.9 \\ Norwegian & Lars Erik Jordet & {\tt\tiny lejordet@gmail.com} & 1.4.6 \\
\hline \hline
Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} & up-to-date \\ Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} & 1.4.6 \\
~ & Grzegorz Kowal & {\tt\tiny g\_kowal@poczta.onet.pl} & ~ \\ ~ & Grzegorz Kowal & {\tt\tiny g\_kowal@poczta.onet.pl} & ~ \\
\hline \hline
Portuguese & Rui Godinho Lopes & {\tt\tiny ruiglopes@yahoo.com} & 1.3.3 \\ Portuguese & Rui Godinho Lopes & {\tt\tiny ruiglopes@yahoo.com} & 1.3.3 \\
\hline \hline
Romanian & Alexandru Iosup & {\tt\tiny aiosup@yahoo.com} & 1.4.1 \\ Romanian & Alexandru Iosup & {\tt\tiny aiosup@yahoo.com} & 1.4.1 \\
\hline \hline
Russian & Alexandr Chelpanov & {\tt\tiny cav@cryptopro.ru} & up-to-date \\ Russian & Alexandr Chelpanov & {\tt\tiny cav@cryptopro.ru} & 1.4.6 \\
\hline \hline
Serbian & Dejan Milosavljevic & {\tt\tiny dmilos@email.com} & 1.4.1 \\ Serbian & Dejan Milosavljevic & {\tt\tiny dmilos@email.com} & 1.4.1 \\
\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 & Matja\v{z} Ostrover\v{s}nik & {\tt\tiny matjaz.ostroversnik@ztm.si} & up-to-date \\ Slovene & Matja\v{z} Ostrover\v{s}nik & {\tt\tiny matjaz.ostroversnik@ztm.si} & 1.4.6 \\
\hline \hline
Spanish & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & 1.3.8 \\ Spanish & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & 1.4.6 \\
\hline \hline
Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & up-to-date \\ Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.4.6 \\
\hline \hline
Ukrainian & Olexij Tkatchenko & {\tt\tiny olexij.tkatchenko@parcs.de} & 1.4.1 \\ Ukrainian & Olexij Tkatchenko & {\tt\tiny olexij.tkatchenko@parcs.de} & 1.4.1 \\
\hline \hline
......
(1.4.6) (1.4.7)
Doxygen supports the following 31 languages (sorted alphabetically): Doxygen supports the following 31 languages (sorted alphabetically):
...@@ -8,35 +8,17 @@ German, Greek, Hungarian, Indonesian, Italian, Japanese (+En), Korean ...@@ -8,35 +8,17 @@ German, Greek, Hungarian, Indonesian, Italian, Japanese (+En), Korean
(+En), Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, (+En), Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
Of them, 20 translators are up-to-date, 11 translators are based on Of them, 2 translators are up-to-date, 29 translators are based on
some adapter class, and 2 are English based. some adapter class, and 2 are English based.
---------------------------------------------------------------------- ----------------------------------------------------------------------
The following translator classes are up-to-date (sorted The following translator classes are up-to-date (sorted
alphabetically). This means that they derive from the Translator class alphabetically). This means that they derive from the Translator class
and they implement all 192 of the required methods. Anyway, there and they implement all 194 of the required methods. Anyway, there
still may be some details listed even for them: still may be some details listed even for them:
TranslatorAfrikaans
TranslatorBrazilian -- Remove the obsolete methods (never used).
TranslatorCatalan
TranslatorChinesetraditional -- Remove the obsolete methods (never used).
TranslatorCroatian
TranslatorCzech
TranslatorDutch -- Remove the obsolete methods (never used). TranslatorDutch -- Remove the obsolete methods (never used).
TranslatorEnglish -- Remove the obsolete methods (never used). TranslatorEnglish -- Remove the obsolete methods (never used).
TranslatorFrench -- Remove the obsolete methods (never used).
TranslatorGerman
TranslatorHungarian
TranslatorIndonesian -- Remove the obsolete methods (never used).
TranslatorItalian
TranslatorJapanese -- Remove the obsolete methods (never used).
TranslatorKorean
TranslatorLithuanian
TranslatorPolish -- Remove the obsolete methods (never used).
TranslatorRussian
TranslatorSlovene
TranslatorSwedish
---------------------------------------------------------------------- ----------------------------------------------------------------------
The following translator classes need some maintenance (the most The following translator classes need some maintenance (the most
...@@ -44,17 +26,35 @@ obsolete at the end). The other info shows the estimation of Doxygen ...@@ -44,17 +26,35 @@ obsolete at the end). The other info shows the estimation of Doxygen
version when the class was last updated and number of methods that version when the class was last updated and number of methods that
must be implemented to become up-to-date: must be implemented to become up-to-date:
TranslatorUkrainian 1.4.1 1 method to implement TranslatorSwedish 1.4.6 2 methods to implement
TranslatorSerbian 1.4.1 1 method to implement TranslatorSpanish 1.4.6 1 method to implement
TranslatorRomanian 1.4.1 1 method to implement TranslatorSlovene 1.4.6 2 methods to implement
TranslatorChinese 1.4.1 1 method to implement TranslatorRussian 1.4.6 2 methods to implement
TranslatorNorwegian 1.3.9 7 methods to implement TranslatorPolish 1.4.6 1 method to implement
TranslatorDanish 1.3.9 7 methods to implement TranslatorNorwegian 1.4.6 1 method to implement
TranslatorSpanish 1.3.8 8 methods to implement TranslatorLithuanian 1.4.6 2 methods to implement
TranslatorPortuguese 1.3.3 12 methods to implement TranslatorKorean 1.4.6 2 methods to implement
TranslatorSlovak 1.2.18 21 methods to implement TranslatorJapanese 1.4.6 1 method to implement
TranslatorGreek 1.2.11 26 methods to implement TranslatorItalian 1.4.6 1 method to implement
TranslatorFinnish obsolete 95 methods to implement TranslatorIndonesian 1.4.6 1 method to implement
TranslatorHungarian 1.4.6 2 methods to implement
TranslatorGerman 1.4.6 2 methods to implement
TranslatorFrench 1.4.6 1 method to implement
TranslatorCzech 1.4.6 1 method to implement
TranslatorCroatian 1.4.6 2 methods to implement
TranslatorChinesetraditional 1.4.6 1 method to implement
TranslatorCatalan 1.4.6 2 methods to implement
TranslatorBrazilian 1.4.6 1 method to implement
TranslatorAfrikaans 1.4.6 2 methods to implement
TranslatorUkrainian 1.4.1 2 methods to implement
TranslatorSerbian 1.4.1 2 methods to implement
TranslatorRomanian 1.4.1 2 methods to implement
TranslatorChinese 1.4.1 3 methods to implement
TranslatorDanish 1.3.9 8 methods to implement
TranslatorPortuguese 1.3.3 13 methods to implement
TranslatorSlovak 1.2.18 22 methods to implement
TranslatorGreek 1.2.11 27 methods to implement
TranslatorFinnish obsolete 96 methods to implement
---------------------------------------------------------------------- ----------------------------------------------------------------------
The following translator classes derive directly from the The following translator classes derive directly from the
...@@ -70,11 +70,26 @@ Details for translators (classes sorted alphabetically): ...@@ -70,11 +70,26 @@ Details for translators (classes sorted alphabetically):
TranslatorBrazilian (Translator) TranslatorAfrikaans (TranslatorAdapter_1_4_6) 2 methods to implement
------------------- -------------------
Implements 192 of the required methods. Implements 192 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
virtual QCString trEnumerationValueDocumentation()
TranslatorBrazilian (TranslatorAdapter_1_4_6) 1 method to implement
-------------------
Implements 193 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
Obsolete methods (should be removed, never used): Obsolete methods (should be removed, never used):
virtual QCString trHeaderFilesDescription() virtual QCString trHeaderFilesDescription()
...@@ -85,11 +100,21 @@ TranslatorBrazilian (Translator) ...@@ -85,11 +100,21 @@ TranslatorBrazilian (Translator)
virtual QCString trInterfaces() virtual QCString trInterfaces()
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorChinese (TranslatorAdapter_1_4_1) 1 method to implement TranslatorCatalan (TranslatorAdapter_1_4_6) 2 methods to implement
-----------------
Implements 192 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
virtual QCString trEnumerationValueDocumentation()
TranslatorChinese (TranslatorAdapter_1_4_1) 3 methods to implement
----------------- -----------------
Implements 191 of the required methods. Implements 191 of the required methods.
...@@ -97,12 +122,18 @@ TranslatorChinese (TranslatorAdapter_1_4_1) 1 method to implement ...@@ -97,12 +122,18 @@ TranslatorChinese (TranslatorAdapter_1_4_1) 1 method to implement
Missing methods (should be implemented): Missing methods (should be implemented):
virtual QCString trOverloadText() virtual QCString trOverloadText()
virtual QCString trCallerGraph()
virtual QCString trEnumerationValueDocumentation()
TranslatorChinesetraditional (Translator) TranslatorChinesetraditional (TranslatorAdapter_1_4_6) 1 method to implement
---------------------------- ----------------------------
Implements 192 of the required methods. Implements 193 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
Obsolete methods (should be removed, never used): Obsolete methods (should be removed, never used):
...@@ -114,14 +145,34 @@ TranslatorChinesetraditional (Translator) ...@@ -114,14 +145,34 @@ TranslatorChinesetraditional (Translator)
virtual QCString trInterfaces() virtual QCString trInterfaces()
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorDanish (TranslatorAdapter_1_3_9) 7 methods to implement TranslatorCroatian (TranslatorAdapter_1_4_6) 2 methods to implement
------------------
Implements 192 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
virtual QCString trEnumerationValueDocumentation()
TranslatorCzech (TranslatorAdapter_1_4_6) 1 method to implement
---------------
Implements 193 of the required methods.
Missing methods (should be implemented):
virtual QCString trEnumerationValueDocumentation()
TranslatorDanish (TranslatorAdapter_1_3_9) 8 methods to implement
---------------- ----------------
Implements 185 of the required methods. Implements 186 of the required methods.
Missing methods (should be implemented): Missing methods (should be implemented):
...@@ -130,6 +181,7 @@ TranslatorDanish (TranslatorAdapter_1_3_9) 7 methods to implement ...@@ -130,6 +181,7 @@ TranslatorDanish (TranslatorAdapter_1_3_9) 7 methods to implement
virtual QCString trDirDocumentation() virtual QCString trDirDocumentation()
virtual QCString trDirectories() virtual QCString trDirectories()
virtual QCString trDirDescription() virtual QCString trDirDescription()
virtual QCString trCallerGraph()
virtual QCString trDirReference(const char * dirName) virtual QCString trDirReference(const char * dirName)
virtual QCString trDir(bool first_capital, bool singular) virtual QCString trDir(bool first_capital, bool singular)
...@@ -143,14 +195,13 @@ TranslatorDanish (TranslatorAdapter_1_3_9) 7 methods to implement ...@@ -143,14 +195,13 @@ TranslatorDanish (TranslatorAdapter_1_3_9) 7 methods to implement
virtual QCString trInterfaces() virtual QCString trInterfaces()
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorDutch (Translator) TranslatorDutch (Translator)
--------------- ---------------
Implements 192 of the required methods. Implements 194 of the required methods.
Obsolete methods (should be removed, never used): Obsolete methods (should be removed, never used):
...@@ -162,14 +213,13 @@ TranslatorDutch (Translator) ...@@ -162,14 +213,13 @@ TranslatorDutch (Translator)
QCString trInterfaces() QCString trInterfaces()
QCString trHeaderFiles() QCString trHeaderFiles()
QCString trBugsAndLimitations() QCString trBugsAndLimitations()
QCString trEnumerationValueDocumentation()
QCString trNoDescriptionAvailable() QCString trNoDescriptionAvailable()
TranslatorEnglish (Translator) TranslatorEnglish (Translator)
----------------- -----------------
Implements 192 of the required methods. Implements 194 of the required methods.
Obsolete methods (should be removed, never used): Obsolete methods (should be removed, never used):
...@@ -181,14 +231,13 @@ TranslatorEnglish (Translator) ...@@ -181,14 +231,13 @@ TranslatorEnglish (Translator)
virtual QCString trInterfaces() virtual QCString trInterfaces()
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorFinnish (TranslatorEnglish) 95 methods to implement TranslatorFinnish (TranslatorEnglish) 96 methods to implement
----------------- -----------------
Implements 97 of the required methods. Implements 98 of the required methods.
Missing methods (should be implemented): Missing methods (should be implemented):
...@@ -265,6 +314,7 @@ TranslatorFinnish (TranslatorEnglish) 95 methods to implement ...@@ -265,6 +314,7 @@ TranslatorFinnish (TranslatorEnglish) 95 methods to implement
virtual QCString latexLanguageSupportCommand() virtual QCString latexLanguageSupportCommand()
virtual QCString trBugList() virtual QCString trBugList()
virtual QCString trRTFGeneralIndex() virtual QCString trRTFGeneralIndex()
virtual QCString trCallerGraph()
virtual QCString trNamespace(bool first_capital, bool singular) virtual QCString trNamespace(bool first_capital, bool singular)
virtual QCString trTestList() virtual QCString trTestList()
virtual QCString trPrecondition() virtual QCString trPrecondition()
...@@ -297,14 +347,17 @@ TranslatorFinnish (TranslatorEnglish) 95 methods to implement ...@@ -297,14 +347,17 @@ TranslatorFinnish (TranslatorEnglish) 95 methods to implement
QCString trHeaderFiles() QCString trHeaderFiles()
QCString trAuthors() QCString trAuthors()
QCString trBugsAndLimitations() QCString trBugsAndLimitations()
QCString trEnumerationValueDocumentation()
QCString trNoDescriptionAvailable() QCString trNoDescriptionAvailable()
TranslatorFrench (Translator) TranslatorFrench (TranslatorAdapter_1_4_6) 1 method to implement
---------------- ----------------
Implements 192 of the required methods. Implements 193 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
Obsolete methods (should be removed, never used): Obsolete methods (should be removed, never used):
...@@ -316,14 +369,24 @@ TranslatorFrench (Translator) ...@@ -316,14 +369,24 @@ TranslatorFrench (Translator)
virtual QCString trInterfaces() virtual QCString trInterfaces()
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorGreek (TranslatorAdapter_1_2_11) 26 methods to implement TranslatorGerman (TranslatorAdapter_1_4_6) 2 methods to implement
----------------
Implements 192 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
virtual QCString trEnumerationValueDocumentation()
TranslatorGreek (TranslatorAdapter_1_2_11) 27 methods to implement
--------------- ---------------
Implements 166 of the required methods. Implements 167 of the required methods.
Missing methods (should be implemented): Missing methods (should be implemented):
...@@ -346,6 +409,7 @@ TranslatorGreek (TranslatorAdapter_1_2_11) 26 methods to implement ...@@ -346,6 +409,7 @@ TranslatorGreek (TranslatorAdapter_1_2_11) 26 methods to implement
virtual QCString trPackageAttribs() virtual QCString trPackageAttribs()
virtual QCString trSearchMatches() virtual QCString trSearchMatches()
virtual QCString trEvents() virtual QCString trEvents()
virtual QCString trCallerGraph()
virtual QCString trReferences() virtual QCString trReferences()
virtual QCString trSourceFile(QCString & filename) virtual QCString trSourceFile(QCString & filename)
virtual QCString trDirReference(const char * dirName) virtual QCString trDirReference(const char * dirName)
...@@ -364,15 +428,29 @@ TranslatorGreek (TranslatorAdapter_1_2_11) 26 methods to implement ...@@ -364,15 +428,29 @@ TranslatorGreek (TranslatorAdapter_1_2_11) 26 methods to implement
virtual QCString trInterfaces() virtual QCString trInterfaces()
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorIndonesian (Translator) TranslatorHungarian (TranslatorAdapter_1_4_6) 2 methods to implement
-------------------- -------------------
Implements 192 of the required methods. Implements 192 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
virtual QCString trEnumerationValueDocumentation()
TranslatorIndonesian (TranslatorAdapter_1_4_6) 1 method to implement
--------------------
Implements 193 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
Obsolete methods (should be removed, never used): Obsolete methods (should be removed, never used):
virtual QCString trHeaderFilesDescription() virtual QCString trHeaderFilesDescription()
...@@ -383,14 +461,27 @@ TranslatorIndonesian (Translator) ...@@ -383,14 +461,27 @@ TranslatorIndonesian (Translator)
virtual QCString trInterfaces() virtual QCString trInterfaces()
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorJapanese (Translator) TranslatorItalian (TranslatorAdapter_1_4_6) 1 method to implement
-----------------
Implements 193 of the required methods.
Missing methods (should be implemented):
virtual QCString trEnumerationValueDocumentation()
TranslatorJapanese (TranslatorAdapter_1_4_6) 1 method to implement
------------------ ------------------
Implements 192 of the required methods. Implements 193 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
Obsolete methods (should be removed, never used): Obsolete methods (should be removed, never used):
...@@ -402,11 +493,10 @@ TranslatorJapanese (Translator) ...@@ -402,11 +493,10 @@ TranslatorJapanese (Translator)
virtual QCString trInterfaces() virtual QCString trInterfaces()
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorJapaneseEn (TranslatorEnglish) 187 methods to implement TranslatorJapaneseEn (TranslatorEnglish) 189 methods to implement
-------------------- --------------------
Implements 5 of the required methods. Implements 5 of the required methods.
...@@ -420,7 +510,18 @@ TranslatorJapaneseEn (TranslatorEnglish) 187 methods to implement ...@@ -420,7 +510,18 @@ TranslatorJapaneseEn (TranslatorEnglish) 187 methods to implement
virtual QCString latexLanguageSupportCommand() virtual QCString latexLanguageSupportCommand()
TranslatorKoreanEn (TranslatorEnglish) 187 methods to implement TranslatorKorean (TranslatorAdapter_1_4_6) 2 methods to implement
----------------
Implements 192 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
virtual QCString trEnumerationValueDocumentation()
TranslatorKoreanEn (TranslatorEnglish) 189 methods to implement
------------------ ------------------
Implements 5 of the required methods. Implements 5 of the required methods.
...@@ -434,20 +535,25 @@ TranslatorKoreanEn (TranslatorEnglish) 187 methods to implement ...@@ -434,20 +535,25 @@ TranslatorKoreanEn (TranslatorEnglish) 187 methods to implement
virtual QCString latexLanguageSupportCommand() virtual QCString latexLanguageSupportCommand()
TranslatorNorwegian (TranslatorAdapter_1_3_9) 7 methods to implement TranslatorLithuanian (TranslatorAdapter_1_4_6) 2 methods to implement
--------------------
Implements 192 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
virtual QCString trEnumerationValueDocumentation()
TranslatorNorwegian (TranslatorAdapter_1_4_6) 1 method to implement
------------------- -------------------
Implements 185 of the required methods. Implements 193 of the required methods.
Missing methods (should be implemented): Missing methods (should be implemented):
virtual QCString trOverloadText() virtual QCString trCallerGraph()
virtual QCString trDirIndex()
virtual QCString trDirDocumentation()
virtual QCString trDirectories()
virtual QCString trDirDescription()
virtual QCString trDirReference(const char * dirName)
virtual QCString trDir(bool first_capital, bool singular)
Obsolete methods (should be removed, never used): Obsolete methods (should be removed, never used):
...@@ -459,14 +565,17 @@ TranslatorNorwegian (TranslatorAdapter_1_3_9) 7 methods to implement ...@@ -459,14 +565,17 @@ TranslatorNorwegian (TranslatorAdapter_1_3_9) 7 methods to implement
virtual QCString trInterfaces() virtual QCString trInterfaces()
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorPolish (Translator) TranslatorPolish (TranslatorAdapter_1_4_6) 1 method to implement
---------------- ----------------
Implements 192 of the required methods. Implements 193 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
Obsolete methods (should be removed, never used): Obsolete methods (should be removed, never used):
...@@ -478,14 +587,13 @@ TranslatorPolish (Translator) ...@@ -478,14 +587,13 @@ TranslatorPolish (Translator)
virtual QCString trInterfaces() virtual QCString trInterfaces()
QCString trHeaderFiles() QCString trHeaderFiles()
QCString trBugsAndLimitations() QCString trBugsAndLimitations()
QCString trEnumerationValueDocumentation()
QCString trNoDescriptionAvailable() QCString trNoDescriptionAvailable()
TranslatorPortuguese (TranslatorAdapter_1_3_3) 12 methods to implement TranslatorPortuguese (TranslatorAdapter_1_3_3) 13 methods to implement
-------------------- --------------------
Implements 180 of the required methods. Implements 181 of the required methods.
Missing methods (should be implemented): Missing methods (should be implemented):
...@@ -497,6 +605,7 @@ TranslatorPortuguese (TranslatorAdapter_1_3_3) 12 methods to implement ...@@ -497,6 +605,7 @@ TranslatorPortuguese (TranslatorAdapter_1_3_3) 12 methods to implement
virtual QCString trDirDescription() virtual QCString trDirDescription()
virtual QCString trSearchResults(int numDocuments) virtual QCString trSearchResults(int numDocuments)
virtual QCString trSearchMatches() virtual QCString trSearchMatches()
virtual QCString trCallerGraph()
virtual QCString trSourceFile(QCString & filename) virtual QCString trSourceFile(QCString & filename)
virtual QCString trDirReference(const char * dirName) virtual QCString trDirReference(const char * dirName)
virtual QCString trDir(bool first_capital, bool singular) virtual QCString trDir(bool first_capital, bool singular)
...@@ -512,18 +621,18 @@ TranslatorPortuguese (TranslatorAdapter_1_3_3) 12 methods to implement ...@@ -512,18 +621,18 @@ TranslatorPortuguese (TranslatorAdapter_1_3_3) 12 methods to implement
virtual QCString trInterfaces() virtual QCString trInterfaces()
QCString trHeaderFiles() QCString trHeaderFiles()
QCString trBugsAndLimitations() QCString trBugsAndLimitations()
QCString trEnumerationValueDocumentation()
QCString trNoDescriptionAvailable() QCString trNoDescriptionAvailable()
TranslatorRomanian (TranslatorAdapter_1_4_1) 1 method to implement TranslatorRomanian (TranslatorAdapter_1_4_1) 2 methods to implement
------------------ ------------------
Implements 191 of the required methods. Implements 192 of the required methods.
Missing methods (should be implemented): Missing methods (should be implemented):
virtual QCString trOverloadText() virtual QCString trOverloadText()
virtual QCString trCallerGraph()
Obsolete methods (should be removed, never used): Obsolete methods (should be removed, never used):
...@@ -535,18 +644,29 @@ TranslatorRomanian (TranslatorAdapter_1_4_1) 1 method to implement ...@@ -535,18 +644,29 @@ TranslatorRomanian (TranslatorAdapter_1_4_1) 1 method to implement
virtual QCString trInterfaces() virtual QCString trInterfaces()
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorSerbian (TranslatorAdapter_1_4_1) 1 method to implement TranslatorRussian (TranslatorAdapter_1_4_6) 2 methods to implement
----------------- -----------------
Implements 191 of the required methods. Implements 192 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
virtual QCString trEnumerationValueDocumentation()
TranslatorSerbian (TranslatorAdapter_1_4_1) 2 methods to implement
-----------------
Implements 192 of the required methods.
Missing methods (should be implemented): Missing methods (should be implemented):
virtual QCString trOverloadText() virtual QCString trOverloadText()
virtual QCString trCallerGraph()
Obsolete methods (should be removed, never used): Obsolete methods (should be removed, never used):
...@@ -558,14 +678,13 @@ TranslatorSerbian (TranslatorAdapter_1_4_1) 1 method to implement ...@@ -558,14 +678,13 @@ TranslatorSerbian (TranslatorAdapter_1_4_1) 1 method to implement
virtual QCString trInterfaces() virtual QCString trInterfaces()
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorSlovak (TranslatorAdapter_1_2_18) 21 methods to implement TranslatorSlovak (TranslatorAdapter_1_2_18) 22 methods to implement
---------------- ----------------
Implements 171 of the required methods. Implements 172 of the required methods.
Missing methods (should be implemented): Missing methods (should be implemented):
...@@ -585,6 +704,7 @@ TranslatorSlovak (TranslatorAdapter_1_2_18) 21 methods to implement ...@@ -585,6 +704,7 @@ TranslatorSlovak (TranslatorAdapter_1_2_18) 21 methods to implement
virtual QCString trPackageAttribs() virtual QCString trPackageAttribs()
virtual QCString trSearchMatches() virtual QCString trSearchMatches()
virtual QCString trEvents() virtual QCString trEvents()
virtual QCString trCallerGraph()
virtual QCString trSourceFile(QCString & filename) virtual QCString trSourceFile(QCString & filename)
virtual QCString trDirReference(const char * dirName) virtual QCString trDirReference(const char * dirName)
virtual QCString trDir(bool first_capital, bool singular) virtual QCString trDir(bool first_capital, bool singular)
...@@ -601,25 +721,28 @@ TranslatorSlovak (TranslatorAdapter_1_2_18) 21 methods to implement ...@@ -601,25 +721,28 @@ TranslatorSlovak (TranslatorAdapter_1_2_18) 21 methods to implement
virtual QCString trInterfaces() virtual QCString trInterfaces()
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorSpanish (TranslatorAdapter_1_3_8) 8 methods to implement TranslatorSlovene (TranslatorAdapter_1_4_6) 2 methods to implement
----------------- -----------------
Implements 184 of the required methods. Implements 192 of the required methods.
Missing methods (should be implemented): Missing methods (should be implemented):
virtual QCString trOverloadText() virtual QCString trCallerGraph()
virtual QCString trDirIndex() virtual QCString trEnumerationValueDocumentation()
virtual QCString trDirDocumentation()
virtual QCString trDirectories()
virtual QCString trDirDescription() TranslatorSpanish (TranslatorAdapter_1_4_6) 1 method to implement
virtual QCString trSourceFile(QCString & filename) -----------------
virtual QCString trDirReference(const char * dirName)
virtual QCString trDir(bool first_capital, bool singular) Implements 193 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
Obsolete methods (should be removed, never used): Obsolete methods (should be removed, never used):
...@@ -631,18 +754,29 @@ TranslatorSpanish (TranslatorAdapter_1_3_8) 8 methods to implement ...@@ -631,18 +754,29 @@ TranslatorSpanish (TranslatorAdapter_1_3_8) 8 methods to implement
virtual QCString trInterfaces() virtual QCString trInterfaces()
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorUkrainian (TranslatorAdapter_1_4_1) 1 method to implement TranslatorSwedish (TranslatorAdapter_1_4_6) 2 methods to implement
-----------------
Implements 192 of the required methods.
Missing methods (should be implemented):
virtual QCString trCallerGraph()
virtual QCString trEnumerationValueDocumentation()
TranslatorUkrainian (TranslatorAdapter_1_4_1) 2 methods to implement
------------------- -------------------
Implements 191 of the required methods. Implements 192 of the required methods.
Missing methods (should be implemented): Missing methods (should be implemented):
virtual QCString trOverloadText() virtual QCString trOverloadText()
virtual QCString trCallerGraph()
Obsolete methods (should be removed, never used): Obsolete methods (should be removed, never used):
...@@ -654,5 +788,4 @@ TranslatorUkrainian (TranslatorAdapter_1_4_1) 1 method to implement ...@@ -654,5 +788,4 @@ TranslatorUkrainian (TranslatorAdapter_1_4_1) 1 method to implement
virtual QCString trInterfaces() virtual QCString trInterfaces()
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
\ No newline at end of file
...@@ -2055,22 +2055,27 @@ bool ClassDef::isLinkable() const ...@@ -2055,22 +2055,27 @@ bool ClassDef::isLinkable() const
/*! the class is visible in a class diagram, or class hierarchy */ /*! the class is visible in a class diagram, or class hierarchy */
bool ClassDef::isVisibleInHierarchy() bool ClassDef::isVisibleInHierarchy()
{ {
static bool allExternals = Config_getBool("ALLEXTERNALS");
static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
static bool hideUndocClasses = Config_getBool("HIDE_UNDOC_CLASSES");
static bool extractStatic = Config_getBool("EXTRACT_STATIC");
return // show all classes or a subclass is visible return // show all classes or a subclass is visible
(Config_getBool("ALLEXTERNALS") || hasNonReferenceSuperClass()) && (allExternals || hasNonReferenceSuperClass()) &&
// and not an annonymous compound // and not an annonymous compound
name().find('@')==-1 && name().find('@')==-1 &&
// not an artifically introduced class // not an artifically introduced class
!m_artificial && !m_artificial &&
// and not privately inherited // and not privately inherited
(m_prot!=Private || Config_getBool("EXTRACT_PRIVATE")) && (m_prot!=Private || extractPrivate) &&
// documented or shown anyway or documentation is external // documented or shown anyway or documentation is external
(hasDocumentation() || (hasDocumentation() ||
!Config_getBool("HIDE_UNDOC_CLASSES") || !hideUndocClasses ||
(m_templateMaster && m_templateMaster->hasDocumentation()) || (m_templateMaster && m_templateMaster->hasDocumentation()) ||
isReference() isReference()
) && ) &&
// is not part of an unnamed namespace or shown anyway // is not part of an unnamed namespace or shown anyway
(!m_isStatic || Config_getBool("EXTRACT_STATIC")); (!m_isStatic || extractStatic);
} }
bool ClassDef::hasDocumentation() const bool ClassDef::hasDocumentation() const
......
...@@ -3152,7 +3152,7 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s, ...@@ -3152,7 +3152,7 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
extern "C" { // some bogus code to keep the compiler happy extern "C" { // some bogus code to keep the compiler happy
void codeYYdummy() { yy_flex_realloc(0,0); } void codeYYdummy() { yy_flex_realloc(0,0); }
} }
#else #elif YY_FLEX_SUBMINOR_VERSION<33
#error "You seem to be using a version of flex newer than 2.5.4. These are currently incompatible with 2.5.4, and do NOT work with doxygen! Please use version 2.5.4 or expect things to be parsed wrongly! A bug report has been submitted (#732132)." #error "You seem to be using a version of flex newer than 2.5.4. These are currently incompatible with 2.5.4, and do NOT work with doxygen! Please use version 2.5.4 or expect things to be parsed wrongly! A bug report has been submitted (#732132)."
#endif #endif
...@@ -493,8 +493,9 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'")) ...@@ -493,8 +493,9 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'"))
BEGIN(g_condCtx); BEGIN(g_condCtx);
} }
<CondLine>[ \t]* <CondLine>[ \t]*
<CComment,ReadLine>[\\@]"cond"[ \t]*\n | <CComment,ReadLine>[\\@]"cond"[ \t\r]*\n |
<CondLine>. { // forgot section id? <CondLine>. { // forgot section id?
if (YY_START!=CondLine) g_condCtx=YY_START;
bool oldSkip=g_skip; bool oldSkip=g_skip;
startCondSection(" "); // fake section id causing the section to be hidden unconditionally startCondSection(" "); // fake section id causing the section to be hidden unconditionally
if (g_condCtx==CComment && !oldSkip && g_skip) if (g_condCtx==CComment && !oldSkip && g_skip)
......
...@@ -42,6 +42,8 @@ class ParserInterface; ...@@ -42,6 +42,8 @@ class ParserInterface;
* @param[in] isJavaDocStyle TRUE iff this comment block is in "JavaDoc" style. * @param[in] isJavaDocStyle TRUE iff this comment block is in "JavaDoc" style.
* This means that it starts as a brief description until the end of * This means that it starts as a brief description until the end of
* the sentences is found and then proceeds as a detailed description. * the sentences is found and then proceeds as a detailed description.
* @param[in] isInbody TRUE iff this comment block is located in the body of
* a function.
* @param[in,out] prot The protection level in which this comment block was * @param[in,out] prot The protection level in which this comment block was
* found. Commands in the comment block may override this. * found. Commands in the comment block may override this.
* @param[in,out] position The character position within \a comment where the * @param[in,out] position The character position within \a comment where the
...@@ -63,6 +65,7 @@ bool parseCommentBlock(ParserInterface *parser, ...@@ -63,6 +65,7 @@ bool parseCommentBlock(ParserInterface *parser,
int lineNr, int lineNr,
bool isBrief, bool isBrief,
bool isJavaDocStyle, bool isJavaDocStyle,
bool isInbody,
Protection &prot, Protection &prot,
int &position, int &position,
bool &newEntryNeeded bool &newEntryNeeded
......
...@@ -261,7 +261,8 @@ enum OutputContext ...@@ -261,7 +261,8 @@ enum OutputContext
{ {
OutputDoc, OutputDoc,
OutputBrief, OutputBrief,
OutputXRef OutputXRef,
OutputInbody
}; };
enum GuardType enum GuardType
...@@ -299,7 +300,7 @@ static QCString inputString; // input string ...@@ -299,7 +300,7 @@ static QCString inputString; // input string
static int inputPosition; // read pointer static int inputPosition; // read pointer
static QCString yyFileName; // file name that is read from static QCString yyFileName; // file name that is read from
static int yyLineNr; // line number in the input static int yyLineNr; // line number in the input
//static bool inBody; // was the comment found inside the body of a function? static bool inBody; // was the comment found inside the body of a function?
static OutputContext inContext; // are we inside the brief, details or xref part static OutputContext inContext; // are we inside the brief, details or xref part
static bool briefEndsAtDot; // does the brief description stop at a dot? static bool briefEndsAtDot; // does the brief description stop at a dot?
static QCString formulaText; // Running text of a formula static QCString formulaText; // Running text of a formula
...@@ -479,7 +480,14 @@ static void addXRefItem(const char *listName,const char *itemTitle, ...@@ -479,7 +480,14 @@ static void addXRefItem(const char *listName,const char *itemTitle,
docEntry->addSpecialListItem(listName,itemId); docEntry->addSpecialListItem(listName,itemId);
QCString cmdString; QCString cmdString;
cmdString.sprintf("\\xrefitem %s %d\n",listName,itemId); cmdString.sprintf("\\xrefitem %s %d\n",listName,itemId);
if (inBody)
{
docEntry->inbodyDocs += cmdString;
}
else
{
docEntry->doc += cmdString; docEntry->doc += cmdString;
}
SectionInfo *si=new SectionInfo(listName,anchorLabel, SectionInfo *si=new SectionInfo(listName,anchorLabel,
sectionTitle,SectionInfo::Anchor); sectionTitle,SectionInfo::Anchor);
Doxygen::sectionDict.insert(anchorLabel,si); Doxygen::sectionDict.insert(anchorLabel,si);
...@@ -605,6 +613,7 @@ static inline void setOutput(OutputContext ctx) ...@@ -605,6 +613,7 @@ static inline void setOutput(OutputContext ctx)
} }
inContext = ctx; inContext = ctx;
if (inContext!=OutputXRef && inBody) inContext=OutputInbody;
switch(inContext) switch(inContext)
{ {
case OutputDoc: case OutputDoc:
...@@ -629,6 +638,9 @@ static inline void setOutput(OutputContext ctx) ...@@ -629,6 +638,9 @@ static inline void setOutput(OutputContext ctx)
// first item found, so can't append to previous // first item found, so can't append to previous
//xrefAppendFlag = FALSE; //xrefAppendFlag = FALSE;
break; break;
case OutputInbody:
pOutputString = &current->inbodyDocs;
break;
} }
} }
...@@ -780,7 +792,7 @@ MAILADR [a-z_A-Z0-9.+\-]+"@"[a-z_A-Z0-9\-]+("."[a-z_A-Z0-9\-]+)+[a-z_A-Z0-9\-] ...@@ -780,7 +792,7 @@ MAILADR [a-z_A-Z0-9.+\-]+"@"[a-z_A-Z0-9\-]+("."[a-z_A-Z0-9\-]+)+[a-z_A-Z0-9\-]
<Comment>("\\"[a-z_A-Z]+)+"\\" { // directory (or chain of commands!) <Comment>("\\"[a-z_A-Z]+)+"\\" { // directory (or chain of commands!)
addOutput(yytext); addOutput(yytext);
} }
<Comment>{XREFCMD}/[^a-z_A-Z]* { // command that can end a brief description <Comment>{XREFCMD}/[^a-z_A-Z]* { // xref command
if (inContext!=OutputXRef) if (inContext!=OutputXRef)
{ {
briefEndsAtDot=FALSE; briefEndsAtDot=FALSE;
...@@ -826,7 +838,12 @@ MAILADR [a-z_A-Z0-9.+\-]+"@"[a-z_A-Z0-9\-]+("."[a-z_A-Z0-9\-]+)+[a-z_A-Z0-9\-] ...@@ -826,7 +838,12 @@ MAILADR [a-z_A-Z0-9.+\-]+"@"[a-z_A-Z0-9\-]+("."[a-z_A-Z0-9\-]+)+[a-z_A-Z0-9\-]
// yuk, this is probably not very portable across lex implementations, // yuk, this is probably not very portable across lex implementations,
// but we need to know the position in the input buffer where this // but we need to know the position in the input buffer where this
// rule matched. // rule matched.
// for flex 2.5.33+ we should use YY_CURRENT_BUFFER_LVALUE
#if YY_FLEX_MINOR_VERSION>=5 && YY_FLEX_SUBMINOR_VERSION>=33
inputPosition=prevPosition + yy_bp - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
#else
inputPosition=prevPosition + yy_bp - yy_current_buffer->yy_ch_buf; inputPosition=prevPosition + yy_bp - yy_current_buffer->yy_ch_buf;
#endif
yyterminate(); yyterminate();
} }
} }
...@@ -2177,6 +2194,7 @@ bool parseCommentBlock(/* in */ ParserInterface *parser, ...@@ -2177,6 +2194,7 @@ bool parseCommentBlock(/* in */ ParserInterface *parser,
/* in */ int lineNr, /* in */ int lineNr,
/* in */ bool isBrief, /* in */ bool isBrief,
/* in */ bool isJavaDocStyle, /* in */ bool isJavaDocStyle,
/* in */ bool isInbody,
/* in,out */ Protection &prot, /* in,out */ Protection &prot,
/* in,out */ int &position, /* in,out */ int &position,
/* out */ bool &newEntryNeeded /* out */ bool &newEntryNeeded
...@@ -2202,10 +2220,15 @@ bool parseCommentBlock(/* in */ ParserInterface *parser, ...@@ -2202,10 +2220,15 @@ bool parseCommentBlock(/* in */ ParserInterface *parser,
xrefAppendFlag = FALSE; xrefAppendFlag = FALSE;
insidePre = FALSE; insidePre = FALSE;
parseMore = FALSE; parseMore = FALSE;
inBody = isInbody;
outputXRef.resize(0); outputXRef.resize(0);
setOutput( isBrief || isJavaDocStyle ? OutputBrief : OutputDoc ); setOutput( isBrief || isJavaDocStyle ? OutputBrief : OutputDoc );
briefEndsAtDot = isJavaDocStyle; briefEndsAtDot = isJavaDocStyle;
if (!current->inbodyDocs.isEmpty() && isInbody) // separate in body fragments
{
current->inbodyDocs+="\n\n";
}
Debug::print(Debug::CommentScan,0,"-----------\nCommentScanner: %s:%d\n" Debug::print(Debug::CommentScan,0,"-----------\nCommentScanner: %s:%d\n"
"input=[%s]\n",fileName.data(),lineNr,comment.data() "input=[%s]\n",fileName.data(),lineNr,comment.data()
......
...@@ -311,6 +311,7 @@ static int yyread(char *buf,int max_size) ...@@ -311,6 +311,7 @@ static int yyread(char *buf,int max_size)
if (includeStack.isEmpty()) if (includeStack.isEmpty())
{ {
int c=0; int c=0;
if (inputString==0) return c;
while( c < max_size && inputString[inputPosition] ) while( c < max_size && inputString[inputPosition] )
{ {
*buf = inputString[inputPosition++] ; *buf = inputString[inputPosition++] ;
......
...@@ -325,7 +325,7 @@ OPMASK ({BLANK}*{OPNORM}{FUNCARG}?)|({OPCAST}{FUNCARG}) ...@@ -325,7 +325,7 @@ OPMASK ({BLANK}*{OPNORM}{FUNCARG}?)|({OPCAST}{FUNCARG})
LNKWORD1 ("::"|"#")?{SCOPEMASK} LNKWORD1 ("::"|"#")?{SCOPEMASK}
CVSPEC {BLANK}*("const"|"volatile") CVSPEC {BLANK}*("const"|"volatile")
LNKWORD2 {SCOPEPRE}*"operator"{OPMASK} LNKWORD2 {SCOPEPRE}*"operator"{OPMASK}
LNKWORD3 [0-9a-z_A-Z]+("."[0-9a-z_A-Z]+)+ LNKWORD3 ([0-9a-z_A-Z\-]+("/"|"\\"))*[0-9a-z_A-Z\-]+("."[0-9a-z_A-Z]+)+
CHARWORD [^ \t\n\r\\@<>()\[\]:;\?{}&%$#,.] CHARWORD [^ \t\n\r\\@<>()\[\]:;\?{}&%$#,.]
CHARWORDQ [^ \t\n\r\\@<>()\[\]:;\?{}&%$#,."] CHARWORDQ [^ \t\n\r\\@<>()\[\]:;\?{}&%$#,."]
WORD1 "%"?{CHARWORD}+|"{"|"}"|("\""[^"\n]*"\"") WORD1 "%"?{CHARWORD}+|"{"|"}"|("\""[^"\n]*"\"")
......
...@@ -120,7 +120,7 @@ SearchIndex * Doxygen::searchIndex=0; ...@@ -120,7 +120,7 @@ SearchIndex * Doxygen::searchIndex=0;
SDict<DefinitionList> *Doxygen::symbolMap; 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(50000,50000);
DirSDict Doxygen::directories(17); DirSDict Doxygen::directories(17);
SDict<DirRelation> Doxygen::dirRelations(257); SDict<DirRelation> Doxygen::dirRelations(257);
ParserManager *Doxygen::parserManager = 0; ParserManager *Doxygen::parserManager = 0;
...@@ -4889,7 +4889,6 @@ static void findMember(Entry *root, ...@@ -4889,7 +4889,6 @@ static void findMember(Entry *root,
else else
{ {
scopeName = mergeScopes(root->parent->name,scopeName); scopeName = mergeScopes(root->parent->name,scopeName);
printf("joinedName=%s\n",scopeName.data());
} }
} }
else // see if we can prefix a namespace or class that is used from the file else // see if we can prefix a namespace or class that is used from the file
...@@ -6131,7 +6130,7 @@ static void findEnumDocumentation(Entry *root) ...@@ -6131,7 +6130,7 @@ static void findEnumDocumentation(Entry *root)
md->setMemberGroupId(root->mGrpId); md->setMemberGroupId(root->mGrpId);
GroupDef *gd=md->getGroupDef(); GroupDef *gd=md->getGroupDef();
if (gd==0 &&root->groups->first()!=0) // member not grouped but out-of-line documentation is if (gd==0 && root->groups->first()!=0) // member not grouped but out-of-line documentation is
{ {
addMemberToGroups(root,md); addMemberToGroups(root,md);
} }
...@@ -7894,6 +7893,7 @@ static int readFileOrDirectory(const char *s, ...@@ -7894,6 +7893,7 @@ static int readFileOrDirectory(const char *s,
{ {
//printf("killDict=%p count=%d\n",killDict,killDict->count()); //printf("killDict=%p count=%d\n",killDict,killDict->count());
// strip trailing slashes // strip trailing slashes
if (s==0) return 0;
QCString fs = s; QCString fs = s;
char lc = fs.at(fs.length()-1); char lc = fs.at(fs.length()-1);
if (lc=='/' || lc=='\\') fs = fs.left(fs.length()-1); if (lc=='/' || lc=='\\') fs = fs.left(fs.length()-1);
......
...@@ -71,6 +71,7 @@ GroupDef::GroupDef(const char *df,int dl,const char *na,const char *t, ...@@ -71,6 +71,7 @@ GroupDef::GroupDef(const char *df,int dl,const char *na,const char *t,
docProtoMembers.setInGroup(TRUE); docProtoMembers.setInGroup(TRUE);
docTypedefMembers.setInGroup(TRUE); docTypedefMembers.setInGroup(TRUE);
docEnumMembers.setInGroup(TRUE); docEnumMembers.setInGroup(TRUE);
docEnumValMembers.setInGroup(TRUE);
docFuncMembers.setInGroup(TRUE); docFuncMembers.setInGroup(TRUE);
docVarMembers.setInGroup(TRUE); docVarMembers.setInGroup(TRUE);
...@@ -302,6 +303,18 @@ bool GroupDef::insertMember(MemberDef *md,bool docOnly) ...@@ -302,6 +303,18 @@ bool GroupDef::insertMember(MemberDef *md,bool docOnly)
docEnumMembers.append(md); docEnumMembers.append(md);
break; break;
case MemberDef::EnumValue: case MemberDef::EnumValue:
if (!docOnly)
{
//printf("enum value %s!\n",md->name().data());
if (Config_getBool("SORT_BRIEF_DOCS"))
decEnumValMembers.inSort(md);
else
decEnumValMembers.append(md);
}
if (Config_getBool("SORT_MEMBER_DOCS"))
docEnumValMembers.inSort(md);
else
docEnumValMembers.append(md);
break; break;
case MemberDef::Prototype: case MemberDef::Prototype:
if (!docOnly) if (!docOnly)
...@@ -381,6 +394,8 @@ void GroupDef::removeMember(MemberDef *md) ...@@ -381,6 +394,8 @@ void GroupDef::removeMember(MemberDef *md)
docEnumMembers.remove(md); docEnumMembers.remove(md);
break; break;
case MemberDef::EnumValue: case MemberDef::EnumValue:
decEnumValMembers.remove(md);
docEnumValMembers.remove(md);
break; break;
case MemberDef::Prototype: case MemberDef::Prototype:
decProtoMembers.remove(md); decProtoMembers.remove(md);
...@@ -654,6 +669,7 @@ void GroupDef::writeDocumentation(OutputList &ol) ...@@ -654,6 +669,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
decProtoMembers.writeDeclarations(ol,0,0,0,this,theTranslator->trFuncProtos(),0); decProtoMembers.writeDeclarations(ol,0,0,0,this,theTranslator->trFuncProtos(),0);
decTypedefMembers.writeDeclarations(ol,0,0,0,this,theTranslator->trTypedefs(),0); decTypedefMembers.writeDeclarations(ol,0,0,0,this,theTranslator->trTypedefs(),0);
decEnumMembers.writeDeclarations(ol,0,0,0,this,theTranslator->trEnumerations(),0); decEnumMembers.writeDeclarations(ol,0,0,0,this,theTranslator->trEnumerations(),0);
decEnumValMembers.writeDeclarations(ol,0,0,0,this,theTranslator->trEnumerationValues(),0,TRUE);
decFuncMembers.writeDeclarations(ol,0,0,0,this,theTranslator->trFunctions(),0); decFuncMembers.writeDeclarations(ol,0,0,0,this,theTranslator->trFunctions(),0);
decVarMembers.writeDeclarations(ol,0,0,0,this,theTranslator->trVariables(),0); decVarMembers.writeDeclarations(ol,0,0,0,this,theTranslator->trVariables(),0);
} }
...@@ -729,6 +745,9 @@ void GroupDef::writeMemberDocumentation(OutputList &ol) ...@@ -729,6 +745,9 @@ void GroupDef::writeMemberDocumentation(OutputList &ol)
docEnumMembers.writeDocumentation(ol,name(),this, docEnumMembers.writeDocumentation(ol,name(),this,
theTranslator->trEnumerationTypeDocumentation()); theTranslator->trEnumerationTypeDocumentation());
docEnumValMembers.writeDocumentation(ol,name(),this,
theTranslator->trEnumerationValueDocumentation(),TRUE);
docFuncMembers.writeDocumentation(ol,name(),this, docFuncMembers.writeDocumentation(ol,name(),this,
theTranslator->trFunctionDocumentation()); theTranslator->trFunctionDocumentation());
......
...@@ -106,6 +106,7 @@ class GroupDef : public Definition ...@@ -106,6 +106,7 @@ class GroupDef : public Definition
MemberList docProtoMembers; MemberList docProtoMembers;
MemberList docTypedefMembers; MemberList docTypedefMembers;
MemberList docEnumMembers; MemberList docEnumMembers;
MemberList docEnumValMembers;
MemberList docFuncMembers; MemberList docFuncMembers;
MemberList docVarMembers; MemberList docVarMembers;
......
...@@ -624,27 +624,19 @@ static int countClassesInTreeList(const ClassSDict &cl) ...@@ -624,27 +624,19 @@ static int countClassesInTreeList(const ClassSDict &cl)
if (!hasVisibleRoot(cd->baseClasses())) // filter on root classes if (!hasVisibleRoot(cd->baseClasses())) // filter on root classes
{ {
if (cd->isVisibleInHierarchy()) // should it be visible if (cd->isVisibleInHierarchy()) // should it be visible
{
if (cd->subClasses()->count()>0) // should have sub classes
{ {
count++; count++;
} }
} }
} }
}
return count; return count;
} }
int countClassHierarchy() int countClassHierarchy()
{ {
#if 0
// TODO: let this function return the real number of items in the hierarchy.
initClassHierarchy(&Doxygen::classSDict);
int count=0;
ClassSDict::Iterator cli(Doxygen::classSDict);
for ( ; cli.current(); ++cli)
{
if (cli.current()->subClasses()->count()>0) count++;
}
return count;
#endif
int count=0; int count=0;
initClassHierarchy(&Doxygen::classSDict); initClassHierarchy(&Doxygen::classSDict);
initClassHierarchy(&Doxygen::hiddenClasses); initClassHierarchy(&Doxygen::hiddenClasses);
...@@ -657,7 +649,6 @@ int countClassHierarchy() ...@@ -657,7 +649,6 @@ int countClassHierarchy()
void writeHierarchicalIndex(OutputList &ol) void writeHierarchicalIndex(OutputList &ol)
{ {
//printf("writeHierarchicalIndex: %d classes\n",hierarchyClasses);
if (hierarchyClasses==0) return; if (hierarchyClasses==0) return;
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
......
...@@ -693,9 +693,20 @@ void MemberDef::writeLink(OutputList &ol,ClassDef *,NamespaceDef *, ...@@ -693,9 +693,20 @@ void MemberDef::writeLink(OutputList &ol,ClassDef *,NamespaceDef *,
if (isStatic()) ol.docify("+ "); else ol.docify("- "); if (isStatic()) ol.docify("+ "); else ol.docify("- ");
} }
if (!onlyText) // write link if (!onlyText) // write link
{
if (mtype==EnumValue && getGroupDef()==0 && // enum value is not grouped
getEnumScope() && getEnumScope()->getGroupDef()) // but its container is
{
GroupDef *enumValGroup = getEnumScope()->getGroupDef();
ol.writeObjectLink(enumValGroup->getReference(),
enumValGroup->getOutputFileBase(),
anchor(),n);
}
else
{ {
ol.writeObjectLink(getReference(),getOutputFileBase(),anchor(),n); ol.writeObjectLink(getReference(),getOutputFileBase(),anchor(),n);
} }
}
else // write only text else // write only text
{ {
ol.startBold(); ol.startBold();
...@@ -1029,6 +1040,10 @@ void MemberDef::writeDeclaration(OutputList &ol, ...@@ -1029,6 +1040,10 @@ void MemberDef::writeDeclaration(OutputList &ol,
} }
} }
} }
else if (ltype=="@") // rename type from enum values
{
ltype="";
}
else else
{ {
if (isObjCMethod()) if (isObjCMethod())
...@@ -1291,7 +1306,8 @@ bool MemberDef::isDetailedSectionVisible(bool inGroup,bool inFile) const ...@@ -1291,7 +1306,8 @@ bool MemberDef::isDetailedSectionVisible(bool inGroup,bool inFile) const
void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
const char *scName, const char *scName,
Definition *container, Definition *container,
bool inGroup bool inGroup,
bool showEnumValues
) )
{ {
// if this member is in a group find the real scope name. // if this member is in a group find the real scope name.
...@@ -1301,7 +1317,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1301,7 +1317,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
//printf("MemberDef::writeDocumentation(): name=`%s' hasDocs=`%d' containerType=%d inGroup=%d\n", //printf("MemberDef::writeDocumentation(): name=`%s' hasDocs=`%d' containerType=%d inGroup=%d\n",
// name().data(),hasDocs,container->definitionType(),inGroup); // name().data(),hasDocs,container->definitionType(),inGroup);
if ( !hasDocs ) return; if ( !hasDocs ) return;
if (isEnumValue()) return; if (isEnumValue() && !showEnumValues) return;
QCString scopeName = scName; QCString scopeName = scName;
QCString memAnchor = anchor(); QCString memAnchor = anchor();
...@@ -1357,6 +1373,13 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1357,6 +1373,13 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
ldef.prepend("enum "); ldef.prepend("enum ");
} }
} }
else if (isEnumValue())
{
if (ldef.at(0)=='@')
{
ldef=ldef.mid(2);
}
}
int i=0,l; int i=0,l;
static QRegExp r("@[0-9]+"); static QRegExp r("@[0-9]+");
......
...@@ -194,7 +194,7 @@ class MemberDef : public Definition ...@@ -194,7 +194,7 @@ class MemberDef : public Definition
bool inGroup); bool inGroup);
void writeDocumentation(MemberList *ml,OutputList &ol, void writeDocumentation(MemberList *ml,OutputList &ol,
const char *scopeName,Definition *container, const char *scopeName,Definition *container,
bool inGroup); bool inGroup,bool showEnumValues=FALSE);
void warnIfUndocumented(); void warnIfUndocumented();
// relation to other members // relation to other members
......
...@@ -50,7 +50,7 @@ int MemberList::compareItems(GCI item1, GCI item2) ...@@ -50,7 +50,7 @@ int MemberList::compareItems(GCI item1, GCI item2)
/*! Count the number of members in this list that are visible in /*! Count the number of members in this list that are visible in
* the declaration part of a compound's documentation page. * the declaration part of a compound's documentation page.
*/ */
void MemberList::countDecMembers() void MemberList::countDecMembers(bool countEnumValues)
{ {
if (m_numDecMembers!=-1) return; if (m_numDecMembers!=-1) return;
...@@ -77,7 +77,8 @@ void MemberList::countDecMembers() ...@@ -77,7 +77,8 @@ void MemberList::countDecMembers()
m_funcCnt++,m_numDecMembers++; m_funcCnt++,m_numDecMembers++;
break; break;
case MemberDef::Enumeration: m_enumCnt++,m_numDecMembers++; break; case MemberDef::Enumeration: m_enumCnt++,m_numDecMembers++; break;
case MemberDef::EnumValue: //m_enumValCnt++,m_numDecMembers++; case MemberDef::EnumValue: if (countEnumValues)
m_enumValCnt++,m_numDecMembers++;
break; break;
case MemberDef::Typedef: m_typeCnt++,m_numDecMembers++; break; case MemberDef::Typedef: m_typeCnt++,m_numDecMembers++; break;
case MemberDef::Prototype: m_protoCnt++,m_numDecMembers++; break; case MemberDef::Prototype: m_protoCnt++,m_numDecMembers++; break;
...@@ -117,7 +118,7 @@ void MemberList::countDecMembers() ...@@ -117,7 +118,7 @@ void MemberList::countDecMembers()
//printf("MemberList::countDecMembers()=%d\n",m_numDecMembers); //printf("MemberList::countDecMembers()=%d\n",m_numDecMembers);
} }
void MemberList::countDocMembers() void MemberList::countDocMembers(bool countEnumValues)
{ {
if (m_numDocMembers!=-1) return; // used cached value if (m_numDocMembers!=-1) return; // used cached value
m_numDocMembers=0; m_numDocMembers=0;
...@@ -128,7 +129,8 @@ void MemberList::countDocMembers() ...@@ -128,7 +129,8 @@ void MemberList::countDocMembers()
if (md->isDetailedSectionVisible(m_inGroup,m_inFile)) if (md->isDetailedSectionVisible(m_inGroup,m_inFile))
{ {
// do not count enum values, since they do not produce entries of their own // do not count enum values, since they do not produce entries of their own
if (md->memberType()!=MemberDef::EnumValue) m_numDocMembers++; if (countEnumValues || md->memberType()!=MemberDef::EnumValue)
m_numDocMembers++;
} }
} }
if (memberGroupList) if (memberGroupList)
...@@ -181,9 +183,10 @@ void MemberList::writePlainDeclarations(OutputList &ol, ...@@ -181,9 +183,10 @@ void MemberList::writePlainDeclarations(OutputList &ol,
MemberListIterator mli(*this); MemberListIterator mli(*this);
for ( ; (md=mli.current()); ++mli ) for ( ; (md=mli.current()); ++mli )
{ {
//printf(">>> Member `%s' type=%d visible=%d\n",
// md->name().data(),md->memberType(),md->isBriefSectionVisible());
if (md->isBriefSectionVisible()) if (md->isBriefSectionVisible())
{ {
//printf(">>> Member `%s' type=%d\n",md->name().data(),md->memberType());
switch(md->memberType()) switch(md->memberType())
{ {
case MemberDef::Define: // fall through case MemberDef::Define: // fall through
...@@ -264,6 +267,10 @@ void MemberList::writePlainDeclarations(OutputList &ol, ...@@ -264,6 +267,10 @@ void MemberList::writePlainDeclarations(OutputList &ol,
break; break;
} }
case MemberDef::EnumValue: case MemberDef::EnumValue:
{
if (first) ol.startMemberList(),first=FALSE;
md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup);
}
break; break;
} }
} }
...@@ -298,11 +305,11 @@ void MemberList::writePlainDeclarations(OutputList &ol, ...@@ -298,11 +305,11 @@ void MemberList::writePlainDeclarations(OutputList &ol,
void MemberList::writeDeclarations(OutputList &ol, void MemberList::writeDeclarations(OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
const char *title,const char *subtitle const char *title,const char *subtitle, bool showEnumValues
/*, bool inGroup,bool countSubGroups*/) /*, bool inGroup,bool countSubGroups*/)
{ {
//printf("----- writeDeclaration() ----\n"); //printf("----- writeDeclaration() ----\n");
countDecMembers(); // count member not in group countDecMembers(showEnumValues); // count member not in group
if (numDecMembers()==0) return; if (numDecMembers()==0) return;
//printf("MemberList::writeDeclaration(title=`%s',subtitle=`%s')=%d\n",title,subtitle,numDecMembers()); //printf("MemberList::writeDeclaration(title=`%s',subtitle=`%s')=%d\n",title,subtitle,numDecMembers());
if (title) if (title)
...@@ -355,11 +362,11 @@ void MemberList::writeDeclarations(OutputList &ol, ...@@ -355,11 +362,11 @@ void MemberList::writeDeclarations(OutputList &ol,
void MemberList::writeDocumentation(OutputList &ol, void MemberList::writeDocumentation(OutputList &ol,
const char *scopeName, Definition *container, const char *scopeName, Definition *container,
const char *title) const char *title,bool showEnumValues)
{ {
//printf("MemberList::writeDocumentation()\n"); //printf("MemberList::writeDocumentation()\n");
countDocMembers(); countDocMembers(showEnumValues);
if (numDocMembers()==0) return; if (numDocMembers()==0) return;
if (title) if (title)
...@@ -375,7 +382,7 @@ void MemberList::writeDocumentation(OutputList &ol, ...@@ -375,7 +382,7 @@ void MemberList::writeDocumentation(OutputList &ol,
MemberDef *md; MemberDef *md;
for ( ; (md=mli.current()) ; ++mli) for ( ; (md=mli.current()) ; ++mli)
{ {
md->writeDocumentation(this,ol,scopeName,container,m_inGroup); md->writeDocumentation(this,ol,scopeName,container,m_inGroup,showEnumValues);
} }
if (memberGroupList) if (memberGroupList)
{ {
......
...@@ -45,15 +45,15 @@ class MemberList : public QList<MemberDef> ...@@ -45,15 +45,15 @@ class MemberList : public QList<MemberDef>
int friendCount() const { ASSERT(m_numDecMembers!=-1); return m_friendCnt; } int friendCount() const { ASSERT(m_numDecMembers!=-1); return m_friendCnt; }
int numDecMembers() const { ASSERT(m_numDecMembers!=-1); return m_numDecMembers; } int numDecMembers() const { ASSERT(m_numDecMembers!=-1); return m_numDecMembers; }
int numDocMembers() const { ASSERT(m_numDocMembers!=-1); return m_numDocMembers; } int numDocMembers() const { ASSERT(m_numDocMembers!=-1); return m_numDocMembers; }
void countDecMembers(/*bool inGroup,bool countSubGroups,bool sectionPerType*/); void countDecMembers(bool countEnumValues=FALSE);
void countDocMembers(); void countDocMembers(bool countEnumValues=FALSE);
void writePlainDeclarations(OutputList &ol, void writePlainDeclarations(OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd); ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd);
void writeDeclarations(OutputList &ol, void writeDeclarations(OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
const char *title,const char *subtitle); const char *title,const char *subtitle,bool showEnumValues=FALSE);
void writeDocumentation(OutputList &ol,const char *scopeName, void writeDocumentation(OutputList &ol,const char *scopeName,
Definition *container,const char *title); Definition *container,const char *title,bool showEnumValues=FALSE);
void writeDocumentationPage(OutputList &ol, void writeDocumentationPage(OutputList &ol,
const char *scopeName, Definition *container); const char *scopeName, Definition *container);
void addMemberGroup(MemberGroup *mg); void addMemberGroup(MemberGroup *mg);
......
...@@ -1872,7 +1872,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -1872,7 +1872,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
outputArray(yytext,yyleng); outputArray(yytext,yyleng);
BEGIN(g_condCtx); BEGIN(g_condCtx);
} }
<SkipCComment,SkipCPPComment>[\\@]"cond"[ \t]+\n | <SkipCComment,SkipCPPComment>[\\@]"cond"[ \t\r]*\n |
<CondLine>. { <CondLine>. {
outputArray(yytext,yyleng); outputArray(yytext,yyleng);
startCondSection(" "); startCondSection(" ");
...@@ -1943,7 +1943,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -1943,7 +1943,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
<SkipCPPComment>"//" { <SkipCPPComment>"//" {
outputChar('/');outputChar('/'); outputChar('/');outputChar('/');
} }
<SkipCPPComment>[^\x06\n]+ { <SkipCPPComment>[^\x06\@\\\n]+ {
outputArray(yytext,yyleng); outputArray(yytext,yyleng);
} }
<SkipCPPComment>. { <SkipCPPComment>. {
......
...@@ -1431,7 +1431,7 @@ void parsePythonCode(CodeOutputInterface &od,const char *className, ...@@ -1431,7 +1431,7 @@ void parsePythonCode(CodeOutputInterface &od,const char *className,
extern "C" { // some bogus code to keep the compiler happy extern "C" { // some bogus code to keep the compiler happy
void pycodeYYdummy() { yy_flex_realloc(0,0); } void pycodeYYdummy() { yy_flex_realloc(0,0); }
} }
#else #elif YY_FLEX_SUBMINOR_VERSION<33
#error "You seem to be using a version of flex newer than 2.5.4. These are currently incompatible with 2.5.4, and do NOT work with doxygen! Please use version 2.5.4 or expect things to be parsed wrongly! A bug report has been submitted (#732132)." #error "You seem to be using a version of flex newer than 2.5.4. These are currently incompatible with 2.5.4, and do NOT work with doxygen! Please use version 2.5.4 or expect things to be parsed wrongly! A bug report has been submitted (#732132)."
#endif #endif
...@@ -308,6 +308,7 @@ static void handleCommentBlock(const QCString &doc,bool brief) ...@@ -308,6 +308,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
brief ? current->briefLine : current->docLine, // line of block start brief ? current->briefLine : current->docLine, // line of block start
docBlockInBody ? FALSE : brief, docBlockInBody ? FALSE : brief,
docBlockJavaStyle, // javadoc style docBlockJavaStyle, // javadoc style
docBlockInBody,
protection, protection,
position, position,
needsEntry) needsEntry)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2005 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -2569,7 +2569,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -2569,7 +2569,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
// see if the compound does not have a name or is inside another // see if the compound does not have a name or is inside another
// annonymous compound. If so we insert a // annonymous compound. If so we insert a
// special `annonymous' variable. // special `annonymous' variable.
Entry *p=current_root; //Entry *p=current_root;
Entry *p=current;
while (p) while (p)
{ {
// only look for class scopes, not namespace scopes // only look for class scopes, not namespace scopes
...@@ -2586,7 +2587,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -2586,7 +2587,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
break; break;
} }
} }
p=p->parent; //p=p->parent;
if (p==current) p=current_root; else p=p->parent;
} }
} }
//printf("msName=%s current->name=%s\n",msName.data(),current->name.data()); //printf("msName=%s current->name=%s\n",msName.data(),current->name.data());
...@@ -3416,6 +3418,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -3416,6 +3418,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
} }
else else
{ {
#if 0
if (!Config_getBool("HIDE_IN_BODY_DOCS") && if (!Config_getBool("HIDE_IN_BODY_DOCS") &&
!current->doc.isEmpty()) !current->doc.isEmpty())
{ {
...@@ -3430,6 +3433,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -3430,6 +3433,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
previous->inbodyDocs += current->doc; previous->inbodyDocs += current->doc;
current->doc.resize(0); current->doc.resize(0);
} }
#endif
if (current->sli) // copy special list items if (current->sli) // copy special list items
{ {
QListIterator<ListItemInfo> li(*current->sli); QListIterator<ListItemInfo> li(*current->sli);
...@@ -3880,7 +3884,16 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -3880,7 +3884,16 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
} }
<Specialization>{BN}+ { lineCount(); *specName +=' '; } <Specialization>{BN}+ { lineCount(); *specName +=' '; }
<Specialization>"<<" { *specName += yytext; } <Specialization>"<<" { *specName += yytext; }
<Specialization>">>" { *specName += yytext; } <Specialization>">>" {
if (insideCS) // for C# >> ends a nested template
{
REJECT;
}
else // for C++ >> is a bitshift operator and > > would end a nested template
{
*specName += yytext;
}
}
<Specialization>"typename"{BN}+ { lineCount(); } <Specialization>"typename"{BN}+ { lineCount(); }
<Specialization>"(" { *specName += *yytext; roundCount++; } <Specialization>"(" { *specName += *yytext; roundCount++; }
<Specialization>")" { *specName += *yytext; roundCount--; } <Specialization>")" { *specName += *yytext; roundCount--; }
...@@ -3977,7 +3990,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -3977,7 +3990,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
insideCode=FALSE; insideCode=FALSE;
current->program += yytext ; current->program += yytext ;
} }
<Comment>[^ \.\n\/\*]+ { current->program += yytext ; } <Comment>[^ \.\t\r\n\/\*]+ { current->program += yytext ; }
<Comment>"*/" { current->program += yytext ; <Comment>"*/" { current->program += yytext ;
if (!insideCode) BEGIN( lastContext ) ; if (!insideCode) BEGIN( lastContext ) ;
} }
...@@ -4405,6 +4418,7 @@ static void handleCommentBlock(const QCString &doc,bool brief) ...@@ -4405,6 +4418,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
int position=0; int position=0;
bool needsEntry=FALSE; bool needsEntry=FALSE;
if (docBlockInBody && hideInBodyDocs) return; if (docBlockInBody && hideInBodyDocs) return;
#if 0
if (docBlockInBody) if (docBlockInBody)
{ {
if (previous==0) if (previous==0)
...@@ -4417,6 +4431,7 @@ static void handleCommentBlock(const QCString &doc,bool brief) ...@@ -4417,6 +4431,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
previous->doc=previous->doc.stripWhiteSpace()+"\n\n"; previous->doc=previous->doc.stripWhiteSpace()+"\n\n";
} }
} }
#endif
//printf("parseCommentBlock [%s]\n",doc.data()); //printf("parseCommentBlock [%s]\n",doc.data());
while (parseCommentBlock( while (parseCommentBlock(
g_thisParser, g_thisParser,
...@@ -4426,6 +4441,7 @@ static void handleCommentBlock(const QCString &doc,bool brief) ...@@ -4426,6 +4441,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
brief ? current->briefLine : current->docLine, // line of block start brief ? current->briefLine : current->docLine, // line of block start
docBlockInBody ? FALSE : brief, docBlockInBody ? FALSE : brief,
docBlockInBody ? FALSE : docBlockJavaStyle, docBlockInBody ? FALSE : docBlockJavaStyle,
docBlockInBody,
protection, protection,
position, position,
needsEntry needsEntry
...@@ -4440,7 +4456,9 @@ static void handleCommentBlock(const QCString &doc,bool brief) ...@@ -4440,7 +4456,9 @@ static void handleCommentBlock(const QCString &doc,bool brief)
newEntry(); newEntry();
} }
#if 0
exit: exit:
#endif
if (docBlockTerm) if (docBlockTerm)
{ {
unput(docBlockTerm); unput(docBlockTerm);
...@@ -4479,6 +4497,7 @@ static void handleParametersCommentBlocks() ...@@ -4479,6 +4497,7 @@ static void handleParametersCommentBlocks()
current->docLine, // line of block start current->docLine, // line of block start
FALSE, FALSE,
FALSE, FALSE,
FALSE,
protection, protection,
position, position,
needsEntry needsEntry
......
...@@ -135,7 +135,6 @@ class Translator ...@@ -135,7 +135,6 @@ class Translator
virtual QCString trFunctionPrototypeDocumentation() = 0; virtual QCString trFunctionPrototypeDocumentation() = 0;
virtual QCString trTypedefDocumentation() = 0; virtual QCString trTypedefDocumentation() = 0;
virtual QCString trEnumerationTypeDocumentation() = 0; virtual QCString trEnumerationTypeDocumentation() = 0;
//virtual QCString trEnumerationValueDocumentation() = 0;
virtual QCString trFunctionDocumentation() = 0; virtual QCString trFunctionDocumentation() = 0;
virtual QCString trVariableDocumentation() = 0; virtual QCString trVariableDocumentation() = 0;
virtual QCString trCompounds() = 0; virtual QCString trCompounds() = 0;
...@@ -446,6 +445,7 @@ class Translator ...@@ -446,6 +445,7 @@ class Translator
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
virtual QCString trCallerGraph() = 0; virtual QCString trCallerGraph() = 0;
virtual QCString trEnumerationValueDocumentation() = 0;
}; };
......
...@@ -51,6 +51,10 @@ class TranslatorAdapter_1_4_6 : public TranslatorAdapterBase ...@@ -51,6 +51,10 @@ class TranslatorAdapter_1_4_6 : public TranslatorAdapterBase
{ {
return english.trCallerGraph(); return english.trCallerGraph();
} }
virtual QCString trEnumerationValueDocumentation()
{
return english.trEnumerationValueDocumentation();
}
}; };
class TranslatorAdapter_1_4_1 : public TranslatorAdapter_1_4_6 class TranslatorAdapter_1_4_1 : public TranslatorAdapter_1_4_6
......
...@@ -469,7 +469,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_4_6 ...@@ -469,7 +469,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_4_6
* documentation blocks for defines * documentation blocks for defines
*/ */
virtual QCString trDefineDocumentation() virtual QCString trDefineDocumentation()
{ return "Deinições e macros"; } { return "Definições e macros"; }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for function prototypes * of documentation blocks for function prototypes
......
...@@ -65,6 +65,9 @@ ...@@ -65,6 +65,9 @@
// 2004/09/14 - The new methods "since 1.3.9" implemented. // 2004/09/14 - The new methods "since 1.3.9" implemented.
// 2005/02/11 - The "never used" methods removed. // 2005/02/11 - The "never used" methods removed.
// 2005/03/08 - Update for "new since 1.4.1" (trOverloadText()) // 2005/03/08 - Update for "new since 1.4.1" (trOverloadText())
// 2006/05/10 - Update for "new since 1.4.6" -- trCallerGraph(),
// modified trCallGraph() to make the meaning unambiguous
// and clear in the Czech language.
// Todo // Todo
// ---- // ----
...@@ -1488,7 +1491,7 @@ class TranslatorCzech : public TranslatorAdapter_1_4_6 ...@@ -1488,7 +1491,7 @@ class TranslatorCzech : public TranslatorAdapter_1_4_6
/*! Put in front of the call graph for a function. */ /*! Put in front of the call graph for a function. */
virtual QCString trCallGraph() virtual QCString trCallGraph()
{ {
return decode("Graf volání pro tuto funkci:"); return decode("Tato funkce volá...");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1620,6 +1623,17 @@ class TranslatorCzech : public TranslatorAdapter_1_4_6 ...@@ -1620,6 +1623,17 @@ class TranslatorCzech : public TranslatorAdapter_1_4_6
"která má usnadnit používání. Od výše uvedené metody se liší " "která má usnadnit používání. Od výše uvedené metody se liší "
"pouze jinak zadávanými argumenty."); "pouze jinak zadávanými argumenty.");
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.4.6
//////////////////////////////////////////////////////////////////////////
virtual QCString trCallerGraph()
{
return decode("Tuto funkci volají...");
}
}; };
#endif // TRANSLATOR_CZ_H #endif // TRANSLATOR_CZ_H
...@@ -501,12 +501,6 @@ class TranslatorEnglish : public Translator ...@@ -501,12 +501,6 @@ class TranslatorEnglish : public Translator
virtual QCString trEnumerationTypeDocumentation() virtual QCString trEnumerationTypeDocumentation()
{ return "Enumeration Type Documentation"; } { return "Enumeration Type Documentation"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values
*/
virtual QCString trEnumerationValueDocumentation()
{ return "Enumerator Documentation"; }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for functions * of documentation blocks for functions
*/ */
...@@ -1624,11 +1618,19 @@ class TranslatorEnglish : public Translator ...@@ -1624,11 +1618,19 @@ class TranslatorEnglish : public Translator
// new since 1.4.6 // new since 1.4.6
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! This is used to introduce a caller (or called-by) graph */
virtual QCString trCallerGraph() virtual QCString trCallerGraph()
{ {
return "Here is the caller graph for this function:"; return "Here is the caller graph for this function:";
} }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values
*/
virtual QCString trEnumerationValueDocumentation()
{ return "Enumerator Documentation"; }
}; };
#endif #endif
...@@ -20,12 +20,13 @@ ...@@ -20,12 +20,13 @@
* Some notes: * Some notes:
* - It's posible that some sentences haven't got meaning because * - It's posible that some sentences haven't got meaning because
* some words haven't got translate in spanish. * some words haven't got translate in spanish.
* Updated from 1.3.8 to 1.4.6 by Guillermo Ballester Valor (May-05-2006)
*/ */
#ifndef TRANSLATOR_ES_H #ifndef TRANSLATOR_ES_H
#define TRANSLATOR_ES_H #define TRANSLATOR_ES_H
class TranslatorSpanish : public TranslatorAdapter_1_3_8 class TranslatorSpanish : public TranslatorAdapter_1_4_6
{ {
public: public:
virtual QCString idLanguage() virtual QCString idLanguage()
...@@ -1376,6 +1377,76 @@ class TranslatorSpanish : public TranslatorAdapter_1_3_8 ...@@ -1376,6 +1377,76 @@ class TranslatorSpanish : public TranslatorAdapter_1_3_8
return "Coincidencias:"; return "Coincidencias:";
} }
//////////////////////////////////////////////////////////////////////////
// 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 "Fichero Fuente " + filename;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.9
//////////////////////////////////////////////////////////////////////////
/*! This is used as the name of the chapter containing the directory
* hierarchy.
*/
virtual QCString trDirIndex()
{ return "Jerarquía de Directorio"; }
/*! This is used as the name of the chapter containing the documentation
* of the directories.
*/
virtual QCString trDirDocumentation()
{ return "Documentación de Directorio"; }
/*! This is used as the title of the directory index and also in the
* Quick links of an HTML page, to link to the directory hierarchy.
*/
virtual QCString trDirectories()
{ return "Directorios"; }
/*! This returns a sentences that introduces the directory hierarchy.
* and the fact that it is sorted alphabetically per level
*/
virtual QCString trDirDescription()
{ return "La jeraquía de este directorio está ordenada casi, "
"pero no completamente, de forma alfabética:";
}
/*! This returns the title of a directory page. The name of the
* directory is passed via \a dirName.
*/
virtual QCString trDirReference(const char *dirName)
{ QCString result="Referencia del Directorio "; result+=dirName; return result; }
/*! This returns the word directory with or without starting capital
* (\a first_capital) and in sigular or plural form (\a singular).
*/
virtual QCString trDir(bool first_capital, bool singular)
{
QCString result((first_capital ? "Directori" : "directori"));
if (singular) result+="o"; else result+="os";
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.4.1
//////////////////////////////////////////////////////////////////////////
/*! This text is added to the documentation when the \\overload command
* is used for a overloaded function.
*/
virtual QCString trOverloadText()
{
return "Esta es una función miembro sobrecargada que se "
"suministra por conveniencia. Difiere de la anterior "
"función solamente en los argumentos que acepta.";
}
}; };
......
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
* *
* Revision history * Revision history
* *
* 2006/05: translated new items used since version 1.4.6
* corrected typo in trPackageMembers method
* 2005/03: translated new items used since version 1.4.1 * 2005/03: translated new items used since version 1.4.1
* removed unused methods listed in Petr Prikryl February 28 translator report * removed unused methods listed in Petr Prikryl February 28 translator report
* 2004/09: translated new items used since version 1.3.9 * 2004/09: translated new items used since version 1.3.9
...@@ -1362,7 +1364,7 @@ class TranslatorItalian : public TranslatorAdapter_1_4_6 ...@@ -1362,7 +1364,7 @@ class TranslatorItalian : public TranslatorAdapter_1_4_6
*/ */
virtual QCString trPackageMembers() virtual QCString trPackageMembers()
{ {
return "Funczioni con visibilità di package"; return "Funzioni con visibilità di package";
} }
/*! Used as a heading for a list of static Java class functions with /*! Used as a heading for a list of static Java class functions with
* package scope. * package scope.
...@@ -1524,6 +1526,15 @@ class TranslatorItalian : public TranslatorAdapter_1_4_6 ...@@ -1524,6 +1526,15 @@ class TranslatorItalian : public TranslatorAdapter_1_4_6
"unicamente per gli argomenti passati."; "unicamente per gli argomenti passati.";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.4.6
//////////////////////////////////////////////////////////////////////////
virtual QCString trCallerGraph()
{
return "Questo è il grafo dei chiamanti di questa funzione:";
}
}; };
#endif #endif
...@@ -8,7 +8,7 @@ TEMPLATE = app ...@@ -8,7 +8,7 @@ TEMPLATE = app
CONFIG = qt warn_on release CONFIG = qt warn_on release
TMAKE_CC = cc TMAKE_CC = cc
TMAKE_CFLAGS = -pipe -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc TMAKE_CFLAGS = -pipe
TMAKE_CFLAGS_WARN_ON = -Wall -W TMAKE_CFLAGS_WARN_ON = -Wall -W
TMAKE_CFLAGS_WARN_OFF = TMAKE_CFLAGS_WARN_OFF =
TMAKE_CFLAGS_RELEASE = -O2 TMAKE_CFLAGS_RELEASE = -O2
...@@ -36,7 +36,7 @@ TMAKE_LIBDIR_OPENGL = /usr/X11R6/lib ...@@ -36,7 +36,7 @@ TMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
TMAKE_LINK = c++ TMAKE_LINK = c++
TMAKE_LINK_SHLIB = c++ TMAKE_LINK_SHLIB = c++
TMAKE_LFLAGS = -Wl,-search_paths_first -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc TMAKE_LFLAGS = -Wl,-search_paths_first
TMAKE_LFLAGS_RELEASE = TMAKE_LFLAGS_RELEASE =
TMAKE_LFLAGS_DEBUG = TMAKE_LFLAGS_DEBUG =
TMAKE_LFLAGS_SHLIB = -shared TMAKE_LFLAGS_SHLIB = -shared
......
#! Use the common Unix template
#$ IncludeTemplate("../unix/app.t");
#! Use the common Unix template
#$ IncludeTemplate("../unix/lib.t");
#! Use the common Unix template
#$ IncludeTemplate("../unix/subdirs.t");
#
#
#
# tmake configuration for macosx-c++
#
TEMPLATE = app
CONFIG = qt warn_on release
TMAKE_CC = cc
TMAKE_CFLAGS = -pipe -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc
TMAKE_CFLAGS_WARN_ON = -Wall -W
TMAKE_CFLAGS_WARN_OFF =
TMAKE_CFLAGS_RELEASE = -O2
TMAKE_CFLAGS_DEBUG = -g
TMAKE_CFLAGS_SHLIB = -fPIC
TMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
TMAKE_CXX = c++
TMAKE_CXXFLAGS = $$TMAKE_CFLAGS -D__FreeBSD__=6
TMAKE_CXXFLAGS_WARN_ON = $$TMAKE_CFLAGS_WARN_ON
TMAKE_CXXFLAGS_WARN_OFF = $$TMAKE_CFLAGS_WARN_OFF
TMAKE_CXXFLAGS_RELEASE = $$TMAKE_CFLAGS_RELEASE
TMAKE_CXXFLAGS_DEBUG = $$TMAKE_CFLAGS_DEBUG
TMAKE_CXXFLAGS_SHLIB = $$TMAKE_CFLAGS_SHLIB
TMAKE_CXXFLAGS_YACC = $$TMAKE_CFLAGS_YACC
TMAKE_INCDIR =
TMAKE_LIBDIR =
TMAKE_INCDIR_X11 =
TMAKE_LIBDIR_X11 =
TMAKE_INCDIR_QT = $(QTDIR)/include
TMAKE_LIBDIR_QT = $(QTDIR)/lib
TMAKE_INCDIR_OPENGL = /usr/X11R6/include
TMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
TMAKE_LINK = c++
TMAKE_LINK_SHLIB = c++
TMAKE_LFLAGS = -Wl,-search_paths_first -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc
TMAKE_LFLAGS_RELEASE =
TMAKE_LFLAGS_DEBUG =
TMAKE_LFLAGS_SHLIB = -shared
TMAKE_LFLAGS_SONAME = -dynamiclib -install_name
TMAKE_LIBS =
TMAKE_LIBS_X11 =
TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
TMAKE_MOC = moc
TMAKE_AR = ar cq
TMAKE_RANLIB = ranlib
TMAKE_TAR = tar -cf
TMAKE_GZIP = gzip -9f
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