diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/Makefile.in | 4 | ||||
-rw-r--r-- | doc/commands.doc | 4 | ||||
-rw-r--r-- | doc/config.doc | 2 | ||||
-rw-r--r-- | doc/diagrams.doc | 4 | ||||
-rw-r--r-- | doc/docblocks.doc | 11 | ||||
-rw-r--r-- | doc/doxysearch_usage.doc | 4 | ||||
-rw-r--r-- | doc/features.doc | 2 | ||||
-rw-r--r-- | doc/index.doc | 2 | ||||
-rw-r--r-- | doc/install.doc | 8 | ||||
-rw-r--r-- | doc/language.doc | 342 | ||||
-rw-r--r-- | doc/translator.pl | 132 |
11 files changed, 298 insertions, 217 deletions
diff --git a/doc/Makefile.in b/doc/Makefile.in index c330d4f..db61bf9 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -1,5 +1,5 @@ # -# $Id$ +# # # Copyright (C) 1997-2001 by Dimitri van Heesch. # @@ -30,7 +30,7 @@ clean: language: language.doc -language.doc: maintainers.txt language.tpl translator.pl +language.doc: $(wildcard ../src/translator*.h) maintainers.txt language.tpl translator.pl $(PERL) translator.pl FORCE: diff --git a/doc/commands.doc b/doc/commands.doc index 087fad0..bfee043 100644 --- a/doc/commands.doc +++ b/doc/commands.doc @@ -1439,9 +1439,9 @@ Public/Protected/Private/... section. \warning The image format for HTML is limited to what your browser supports. For \f$\mbox{\LaTeX}\f$ the image format - must be Encapsulated PostScipt (eps). + must be Encapsulated PostScript (eps). <br><br> - doxygen does not check if the image is in the correct format. + Doxygen does not check if the image is in the correct format. So \e you have to make sure this is the case! <hr> diff --git a/doc/config.doc b/doc/config.doc index 13d3991..8a4a2f3 100644 --- a/doc/config.doc +++ b/doc/config.doc @@ -16,8 +16,6 @@ */ /*! \page config Configuration -\section config Configuration - \subsection config_format Format A configuration file is a free-form ASCII text file with a structure that diff --git a/doc/diagrams.doc b/doc/diagrams.doc index 3217800..a89b878 100644 --- a/doc/diagrams.doc +++ b/doc/diagrams.doc @@ -90,8 +90,8 @@ <li> A \b white box indicates a class or struct or file. <li> A box with a \b red border indicates a node that has \e more arrows than are shown! - In order words: the graph is \e truncated with respect to this node. - The reason a graph is sometimes truncated is to prevent images + In other words: the graph is \e truncated with respect to this node. + The reason why a graph is sometimes truncated is to prevent images from becoming too large. For the graphs generated with dot doxygen tries to limit the width of the resulting image to 1024 pixels. diff --git a/doc/docblocks.doc b/doc/docblocks.doc index bb73ccb..611f0ee 100644 --- a/doc/docblocks.doc +++ b/doc/docblocks.doc @@ -180,16 +180,19 @@ additional comment blocks: \verbatim /*!< ... */ \endverbatim -This block can be used to put a Qt style documentation blocks after a member. -The one line version look as follows: +This block can be used to put a Qt style detailed +documentation block after a member. +The one line brief description looks as follows: \verbatim //!< ... \endverbatim -There are also JavaDoc versions: +There are also JavaDoc versions for detailed documentation: \verbatim /**< ... */ \endverbatim -and +(where the first sentence is the brief description +if \c JAVADOC_AUTOBRIEF is set to \c YES) +and there is a separate brief description as well: \verbatim ///< ... \endverbatim diff --git a/doc/doxysearch_usage.doc b/doc/doxysearch_usage.doc index 6d6ad29..e878a9c 100644 --- a/doc/doxysearch_usage.doc +++ b/doc/doxysearch_usage.doc @@ -98,7 +98,7 @@ follow these steps: Consult the manual of your HTTP daemon or your system administrator to find out where this directory resides on your system. -<li>Goto the directory where the generated HTML files are located and run +<li>Go to the directory where the generated HTML files are located and run doxytag as follows: <pre>doxytag -s search.idx</pre> This will create a search index with the name <code>search.idx</code>. @@ -120,7 +120,7 @@ Using <code>doxytag</code> and <code>doxysearch</code> it is possible to create the Qt documentation, without needing the sources! This can be done by carefully following these steps: <ol> -<li>Goto the html directory of the Qt-distribution: +<li>Go to the html directory of the Qt-distribution: <pre>cd $QTDIR/html</pre> <li>Generate the search index by typing: <pre>doxytag -s search.idx</pre> diff --git a/doc/features.doc b/doc/features.doc index 053a9db..71c2a1f 100644 --- a/doc/features.doc +++ b/doc/features.doc @@ -16,8 +16,6 @@ */ /*! \page features Features -\section features Features - \addindex features <UL> <li>Requires very little overhead from the writer of the documentation. diff --git a/doc/index.doc b/doc/index.doc index a66df37..c260a81 100644 --- a/doc/index.doc +++ b/doc/index.doc @@ -14,7 +14,7 @@ * input used in their production; they are not affected by this license. * */ -/*! \page index Index +/*! \page index \if logo_on <center> \htmlonly diff --git a/doc/install.doc b/doc/install.doc index 79743b9..abdf020 100644 --- a/doc/install.doc +++ b/doc/install.doc @@ -164,7 +164,7 @@ Compilation is now done by performing the following steps: Binaries are installed in the directory <code>\<prefix\>/bin</code>, documentation and examples in the directory <code>\<prefix\>/share/doc/packages/doxygen</code> (use - <code>DOCDIR\\<path\></code> after <code>make</code> to change this). + <code>make install DOCDIR=\<path\></code> to change this). <code>\<prefix\></code> defaults to /usr but can be changed with the <code>--prefix</code> option of the configure script. @@ -274,7 +274,7 @@ ce_parse.cpp: I tried compiling doxygen only with Sun's C++ WorkShop Compiler version 5.0 (I used <code>./configure --platform solaris-cc</code>) -Qt-2.x.x is required for this compiler (Qt-1.44 has problems with the bool +Qt-2.x.y is required for this compiler (Qt-1.44 has problems with the bool type). Compiling the \c doxygen binary went ok, but while linking <code>doxytag</code> I got a @@ -386,7 +386,7 @@ Here is what is required: steps. <li>From Doxygen-1.2.2-20001015 onwards, the distribution includes the part - of Qt-2.x.x that is needed for to compile doxygen, doxytag, + of Qt-2.x.y that is needed for to compile doxygen, doxytag, and doxysearch. The Windows specific part were also created. As a result doxygen can be compiled on systems without X11 or the commerical version of Qt. @@ -497,7 +497,7 @@ Compilation is now done by performing the following steps: \subsection install_bin_windows Installating the binaries on Windows -There is no fancy installation procedure at the moment (If anyone wants +There is no fancy installation procedure at the moment (if anyone wants to add it please let me know). To install doxygen, just copy the binaries from the <code>bin</code> directory diff --git a/doc/language.doc b/doc/language.doc index 41e346e..9f9911f 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -1,5 +1,8 @@ /****************************************************************************** + * Warning: this file was generated from the language.tpl template + * and the maintainers.txt files by the translator.pl script. * + * Do not edit this file. Edit the above mentioned files! * * * Copyright (C) 1997-2001 by Dimitri van Heesch. @@ -22,9 +25,18 @@ Doxygen has support for multiple languages. This means that the text fragments that doxygen generates can changed into languages other than English (the default) at configuration time. <p> -Currently, supported for over 20 languages is available. +Currently (version unknown), 23 languages +are supported (sorted alphabetically): +Brazilian Portuguese, Chinese, Croatian, Czech, Danish, +Dutch, English, Finnish, French, German, +Hungarian, Italian, Japanese, Korean, Norwegian, +Polish, Portuguese, Romanian, Russian, Slovak, +Slovene, Spanish, and Swedish. -Here is a list of the languages and their current maintainers: +The table of information related to the supported languages follows. +It is sorted by language alphabetically. The <B>Status</B> column +was generated from sources and shows approximately the last version +when the translator was updated. <p> \htmlonly @@ -37,184 +49,145 @@ Here is a list of the languages and their current maintainers: <TD ><b><font size=+1 color="#ffffff"> Maintainer </font></b></TD> <TD ><b><font size=+1 color="#ffffff"> Contact address </font> <font size=-2 color="#ffffff">(remove the NOSPAM.)</font></b></TD> + <TD ><b><font size=+1 color="#ffffff"> Status </font></b></TD> + </TR> <TR BGCOLOR="#ffffff"> - <TD> - German - </TD> - <TD> - Jens Breitenstein - </TD> - <TD> - <a href="mailto:Jens.Breitenstein@NOSPAM.tlc.de"> - Jens.Breitenstein@NOSPAM.tlc.de</a> - </TD> + <TD>Brazilian</TD> + <TD>Fabio "FJTC" Jun Takada Chino</TD> + <TD>chino@NOSPAM.grad.icmc.sc.usp.br</TD> + <TD>up-to-date</TD> </TR> <TR BGCOLOR="#ffffff"> - <TD> - French - </TD> - <TD> - Christophe Bordeux - </TD> - <TD> - <a href="mailto:bordeux@NOSPAM.lig.di.epfl.ch"> - bordeux@NOSPAM.lig.di.epfl.ch</a> - </TD> + <TD>Chinese</TD> + <TD>Wang Weihan</TD> + <TD>wangweihan@NOSPAM.capinfo.com.cn</TD> + <TD>1.2.1</TD> </TR> <TR BGCOLOR="#ffffff"> - <TD> - Swedish - </TD> - <TD> - Samuel Hägglund<BR> - XeT Erixon - </TD> - <TD> - <a href="mailto:sahag96@NOSPAM.nts.mh.se"> - sahag96@NOSPAM.nts.mh.se</a><br> - <a href="mailto:xet@NOSPAM.hem.passagen.se"> - xet@NOSPAM.hem.passagen.se</a> - </TD> + <TD>Croatian</TD> + <TD>Boris Bralo</TD> + <TD>boris.bralo@NOSPAM.zg.tel.hr</TD> + <TD>up-to-date</TD> </TR> <TR BGCOLOR="#ffffff"> - <TD> - Czech - </TD> - <TD> - Petr Prikryl<BR> - Vlastimil Havran - </TD> - <TD> - <a href="mailto:prikrylp@NOSPAM.skil.cz"> - prikrylp@NOSPAM.skil.cz</a> - <a href="mailto:havran@NOSPAM.fel.cvut.cz"> - havran@NOSPAM.fel.cvut.cz</a> - </TD> + <TD>Czech</TD> + <TD>Petr Přikryl<br>Vlastimil Havran</TD> + <TD>prikrylp@NOSPAM.skil.cz<br>havran@NOSPAM.fel.cvut.cz</TD> + <TD>up-to-date</TD> </TR> <TR BGCOLOR="#ffffff"> - <TD> - Italian - </TD> - <TD> - Ahmed Aldo Faisal<br> - Alessandro Falappa - </TD> - <TD> - <a href="mailto:aaf23@NOSPAM.cam.ac.uk"> - aaf23@NOSPAM.cam.ac.uk</a><br> - <a href="mailto:a.falappa@NOSPAM.flashnet.it"> - a.falappa@NOSPAM.flashnet.it</a> - </TD> + <TD>Danish</TD> + <TD>Erik Søe Sørensen</TD> + <TD>erik@NOSPAM.mail.nu</TD> + <TD>1.2.7</TD> </TR> <TR BGCOLOR="#ffffff"> - <TD> - Japanese - </TD> - <TD> - Kenji Nagamatsu - </TD> - <TD> - <a href="mailto:naga@NOSPAM.joyful.club.ne.jp"> - naga@NOSPAM.joyful.club.ne.jp</a> - </TD> + <TD>Dutch</TD> + <TD>Dimitri van Heesch</TD> + <TD>dimitri@NOSPAM.stack.nl</TD> + <TD>up-to-date</TD> </TR> <TR BGCOLOR="#ffffff"> - <TD> - Spanish - </TD> - <TD> - Francisco Oltra Thennet - </TD> - <TD> - <a href="mailto:foltra@NOSPAM.puc.cl"> - foltra@NOSPAM.puc.cl</a> - </TD> + <TD>English</TD> + <TD>Dimitri van Heesch</TD> + <TD>dimitri@NOSPAM.stack.nl</TD> + <TD>up-to-date</TD> </TR> <TR BGCOLOR="#ffffff"> - <TD> - Finnish - </TD> - <TD> - Olli Korhonen - </TD> - <TD> - <a href="mailto:Olli.Korhonen@NOSPAM.ccc.fi"> - Olli.Korhonen@NOSPAM.ccc.fi</a> - </TD> + <TD>Finnish</TD> + <TD>Olli Korhonen</TD> + <TD>Olli.Korhonen@NOSPAM.ccc.fi</TD> + <TD>1.0.0</TD> </TR> <TR BGCOLOR="#ffffff"> - <TD> - Russian - </TD> - <TD> - Alexandr Chelpanov - </TD> - <TD> - <a href="mailto:cav@NOSPAM.cryptopro.ru"> - cav@NOSPAM.cryptopro.ru</a> - </TD> + <TD>French</TD> + <TD>Christophe Bordeux</TD> + <TD>bordeux@NOSPAM.lig.di.epfl.ch</TD> + <TD>1.2.0</TD> </TR> <TR BGCOLOR="#ffffff"> - <TD> - Korean - </TD> - <TD> - Richard Kim - </TD> - <TD> - <a href="mailto:ryk@NOSPAM.dspwiz.com"> - ryk@NOSPAM.dspwiz.com</a> - </TD> + <TD>German</TD> + <TD>Jens Seidel<br>Jens Breitenstein</TD> + <TD>jensseidel@NOSPAM.users.sourceforge.net<br>Jens.Breitenstein@NOSPAM.tlc.de</TD> + <TD>up-to-date</TD> </TR> <TR BGCOLOR="#ffffff"> - <TD> - Hungarian - </TD> - <TD> - Földvári György - </TD> - <TD> - <a href="mailto:foldvari@NOSPAM.diatronltd.com"> - foldvari@NOSPAM.diatronltd.com</a> - </TD> + <TD>Hungarian</TD> + <TD>Földvári György</TD> + <TD>foldvari@NOSPAM.diatronltd.com</TD> + <TD>1.2.1</TD> </TR> <TR BGCOLOR="#ffffff"> - <TD> - Croatian - </TD> - <TD> - Boris Bralo - </TD> - <TD> - <a href="mailto:boris.bralo@NOSPAM.zg.tel.hr"> - boris.bralo@NOSPAM.zg.tel.hr</a> - </TD> + <TD>Italian</TD> + <TD>Ahmed Aldo Faisal<br>Alessandro Falappa</TD> + <TD>aaf23@NOSPAM.cam.ac.uk<br>a.falappa@NOSPAM.flashnet.it</TD> + <TD>1.2.7</TD> </TR> <TR BGCOLOR="#ffffff"> - <TD> - Polish - </TD> - <TD> - Grzegorz Kowal - </TD> - <TD> - <a href="mailto:g_kowal@NOSPAM.poczta.onet.pl"> - g_kowal@NOSPAM.poczta.onet.pl</a> - </TD> + <TD>Japanese</TD> + <TD>Kenji Nagamatsu</TD> + <TD>naga@NOSPAM.joyful.club.ne.jp</TD> + <TD>1.2.5</TD> + </TR> + <TR BGCOLOR="#ffffff"> + <TD>Korean</TD> + <TD>Richard Kim</TD> + <TD>ryk@NOSPAM.dspwiz.com</TD> + <TD>1.1.0</TD> + </TR> + <TR BGCOLOR="#ffffff"> + <TD>Norwegian</TD> + <TD>Lars Erik Jordet</TD> + <TD>larsej@NOSPAM.stud.ifd.hibu.no</TD> + <TD>1.2.2</TD> + </TR> + <TR BGCOLOR="#ffffff"> + <TD>Polish</TD> + <TD>Grzegorz Kowal</TD> + <TD>g_kowal@NOSPAM.poczta.onet.pl</TD> + <TD>1.2.1</TD> + </TR> + <TR BGCOLOR="#ffffff"> + <TD>Portuguese</TD> + <TD>Rui Godinho Lopes</TD> + <TD>ruiglopes@NOSPAM.yahoo.com</TD> + <TD>1.1.5</TD> + </TR> + <TR BGCOLOR="#ffffff"> + <TD>Romanian</TD> + <TD>Alexandru Iosup</TD> + <TD>aiosup@NOSPAM.yahoo.com</TD> + <TD>1.2.1</TD> + </TR> + <TR BGCOLOR="#ffffff"> + <TD>Russian</TD> + <TD>Alexandr Chelpanov</TD> + <TD>cav@NOSPAM.cryptopro.ru</TD> + <TD>up-to-date</TD> </TR> - - <TR BGCOLOR="#ffffff"> - <TD> - Dutch - </TD> - <TD> - Dimitri van Heesch - </TD> - <TD> - <a href="mailto:dimitri@NOSPAM.stack.nl"> - dimitri@NOSPAM.stack.nl</a> - </TD> + <TD>Slovak</TD> + <TD>Stanislav Kudlac</TD> + <TD>qwerty1@NOSPAM.pobox.sk</TD> + <TD>1.2.7</TD> + </TR> + <TR BGCOLOR="#ffffff"> + <TD>Slovene</TD> + <TD>Matjaz Ostroversnik</TD> + <TD>matjaz.ostroversnik@NOSPAM.zrs-tk.si</TD> + <TD>1.1.5</TD> + </TR> + <TR BGCOLOR="#ffffff"> + <TD>Spanish</TD> + <TD>Francisco Oltra Thennet</TD> + <TD>foltra@NOSPAM.puc.cl</TD> + <TD>1.2.7</TD> + </TR> + <TR BGCOLOR="#ffffff"> + <TD>Swedish</TD> + <TD>Samuel Häagglund<br>XeT Erixon</TD> + <TD>sahag96@NOSPAM.nts.mh.se<br>xet@NOSPAM.hem.passagen.se</TD> + <TD>1.0.0</TD> </TR> </TABLE> </TD> @@ -222,43 +195,66 @@ Here is a list of the languages and their current maintainers: </TABLE> \endhtmlonly \latexonly -\begin{tabular}{|l|l|l|} +\begin{tabular}{|l|l|l|l|} + \hline + {\bf Language} & {\bf Maintainer} & {\bf Contact address} & {\bf Status} \\ + \hline + \hline + Brazilian & Fabio "FJTC" Jun Takada Chino & {\tt chino@grad.icmc.sc.usp.br} & up-to-date \\ + \hline + Chinese & Wang Weihan & {\tt wangweihan@capinfo.com.cn} & 1.2.1 \\ \hline - {\bf Language} & {\bf Maintainer} & {Contact address} \\ + Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} & up-to-date \\ \hline - German & Jens Breitenstein & {\tt Jens.Breitenstein@tlc.de} \\ + Czech & Petr P\v{r}ikryl & {\tt prikrylp@skil.cz} & up-to-date \\ + & Vlastimil Havran & {\tt havran@fel.cvut.cz} & \\ \hline - French & Christophe Bordeux & {\tt bordeux@lig.di.epfl.ch} \\ + Danish & Erik S\o{}e S\o{}rensen & {\tt erik@mail.nu} & 1.2.7 \\ \hline - Swedish & Samuel H\"agglund & {\tt sahag96@nts.mh.se} \\ - & XeT Erixon & {\tt xet@hem.passagen.se} \\ + Dutch & Dimitri van Heesch & {\tt dimitri@stack.nl} & up-to-date \\ \hline - Czech & Petr Prikryl & {\tt prikrylp@skil.cz} \\ - & Vlastimil Havran & {\tt havran@fel.cvut.cz} \\ + English & Dimitri van Heesch & {\tt dimitri@stack.nl} & up-to-date \\ \hline - Italian & Ahmed Aldo Faisal & {\tt aaf23@cam.ac.uk} \\ - & Alessandro Falappa & {\tt a.falappa@flashnet.it} \\ + Finnish & Olli Korhonen & {\tt Olli.Korhonen@ccc.fi} & 1.0.0 \\ \hline - Japanese & Kenji Nagamatsu & {\tt naga@joyful.club.ne.jp} \\ + French & Christophe Bordeux & {\tt bordeux@lig.di.epfl.ch} & 1.2.0 \\ \hline - Spanish & Francisco Oltra Thennet & {\tt foltra@puc.cl} \\ + German & Jens Seidel & {\tt jensseidel@users.sourceforge.net} & up-to-date \\ + & Jens Breitenstein & {\tt Jens.Breitenstein@tlc.de} & \\ \hline - Finnish & Olli Korhonen & {\tt Olli.Korhonen@ccc.fi} \\ + Hungarian & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt foldvari@diatronltd.com} & 1.2.1 \\ \hline - Russian & Alexandr Chelpanov & {\tt cav@cryptopro.ru} \\ + Italian & Ahmed Aldo Faisal & {\tt aaf23@cam.ac.uk} & 1.2.7 \\ + & Alessandro Falappa & {\tt a.falappa@flashnet.it} & \\ \hline - Korean & Richard Kim & {\tt ryk@dspwiz.com} \\ + Japanese & Kenji Nagamatsu & {\tt naga@joyful.club.ne.jp} & 1.2.5 \\ \hline - Hungarian & Földvári György & {\tt foldvari@diatronltd.com} \\ + Korean & Richard Kim & {\tt ryk@dspwiz.com} & 1.1.0 \\ \hline - Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} \\ + Norwegian & Lars Erik Jordet & {\tt larsej@stud.ifd.hibu.no} & 1.2.2 \\ \hline - Polish & Grzegorz Kowal & {\tt g\_kowal@poczta.onet.pl} \\ + Polish & Grzegorz Kowal & {\tt g\_kowal@poczta.onet.pl} & 1.2.1 \\ \hline - Dutch & Dimitri van Heesch & {\tt dimitri@stack.nl} \\ + Portuguese & Rui Godinho Lopes & {\tt ruiglopes@yahoo.com} & 1.1.5 \\ + \hline + Romanian & Alexandru Iosup & {\tt aiosup@yahoo.com} & 1.2.1 \\ + \hline + Russian & Alexandr Chelpanov & {\tt cav@cryptopro.ru} & up-to-date \\ + \hline + Slovak & Stanislav Kudlac & {\tt qwerty1@pobox.sk} & 1.2.7 \\ + \hline + Slovene & Matjaz Ostroversnik & {\tt matjaz.ostroversnik@zrs-tk.si} & 1.1.5 \\ + \hline + Spanish & Francisco Oltra Thennet & {\tt foltra@puc.cl} & 1.2.7 \\ + \hline + Swedish & Samuel H\"{a}agglund & {\tt sahag96@nts.mh.se} & 1.0.0 \\ + & XeT Erixon & {\tt xet@hem.passagen.se} & \\ \hline \end{tabular} \endlatexonly + +Have a look at <a href="../doc/translator_report.txt" +><code>doxygen/doc/translator_report.txt</code></a> for more details. <p> Most people on the list have indicated that they were also busy @@ -348,7 +344,7 @@ maintenance is needed. By looking at the adapter class itself (and its base classes) you can easily see which methods need to be updated. To update a language simply make your translator class derive from -TranslatorAdapterBase and provide translations for the methods that +the abstract class Translator and provide translations for the methods that were previously provided by the adapter class (and its base classes). */ diff --git a/doc/translator.pl b/doc/translator.pl index 375fe2b..b0bb9e3 100644 --- a/doc/translator.pl +++ b/doc/translator.pl @@ -33,6 +33,11 @@ # 2001/05/18 # - Character entity ø recognized in maintainers.txt. # +# 2001/06/06 +# - Implementation of the methods recognized even when the +# argument list does not contain argument identifiers +# (i.e., when it contains type information only). +# ################################################################ require 5.005; @@ -59,9 +64,9 @@ my $fmaintainers = "maintainers.txt"; # database of local lang. maintainers ################################################################ -# GetPureVirtual returns a hash of pure virtual method prototypes -# in a hash where the key is the method prototype, and the value -# is 1. The input argument is the full name of the source file. +# GetPureVirtual returns the list of pure virtual method prototypes +# as separate strings (one prototype, one line, one list item). +# The input argument is the full name of the source file. # sub GetPureVirtualFrom ##{{{ { @@ -120,15 +125,59 @@ sub GetPureVirtualFrom ##{{{ # $cont =~ s{^virtual\s+}{}mg; - # Split the string into array of lines and fill the output hash. + # Split the string into array of lines and return it as + # the output list. # - my %result = (); + return split(/\n/, $cont); +} +##}}} + + +################################################################ +# StripArgIdentifiers takes a method prototype (one line string), +# removes the argument identifiers, and returns only the necessary +# form of the prototype. +# +sub StripArgIdentifiers ##{{{ +{ + my $prototype = shift; # Get the prototype string. - foreach (split(/\n/, $cont)) { - $result{$_} = 1; + # Extract the list of arguments from the prototype. + # + $prototype =~ s{^(.+\()(.*)(\).*)$}{$1#ARGS#$3}; + my $a = (defined $2) ? $2 : ''; + + # Split the list of arguments. + # + my @a = split(/,/, $a); + + # Strip each of the arguments. + # + my @stripped = (); + + foreach my $arg (@a) { + + $arg =~ s{^(\s* # there can be spaces behind comma, + (const\s+)? # possibly const at the beginning + [A-Za-z0-9_:]+ # type identifier can be qualified + (\s*[*&])? # could be reference or pointer + ) # ... the above is important, + .*$ # the rest contains the identifier + } + {$1}x; # remember only the important things + + push(@stripped, $arg); } - return %result; + # Join the stripped arguments into one line again, and + # insert it back. + # + $a = join(',', @stripped); + $prototype =~ s{#ARGS#}{$a}; + + # Finally, return the stripped prototype. + # + return $prototype; } ##}}} @@ -599,9 +648,22 @@ xxxTABLE_FOOTxxx # Get only the pure virtual methods from the Translator class # into a hash structure for later testing present/not present. # - my %required = GetPureVirtualFrom("$srcdir/translator.h"); + my @expected = GetPureVirtualFrom("$srcdir/translator.h"); - # Collect base classes of translators the hash. + # Remove the argument identifiers from the method prototypes + # to get only the required form of the prototype. Fill the + # hash with them. #{{{ + # + my %required = (); + + foreach (@expected) { + my $prototype = StripArgIdentifiers($_); + $required{$prototype} = 1; + } + ##}}} + + # Collect base classes of translators in the hash. CB stands + # for Class and Base. # my %cb = (); @@ -638,21 +700,46 @@ xxxTABLE_FOOTxxx # my @old_methods = (); - foreach my $method (@info) { - if (defined $required{$method}) { $required{$method} = 0; } - else {push(@old_methods, $method); } + foreach my $implemented (@info) { + + # Get only the necessary form of the prototype. + # + my $prototype = StripArgIdentifiers($implemented); + + # Mark as recognized when the prototype is required. + # Otherwise, remember it as old method which is + # implemented, but not required. + # + if (defined $required{$prototype}) { + $required{$prototype} = 0; + } + else { + push(@old_methods, $implemented); + } } ##}}} - # Loop through the required hash and collect the missing - # (new) methods. Do this only when it derives from - # Translator or TranslatorAdapter classes. #{{{ + # Loop through the list of expected methods and collect + # the missing (new) methods. Do this only when it derives + # from Translator or TranslatorAdapter classes (i.e. ignore + # any unusual kind of TranslatorXxxx implementation). #{{{ # my @missing_methods = (); if ($base =~ m/^Translator(Adapter.*)?$/) { - foreach (keys %required) { - if ($required{$_}) { push(@missing_methods, $_); } + foreach my $method (@expected) { + + # Get the stripped version of the prototype. + # + my $prototype = StripArgIdentifiers($method); + + # If the prototype is stored in the %required + # table, and if it was not marked as implemented, + # then it should be. It is a missing method. + # + if (defined $required{$prototype} && $required{$prototype}) { + push(@missing_methods, $method); + } } } ##}}} @@ -775,12 +862,13 @@ xxxTABLE_FOOTxxx ##}}} # List the methods that are expected to be implemented. #{{{ + # print FOUT "\n\n" .'-' x 70 . "\n"; print FOUT "Localized translators are expected to implement " . "the following methods\n" . "(prototypes sorted aplhabetically):\n\n"; - foreach (sort keys(%required)) { + foreach (sort @expected) { print FOUT "$_\n"; } ##}}} @@ -788,10 +876,8 @@ xxxTABLE_FOOTxxx # If there are some details for the translators, show them. #{{{ # if ($output !~ m/^\s*$/) { - print FOUT "\n\n" .'-' x 70 . "\n"; - print FOUT "Details related to specific translator classes follows.\n" - . "Notice that the prototypes are recognized only when they\n" - . "are the same as in the Translator class."; + print FOUT "\n\n" .'=' x 70 . "\n"; + print FOUT "Details related to specific translator classes follow.\n"; print FOUT $output . "\n"; } |