Commit 0b087b99 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.5.2-20070506

parent 80f45b62
DOXYGEN Version 1.5.2 DOXYGEN Version 1.5.2-20070506
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 (04 April 2007) Dimitri van Heesch (06 May 2007)
DOXYGEN Version 1.5.2 DOXYGEN Version 1.5.2_20070506
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) (04 April 2007) Dimitri van Heesch (dimitri@stack.nl) (06 May 2007)
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
* show some information about it. * show some information about it.
*/ */
#include </usr/include/unistd.h> // ugly hack to get the right unistd.h (doxygen has one too)
#include <stdlib.h> #include <stdlib.h>
#include "doxygen.h" #include "doxygen.h"
#include "outputgen.h" #include "outputgen.h"
......
...@@ -20,7 +20,7 @@ doxygen_version_minor=5 ...@@ -20,7 +20,7 @@ doxygen_version_minor=5
doxygen_version_revision=2 doxygen_version_revision=2
#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=NO doxygen_version_mmn=20070506
bin_dirs=`echo $PATH | sed -e "s/:/ /g"` bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
......
...@@ -84,10 +84,10 @@ ...@@ -84,10 +84,10 @@
For non overloaded members the argument list may be omitted. For non overloaded members the argument list may be omitted.
If a function is overloaded and no matching argument list is specified If a function is overloaded and no matching argument list is specified
(i.e. pattern 2 or 5 is used), a link will be created to the (i.e. pattern 2 or 6 is used), a link will be created to the
documentation of one of the overloaded members. documentation of one of the overloaded members.
For member functions the class scope (as used in patterns 4 to 6) may For member functions the class scope (as used in patterns 4 to 7) may
be omitted, if: be omitted, if:
<ol> <ol>
<li>The pattern points to a documented member that belongs to the same class <li>The pattern points to a documented member that belongs to the same class
...@@ -101,7 +101,7 @@ ...@@ -101,7 +101,7 @@
All of these entities can be linked to in the same way as described in the All of these entities can be linked to in the same way as described in the
previous section. For sake of clarity it is advised to only use previous section. For sake of clarity it is advised to only use
patterns 3 and 6 in this case. patterns 3 and 7 in this case.
\par Example: \par Example:
\verbinclude autolink.cpp \verbinclude autolink.cpp
......
...@@ -58,6 +58,7 @@ documentation: ...@@ -58,6 +58,7 @@ documentation:
\refitem cmddef \\def \refitem cmddef \\def
\refitem cmddefgroup \\defgroup \refitem cmddefgroup \\defgroup
\refitem cmddeprecated \\deprecated \refitem cmddeprecated \\deprecated
\refitem cmddetails \\details
\refitem cmddir \\dir \refitem cmddir \\dir
\refitem cmddontinclude \\dontinclude \refitem cmddontinclude \\dontinclude
\refitem cmddot \\dot \refitem cmddot \\dot
...@@ -863,6 +864,14 @@ is empty, \c TEST, \c DEV, or \c DEV \c TEST. ...@@ -863,6 +864,14 @@ is empty, \c TEST, \c DEV, or \c DEV \c TEST.
a deprecated entity. Can be used to describe alternatives, a deprecated entity. Can be used to describe alternatives,
expected life span, etc. expected life span, etc.
<hr>
\section cmddetails \\details {detailed decription}
\addindex \\details
Just like \ref cmdbrief "\\brief" starts a brief description, \\details
starts the detailed description. You can also start a new paragraph (blank line)
then the \\details command is not needed.
<hr> <hr>
\section cmdelse \\else \section cmdelse \\else
......
...@@ -85,6 +85,7 @@ followed by the descriptions of the tags grouped by category. ...@@ -85,6 +85,7 @@ followed by the descriptions of the tags grouped by category.
\refitem cfg_dot_path DOT_PATH \refitem cfg_dot_path DOT_PATH
\refitem cfg_dot_transparent DOT_TRANSPARENT \refitem cfg_dot_transparent DOT_TRANSPARENT
\refitem cfg_dotfile_dirs DOTFILE_DIRS \refitem cfg_dotfile_dirs DOTFILE_DIRS
\refitem cfg_doxyfile_encoding DOXYFILE_ENCODING
\refitem cfg_enable_preprocessing ENABLE_PREPROCESSING \refitem cfg_enable_preprocessing ENABLE_PREPROCESSING
\refitem cfg_enum_values_per_line ENUM_VALUES_PER_LINE \refitem cfg_enum_values_per_line ENUM_VALUES_PER_LINE
\refitem cfg_enabled_sections ENABLED_SECTIONS \refitem cfg_enabled_sections ENABLED_SECTIONS
...@@ -178,6 +179,7 @@ followed by the descriptions of the tags grouped by category. ...@@ -178,6 +179,7 @@ followed by the descriptions of the tags grouped by category.
\refitem cfg_predefined PREDEFINED \refitem cfg_predefined PREDEFINED
\refitem cfg_project_name PROJECT_NAME \refitem cfg_project_name PROJECT_NAME
\refitem cfg_project_number PROJECT_NUMBER \refitem cfg_project_number PROJECT_NUMBER
\refitem cfg_qt_autobrief QT_AUTOBRIEF
\refitem cfg_quiet QUIET \refitem cfg_quiet QUIET
\refitem cfg_recursive RECURSIVE \refitem cfg_recursive RECURSIVE
\refitem cfg_referenced_by_relation REFERENCED_BY_RELATION \refitem cfg_referenced_by_relation REFERENCED_BY_RELATION
...@@ -226,9 +228,18 @@ followed by the descriptions of the tags grouped by category. ...@@ -226,9 +228,18 @@ followed by the descriptions of the tags grouped by category.
\endsecreflist \endsecreflist
\section config_project Project related options \section config_project Project related options
\anchor cfg_project_name \anchor cfg_doxyfile_encoding
<dl> <dl>
<dt>\c DOXYFILE_ENCODING <dd>
\addindex DOXYFILE_ENCODING
This tag specifies the encoding used for all characters in the config file that
follow. The default is UTF-8 which is also the encoding used for all text before
the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into
libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of
possible encodings.
\anchor cfg_project_name
<dt>\c PROJECT_NAME <dd> <dt>\c PROJECT_NAME <dd>
\addindex PROJECT_NAME \addindex PROJECT_NAME
The \c PROJECT_NAME tag is a single word (or a sequence of words The \c PROJECT_NAME tag is a single word (or a sequence of words
...@@ -382,7 +393,17 @@ followed by the descriptions of the tags grouped by category. ...@@ -382,7 +393,17 @@ followed by the descriptions of the tags grouped by category.
If the \c JAVADOC_AUTOBRIEF is set to \c YES then doxygen If the \c JAVADOC_AUTOBRIEF is set to \c YES then doxygen
will interpret the first line (until the first dot) of a JavaDoc-style will interpret the first line (until the first dot) of a JavaDoc-style
comment as the brief description. If set to NO (the default), the comment as the brief description. If set to NO (the default), the
Javadoc-style will behave just like the Qt-style comments. Javadoc-style will behave just like regular Qt-style comments
(thus requiring an explicit \@brief command for a brief description.)
\anchor cfg_qt_autobrief
<dt>\c QT_AUTOBRIEF <dd>
\addindex QT_AUTOBRIEF
If the \c QT_AUTOBRIEF is set to \c YES then doxygen
will interpret the first line (until the first dot) of a Qt-style
comment as the brief description. If set to NO (the default), the
Qt-style will behave just like regular Qt-style comments (thus
requiring an explicit \\brief command for a brief description.)
\anchor cfg_builtin_stl_support \anchor cfg_builtin_stl_support
<dt>\c BUILTIN_STL_SUPPORT <dd> <dt>\c BUILTIN_STL_SUPPORT <dd>
...@@ -753,6 +774,8 @@ function's detailed documentation block. ...@@ -753,6 +774,8 @@ function's detailed documentation block.
If this tag is empty the current directory is searched. If this tag is empty the current directory is searched.
\anchor cfg_input_encoding \anchor cfg_input_encoding
<dt>\c INPUT_ENCODING <dd>
\addindex INPUT_ENCODING
This tag can be used to specify the character encoding of the source files that This tag can be used to specify the character encoding of the source files that
doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default
input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding. input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding.
......
...@@ -209,6 +209,10 @@ JavaDoc style and \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" set to YES: ...@@ -209,6 +209,10 @@ JavaDoc style and \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" set to YES:
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
Similarly, if one wishes the first sentence of a Qt style documentation
block to automatically be treated as a brief description, one may set
\ref cfg_qt_autobrief "QT_AUTOBRIEF" to YES in the configuration file.
Unlike most other documentation systems, doxygen also allows you to put Unlike most other documentation systems, doxygen also allows you to put
the documentation of members (including global functions) in front of the documentation of members (including global functions) in front of
the \e definition. This way the documentation can be placed in the source the \e definition. This way the documentation can be placed in the source
......
...@@ -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.5.1-20070219), 33 languages Currently (version 1.5.2), 33 languages
are supported (sorted alphabetically): are supported (sorted alphabetically):
Afrikaans, Arabic, Brazilian Portuguese, Catalan, Chinese, Chinese Afrikaans, Arabic, Brazilian Portuguese, Catalan, Chinese, Chinese
Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French, Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French,
......
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
2005/02/28 - Slight modification to generate "mailto.txt" auxiliary file. 2005/02/28 - Slight modification to generate "mailto.txt" auxiliary file.
2005/08/15 - Doxygen's root directory determined primarily from DOXYGEN 2005/08/15 - Doxygen's root directory determined primarily from DOXYGEN
environment variable. When not found, then relatively to the script. environment variable. When not found, then relatively to the script.
2007/03/20 - The "translate me!" searched in comments and reported if found.
""" """
from __future__ import generators from __future__ import generators
...@@ -162,11 +163,14 @@ class Transl: ...@@ -162,11 +163,14 @@ class Transl:
self.langReadable = None # like 'Brasilian Portuguese' self.langReadable = None # like 'Brasilian Portuguese'
self.note = None # like 'should be cleaned up' self.note = None # like 'should be cleaned up'
self.prototypeDic = {} # uniPrototype -> prototype self.prototypeDic = {} # uniPrototype -> prototype
self.translateMeText = 'translate me!'
self.translateMeFlag = False # comments with "translate me!" found
self.obsoleteMethods = None # list of prototypes to be removed self.obsoleteMethods = None # list of prototypes to be removed
self.missingMethods = None # list of prototypes to be implemented self.missingMethods = None # list of prototypes to be implemented
self.implementedMethods = None # list of implemented required methods self.implementedMethods = None # list of implemented required methods
self.adaptMinClass = None # The newest adapter class that can be used self.adaptMinClass = None # The newest adapter class that can be used
def __tokenGenerator(self): def __tokenGenerator(self):
"""Generator that reads the file and yields tokens as 4-tuples. """Generator that reads the file and yields tokens as 4-tuples.
...@@ -265,6 +269,12 @@ class Transl: ...@@ -265,6 +269,12 @@ class Transl:
sys.stderr.write(msg) sys.stderr.write(msg)
yield (tokenId, tokenStr, tokenLineNo) yield (tokenId, tokenStr, tokenLineNo)
# If it is a comment that contains the self.translateMeText
# string, set the flag -- the situation will be reported.
if tokenId == 'comment' and tokenStr.find(self.translateMeText) >= 0:
self.translateMeFlag = True
tokenId = None tokenId = None
tokenStr = '' tokenStr = ''
tokenLineNo = 0 tokenLineNo = 0
...@@ -1103,12 +1113,18 @@ class Transl: ...@@ -1103,12 +1113,18 @@ class Transl:
self.adaptMinClass = adaptMinClass self.adaptMinClass = adaptMinClass
self.readableStatus = adaptMinVersion # simplified self.readableStatus = adaptMinVersion # simplified
# If everything seems OK, but the explicit mark self.translateMeText
# in comments was found, something must be translated.
if not self.note and self.status == '' and self.translateMeFlag:
self.note = 'The "%s" found in a comment.' % self.translateMeText
# If everything seems OK, but there are obsolete methods, set # If everything seems OK, but there are obsolete methods, set
# the note to clean-up source. This note will be used only when # the note to clean-up source. This note will be used only when
# the previous code did not set another note (priority). # the previous code did not set another note (priority).
if not self.note and self.status == '' and self.obsoleteMethods: if not self.note and self.status == '' and self.obsoleteMethods:
self.note = 'Remove the obsolete methods (never used).' self.note = 'Remove the obsolete methods (never used).'
def report(self, fout): def report(self, fout):
"""Returns the report part for the source as a multiline string. """Returns the report part for the source as a multiline string.
......
(1.5.1-20070219) (1.5.2)
Doxygen supports the following 33 languages (sorted alphabetically): Doxygen supports the following 33 languages (sorted alphabetically):
...@@ -17,20 +17,20 @@ alphabetically). This means that they derive from the Translator class ...@@ -17,20 +17,20 @@ alphabetically). This means that they derive from the Translator class
and they implement all 194 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:
TranslatorBrazilian TranslatorBrazilian -- The "translate me!" found in a comment.
TranslatorCatalan TranslatorCatalan
TranslatorChinese TranslatorChinese -- The "translate me!" found in a comment.
TranslatorCroatian TranslatorCroatian -- The "translate me!" found in a comment.
TranslatorCzech TranslatorCzech
TranslatorDanish TranslatorDanish -- The "translate me!" found in a comment.
TranslatorDutch TranslatorDutch
TranslatorEnglish TranslatorEnglish
TranslatorFrench TranslatorFrench
TranslatorGerman TranslatorGerman -- The "translate me!" found in a comment.
TranslatorGreek -- Remove the obsolete methods (never used). TranslatorGreek -- The "translate me!" found in a comment.
TranslatorItalian TranslatorItalian -- The "translate me!" found in a comment.
TranslatorJapanese -- Remove the obsolete methods (never used). TranslatorJapanese -- Remove the obsolete methods (never used).
TranslatorRussian TranslatorRussian -- The "translate me!" found in a comment.
TranslatorSpanish TranslatorSpanish
---------------------------------------------------------------------- ----------------------------------------------------------------------
...@@ -105,6 +105,18 @@ TranslatorArabic (TranslatorAdapter_1_4_6) 1 method to implement ...@@ -105,6 +105,18 @@ TranslatorArabic (TranslatorAdapter_1_4_6) 1 method to implement
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorBrazilian (Translator)
-------------------
Implements 194 of the required methods.
TranslatorChinese (Translator)
-----------------
Implements 194 of the required methods.
TranslatorChinesetraditional (TranslatorAdapter_1_4_6) 1 method to implement TranslatorChinesetraditional (TranslatorAdapter_1_4_6) 1 method to implement
---------------------------- ----------------------------
...@@ -127,6 +139,18 @@ TranslatorChinesetraditional (TranslatorAdapter_1_4_6) 1 method to implement ...@@ -127,6 +139,18 @@ TranslatorChinesetraditional (TranslatorAdapter_1_4_6) 1 method to implement
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorCroatian (Translator)
------------------
Implements 194 of the required methods.
TranslatorDanish (Translator)
----------------
Implements 194 of the required methods.
TranslatorFinnish (TranslatorEnglish) 96 methods to implement TranslatorFinnish (TranslatorEnglish) 96 methods to implement
----------------- -----------------
...@@ -243,6 +267,12 @@ TranslatorFinnish (TranslatorEnglish) 96 methods to implement ...@@ -243,6 +267,12 @@ TranslatorFinnish (TranslatorEnglish) 96 methods to implement
QCString trNoDescriptionAvailable() QCString trNoDescriptionAvailable()
TranslatorGerman (Translator)
----------------
Implements 194 of the required methods.
TranslatorGreek (Translator) TranslatorGreek (Translator)
--------------- ---------------
...@@ -294,6 +324,12 @@ TranslatorIndonesian (TranslatorAdapter_1_4_6) 1 method to implement ...@@ -294,6 +324,12 @@ TranslatorIndonesian (TranslatorAdapter_1_4_6) 1 method to implement
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorItalian (Translator)
-----------------
Implements 194 of the required methods.
TranslatorJapanese (Translator) TranslatorJapanese (Translator)
------------------ ------------------
...@@ -485,6 +521,12 @@ TranslatorRomanian (TranslatorAdapter_1_4_1) 2 methods to implement ...@@ -485,6 +521,12 @@ TranslatorRomanian (TranslatorAdapter_1_4_1) 2 methods to implement
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorRussian (Translator)
-----------------
Implements 194 of the required methods.
TranslatorSerbian (TranslatorAdapter_1_4_1) 2 methods to implement TranslatorSerbian (TranslatorAdapter_1_4_1) 2 methods to implement
----------------- -----------------
......
...@@ -2849,6 +2849,7 @@ void ClassDef::addMembersToTemplateInstance(ClassDef *cd,const char *templSpec) ...@@ -2849,6 +2849,7 @@ void ClassDef::addMembersToTemplateInstance(ClassDef *cd,const char *templSpec)
imd->setBriefDescription(md->briefDescription(),md->briefFile(),md->briefLine()); imd->setBriefDescription(md->briefDescription(),md->briefFile(),md->briefLine());
imd->setInbodyDocumentation(md->inbodyDocumentation(),md->inbodyFile(),md->inbodyLine()); imd->setInbodyDocumentation(md->inbodyDocumentation(),md->inbodyFile(),md->inbodyLine());
imd->setMemberSpecifiers(md->getMemberSpecifiers()); imd->setMemberSpecifiers(md->getMemberSpecifiers());
imd->setMemberGroupId(md->getMemberGroupId());
insertMember(imd); insertMember(imd);
//printf("Adding member=%s %s%s to class %s templSpec %s\n", //printf("Adding member=%s %s%s to class %s templSpec %s\n",
// imd->typeString(),imd->name().data(),imd->argsString(), // imd->typeString(),imd->name().data(),imd->argsString(),
......
...@@ -164,7 +164,7 @@ static void endCondSection() ...@@ -164,7 +164,7 @@ static void endCondSection()
} }
} }
/** remove and executes \\cond and \\endcond commands in \a s */ /** remove and executes cond and endcond commands in \a s */
static QCString handleCondCmdInAliases(const QCString &s) static QCString handleCondCmdInAliases(const QCString &s)
{ {
QCString result; QCString result;
...@@ -566,7 +566,7 @@ void replaceComment(int offset) ...@@ -566,7 +566,7 @@ void replaceComment(int offset)
* -# It converts multi-line C++ style comment blocks (that are aligned) * -# It converts multi-line C++ style comment blocks (that are aligned)
* to C style comment blocks (if MULTILINE_CPP_IS_BRIEF is set to NO). * to C style comment blocks (if MULTILINE_CPP_IS_BRIEF is set to NO).
* -# It replaces aliases with their definition (see ALIASES) * -# It replaces aliases with their definition (see ALIASES)
* -# It handles conditional sections (\cond...\endcond blocks) * -# It handles conditional sections (cond...endcond blocks)
*/ */
void convertCppComments(BufStr *inBuf,BufStr *outBuf,const char *fileName) void convertCppComments(BufStr *inBuf,BufStr *outBuf,const char *fileName)
{ {
......
...@@ -2281,15 +2281,15 @@ bool parseCommentBlock(/* in */ ParserInterface *parser, ...@@ -2281,15 +2281,15 @@ bool parseCommentBlock(/* in */ ParserInterface *parser,
/* in */ const QCString &fileName, /* in */ const QCString &fileName,
/* in */ int lineNr, /* in */ int lineNr,
/* in */ bool isBrief, /* in */ bool isBrief,
/* in */ bool isJavaDocStyle, /* in */ bool isAutoBriefOn,
/* in */ bool isInbody, /* 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
) )
{ {
//printf("parseCommentBlock() isBrief=%d isJavaDocStyle=%d lineNr=%d\n", //printf("parseCommentBlock() isBrief=%d isAutoBriefOn=%d lineNr=%d\n",
// isBrief,isJavaDocStyle,lineNr); // isBrief,isAutoBriefOn,lineNr);
initParser(); initParser();
guards.setAutoDelete(TRUE); guards.setAutoDelete(TRUE);
...@@ -2310,8 +2310,8 @@ bool parseCommentBlock(/* in */ ParserInterface *parser, ...@@ -2310,8 +2310,8 @@ bool parseCommentBlock(/* in */ ParserInterface *parser,
parseMore = FALSE; parseMore = FALSE;
inBody = isInbody; inBody = isInbody;
outputXRef.resize(0); outputXRef.resize(0);
setOutput( isBrief || isJavaDocStyle ? OutputBrief : OutputDoc ); setOutput( isBrief || isAutoBriefOn ? OutputBrief : OutputDoc );
briefEndsAtDot = isJavaDocStyle; briefEndsAtDot = isAutoBriefOn;
if (!current->inbodyDocs.isEmpty() && isInbody) // separate in body fragments if (!current->inbodyDocs.isEmpty() && isInbody) // separate in body fragments
{ {
......
...@@ -502,7 +502,6 @@ static void readIncludeFile(const char *incName) ...@@ -502,7 +502,6 @@ static void readIncludeFile(const char *incName)
<Start>[a-z_A-Z][a-z_A-Z0-9]*[ \t]*"=" { QCString cmd=yytext; <Start>[a-z_A-Z][a-z_A-Z0-9]*[ \t]*"=" { QCString cmd=yytext;
cmd=cmd.left(cmd.length()-1).stripWhiteSpace(); cmd=cmd.left(cmd.length()-1).stripWhiteSpace();
ConfigOption *option = config->get(cmd); ConfigOption *option = config->get(cmd);
option->setEncoding(encoding);
if (option==0) // oops not known if (option==0) // oops not known
{ {
config_err("Warning: ignoring unsupported tag `%s' at line %d, file %s\n", config_err("Warning: ignoring unsupported tag `%s' at line %d, file %s\n",
...@@ -511,6 +510,7 @@ static void readIncludeFile(const char *incName) ...@@ -511,6 +510,7 @@ static void readIncludeFile(const char *incName)
} }
else // known tag else // known tag
{ {
option->setEncoding(encoding);
switch(option->kind()) switch(option->kind())
{ {
case ConfigOption::O_Info: case ConfigOption::O_Info:
...@@ -1574,8 +1574,17 @@ void Config::create() ...@@ -1574,8 +1574,17 @@ void Config::create()
"If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen \n" "If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen \n"
"will interpret the first line (until the first dot) of a JavaDoc-style \n" "will interpret the first line (until the first dot) of a JavaDoc-style \n"
"comment as the brief description. If set to NO, the JavaDoc \n" "comment as the brief description. If set to NO, the JavaDoc \n"
"comments will behave just like the Qt-style comments (thus requiring an \n" "comments will behave just like regular Qt-style comments \n"
"explicit @brief command for a brief description. \n", "(thus requiring an explicit @brief command for a brief description.) \n",
FALSE
);
cb = addBool(
"QT_AUTOBRIEF",
"If the QT_AUTOBRIEF tag is set to YES then Doxygen will \n"
"interpret the first line (until the first dot) of a Qt-style \n"
"comment as the brief description. If set to NO, the comments \n"
"will behave just like regular Qt-style comments (thus requiring \n"
"an explicit \\brief command for a brief description.) \n",
FALSE FALSE
); );
cb = addBool( cb = addBool(
...@@ -2821,7 +2830,7 @@ void Config::create() ...@@ -2821,7 +2830,7 @@ void Config::create()
cb->addDependency("HAVE_DOT"); cb->addDependency("HAVE_DOT");
cb = addBool( cb = addBool(
"CALL_GRAPH", "CALL_GRAPH",
"If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will \n" "If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will \n"
"generate a call dependency graph for every global function or class method. \n" "generate a call dependency graph for every global function or class method. \n"
"Note that enabling this option will significantly increase the time of a run. \n" "Note that enabling this option will significantly increase the time of a run. \n"
"So in most cases it will be better to enable call graphs for selected \n" "So in most cases it will be better to enable call graphs for selected \n"
...@@ -2831,7 +2840,7 @@ void Config::create() ...@@ -2831,7 +2840,7 @@ void Config::create()
cb->addDependency("HAVE_DOT"); cb->addDependency("HAVE_DOT");
cb = addBool( cb = addBool(
"CALLER_GRAPH", "CALLER_GRAPH",
"If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will \n" "If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will \n"
"generate a caller dependency graph for every global function or class method. \n" "generate a caller dependency graph for every global function or class method. \n"
"Note that enabling this option will significantly increase the time of a run. \n" "Note that enabling this option will significantly increase the time of a run. \n"
"So in most cases it will be better to enable caller graphs for selected \n" "So in most cases it will be better to enable caller graphs for selected \n"
......
...@@ -1422,7 +1422,7 @@ static void readTextFileByName(const QString &file,QString &text) ...@@ -1422,7 +1422,7 @@ static void readTextFileByName(const QString &file,QString &text)
FileDef *fd; FileDef *fd;
if ((fd=findFileDef(Doxygen::exampleNameDict,file,ambig))) if ((fd=findFileDef(Doxygen::exampleNameDict,file,ambig)))
{ {
text = fileToString(fd->absFilePath(),FALSE); text = fileToString(fd->absFilePath(),Config_getBool("FILTER_SOURCE_FILES"));
} }
else if (ambig) else if (ambig)
{ {
...@@ -2092,6 +2092,8 @@ void DocRef::parse() ...@@ -2092,6 +2092,8 @@ void DocRef::parse()
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unsupported symbol %s found", warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unsupported symbol %s found",
g_token->name.data()); g_token->name.data());
break; break;
case TK_HTMLTAG:
break;
default: default:
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unexpected token %s", warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unexpected token %s",
tokToString(tok)); tokToString(tok));
...@@ -2111,7 +2113,7 @@ void DocRef::parse() ...@@ -2111,7 +2113,7 @@ void DocRef::parse()
} }
handlePendingStyleCommands(this,m_children); handlePendingStyleCommands(this,m_children);
DBG(("DocRef::parse() end\n"));
DocNode *n=g_nodeStack.pop(); DocNode *n=g_nodeStack.pop();
ASSERT(n==this); ASSERT(n==this);
} }
...@@ -2155,7 +2157,7 @@ DocLink::DocLink(DocNode *parent,const QString &target) : ...@@ -2155,7 +2157,7 @@ DocLink::DocLink(DocNode *parent,const QString &target) :
} }
QString DocLink::parse(bool isJavaLink) QString DocLink::parse(bool isJavaLink,bool isXmlLink)
{ {
QString result; QString result;
g_nodeStack.push(this); g_nodeStack.push(this);
...@@ -2187,6 +2189,13 @@ QString DocLink::parse(bool isJavaLink) ...@@ -2187,6 +2189,13 @@ QString DocLink::parse(bool isJavaLink)
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unsupported symbol %s found", warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unsupported symbol %s found",
g_token->name.data()); g_token->name.data());
break; break;
case TK_HTMLTAG:
if (g_token->name!="see" || !isXmlLink)
{
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unexpected xml/html command %s found",
g_token->name.data());
}
goto endlink;
case TK_LNKWORD: case TK_LNKWORD:
case TK_WORD: case TK_WORD:
if (isJavaLink) // special case to detect closing } if (isJavaLink) // special case to detect closing }
...@@ -4847,11 +4856,31 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag ...@@ -4847,11 +4856,31 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
// can we expect from Microsoft...) // can we expect from Microsoft...)
{ {
QString cref; QString cref;
//printf("XML_SEE: empty tag=%d\n",g_token->emptyTag);
if (findAttribute(tagHtmlAttribs,"cref",&cref)) if (findAttribute(tagHtmlAttribs,"cref",&cref))
{ {
DocRef *ref = new DocRef(this,cref); if (g_token->emptyTag) // <see cref="..."/> style
m_children.append(ref); {
ref->parse(); bool inSeeBlock = g_inSeeBlock;
g_token->name = cref;
g_inSeeBlock = TRUE;
handleLinkedWord(this,m_children);
g_inSeeBlock = inSeeBlock;
}
else // <see cref="...">...</see> style
{
//DocRef *ref = new DocRef(this,cref);
//m_children.append(ref);
//ref->parse();
doctokenizerYYsetStatePara();
DocLink *lnk = new DocLink(this,cref);
m_children.append(lnk);
QString leftOver = lnk->parse(FALSE,TRUE);
if (!leftOver.isEmpty())
{
m_children.append(new DocWord(this,leftOver));
}
}
} }
else else
{ {
......
...@@ -639,7 +639,7 @@ class DocLink : public CompAccept<DocLink>, public DocNode ...@@ -639,7 +639,7 @@ class DocLink : public CompAccept<DocLink>, public DocNode
{ {
public: public:
DocLink(DocNode *parent,const QString &target); DocLink(DocNode *parent,const QString &target);
QString parse(bool); QString parse(bool,bool isXmlLink=FALSE);
Kind kind() const { return Kind_Link; } Kind kind() const { return Kind_Link; }
QString file() const { return m_file; } QString file() const { return m_file; }
QString relPath() const { return m_relPath; } QString relPath() const { return m_relPath; }
......
...@@ -694,6 +694,24 @@ static QCString convertLabel(const QCString &l) ...@@ -694,6 +694,24 @@ static QCString convertLabel(const QCString &l)
return result; return result;
} }
static QCString escapeTooltip(const QCString &tooltip)
{
QCString result;
const char *p=tooltip.data();
if (p==0) return result;
char c;
while ((c=*p++))
{
switch(c)
{
case '\\': result+="\\\\"; break;
case '"': result+="\\\""; break;
default: result+=c; break;
}
}
return result;
}
static void writeBoxMemberList(QTextStream &t,char prot,MemberList *ml,ClassDef *scope) static void writeBoxMemberList(QTextStream &t,char prot,MemberList *ml,ClassDef *scope)
{ {
if (ml) if (ml)
...@@ -812,7 +830,7 @@ void DotNode::writeBox(QTextStream &t, ...@@ -812,7 +830,7 @@ void DotNode::writeBox(QTextStream &t,
} }
if (!m_tooltip.isEmpty()) if (!m_tooltip.isEmpty())
{ {
t << ",tooltip=\"" << m_tooltip << "\""; t << ",tooltip=\"" << escapeTooltip(m_tooltip) << "\"";
} }
} }
t << "];" << endl; t << "];" << endl;
......
...@@ -132,6 +132,7 @@ ObjCache *Doxygen::symbolCache = 0; ...@@ -132,6 +132,7 @@ ObjCache *Doxygen::symbolCache = 0;
Store *Doxygen::symbolStorage; Store *Doxygen::symbolStorage;
QCString Doxygen::objDBFileName; QCString Doxygen::objDBFileName;
QCString Doxygen::entryDBFileName; QCString Doxygen::entryDBFileName;
bool Doxygen::gatherDefines = TRUE;
// locally accessible globals // locally accessible globals
static QDict<EntryNav> classEntries(1009); static QDict<EntryNav> classEntries(1009);
...@@ -4687,9 +4688,10 @@ static void addMemberDocs(EntryNav *rootNav, ...@@ -4687,9 +4688,10 @@ static void addMemberDocs(EntryNav *rootNav,
{ {
//printf("setInitializer\n"); //printf("setInitializer\n");
md->setInitializer(root->initializer); md->setInitializer(root->initializer);
md->setMaxInitLines(root->initLines);
} }
md->setMaxInitLines(root->initLines);
if (rfd) if (rfd)
{ {
...@@ -8178,7 +8180,7 @@ static int transcodeCharacterBuffer(BufStr &srcBuf,int size, ...@@ -8178,7 +8180,7 @@ static int transcodeCharacterBuffer(BufStr &srcBuf,int size,
// reads a file into an array and filters out any 0x00 and 0x06 bytes, // reads a file into an array and filters out any 0x00 and 0x06 bytes,
// because these are special for the parser. // because these are special for the parser.
static void copyAndFilterFile(const char *fileName,BufStr &dest) void copyAndFilterFile(const char *fileName,BufStr &dest)
{ {
// try to open file // try to open file
int size=0; int size=0;
...@@ -8349,7 +8351,7 @@ static void parseFiles(Entry *root,EntryNav *rootNav) ...@@ -8349,7 +8351,7 @@ static void parseFiles(Entry *root,EntryNav *rootNav)
// The directory is read iff the recusiveFlag is set. // The directory is read iff the recusiveFlag is set.
// The contents of all files is append to the input string // The contents of all files is append to the input string
static int readDir(QFileInfo *fi, int readDir(QFileInfo *fi,
FileNameList *fnList, FileNameList *fnList,
FileNameDict *fnDict, FileNameDict *fnDict,
StringDict *exclDict, StringDict *exclDict,
...@@ -8441,7 +8443,7 @@ static int readDir(QFileInfo *fi, ...@@ -8441,7 +8443,7 @@ static int readDir(QFileInfo *fi,
// read a file or all files in a directory and append their contents to the // read a file or all files in a directory and append their contents to the
// input string. The names of the files are appended to the `fiList' list. // input string. The names of the files are appended to the `fiList' list.
static int readFileOrDirectory(const char *s, int readFileOrDirectory(const char *s,
FileNameList *fnList, FileNameList *fnList,
FileNameDict *fnDict, FileNameDict *fnDict,
StringDict *exclDict, StringDict *exclDict,
...@@ -8450,8 +8452,8 @@ static int readFileOrDirectory(const char *s, ...@@ -8450,8 +8452,8 @@ static int readFileOrDirectory(const char *s,
StringList *resultList, StringList *resultList,
StringDict *resultDict, StringDict *resultDict,
bool recursive, bool recursive,
bool errorIfNotExist=TRUE, bool errorIfNotExist,
QDict<void> *killDict = 0 QDict<void> *killDict
) )
{ {
//printf("killDict=%p count=%d\n",killDict,killDict->count()); //printf("killDict=%p count=%d\n",killDict,killDict->count());
...@@ -8526,7 +8528,7 @@ static int readFileOrDirectory(const char *s, ...@@ -8526,7 +8528,7 @@ static int readFileOrDirectory(const char *s,
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
static void readFormulaRepository() void readFormulaRepository()
{ {
QFile f(Config_getString("HTML_OUTPUT")+"/formula.repository"); QFile f(Config_getString("HTML_OUTPUT")+"/formula.repository");
if (f.open(IO_ReadOnly)) // open repository if (f.open(IO_ReadOnly)) // open repository
...@@ -8641,7 +8643,7 @@ static void escapeAliases() ...@@ -8641,7 +8643,7 @@ static void escapeAliases()
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
static void readAliases() void readAliases()
{ {
// add aliases to a dictionary // add aliases to a dictionary
Doxygen::aliasDict.setAutoDelete(TRUE); Doxygen::aliasDict.setAutoDelete(TRUE);
......
...@@ -45,6 +45,8 @@ class DirDef; ...@@ -45,6 +45,8 @@ class DirDef;
class ParserManager; class ParserManager;
class ObjCache; class ObjCache;
class Store; class Store;
class QFileInfo;
class BufStr;
typedef QList<QCString> StringList; typedef QList<QCString> StringList;
typedef QDict<FileDef> FileDict; typedef QDict<FileDef> FileDict;
...@@ -123,6 +125,7 @@ class Doxygen ...@@ -123,6 +125,7 @@ class Doxygen
static Store *symbolStorage; static Store *symbolStorage;
static QCString objDBFileName; static QCString objDBFileName;
static QCString entryDBFileName; static QCString entryDBFileName;
static bool gatherDefines;
}; };
void initDoxygen(); void initDoxygen();
...@@ -130,6 +133,33 @@ void readConfiguration(int argc, char **argv); ...@@ -130,6 +133,33 @@ void readConfiguration(int argc, char **argv);
void checkConfiguration(); void checkConfiguration();
void parseInput(); void parseInput();
void generateOutput(); void generateOutput();
void readAliases();
void readFormulaRepository();
int readFileOrDirectory(const char *s,
FileNameList *fnList,
FileNameDict *fnDict,
StringDict *exclDict,
QStrList *patList,
QStrList *exclPatList,
StringList *resultList,
StringDict *resultDict,
bool recursive,
bool errorIfNotExist=TRUE,
QDict<void> *killDict = 0
);
int readDir(QFileInfo *fi,
FileNameList *fnList,
FileNameDict *fnDict,
StringDict *exclDict,
QStrList *patList,
QStrList *exclPatList,
StringList *resultList,
StringDict *resultDict,
bool errorIfNotExist,
bool recursive,
QDict<void> *killDict
);
void copyAndFilterFile(const char *fileName,BufStr &dest);
#define NEWMATCH #define NEWMATCH
......
...@@ -21,12 +21,12 @@ SOURCES = main.cpp ...@@ -21,12 +21,12 @@ SOURCES = main.cpp
unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lpng -lmd5 unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lpng -lmd5
win32:INCLUDEPATH += . win32:INCLUDEPATH += .
win32-mingw:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lpng -lmd5 win32-mingw:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lpng -lmd5
win32-msvc:LIBS += qtools.lib png.lib md5.lib doxygen.lib doxycfg.lib shell32.lib win32-msvc:LIBS += qtools.lib png.lib md5.lib doxygen.lib doxycfg.lib shell32.lib iconv.lib
win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\lib win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\lib
win32-borland:LIBS += qtools.lib png.lib md5.lib doxygen.lib doxycfg.lib shell32.lib win32-borland:LIBS += qtools.lib png.lib md5.lib doxygen.lib doxycfg.lib shell32.lib iconv.lib
win32-borland:TMAKE_LFLAGS += -L..\lib -L$(BCB)\lib\psdk win32-borland:TMAKE_LFLAGS += -L..\lib -L$(BCB)\lib\psdk
win32:TMAKE_CXXFLAGS += -DQT_NODLL win32:TMAKE_CXXFLAGS += -DQT_NODLL
win32-g++:LIBS = -L../lib -ldoxygen -ldoxycfg -lqtools -lpng -lmd5 win32-g++:LIBS = -L../lib -ldoxygen -ldoxycfg -lqtools -lpng -lmd5 -liconv
win32-g++:TMAKE_CXXFLAGS += -fno-exceptions -fno-rtti win32-g++:TMAKE_CXXFLAGS += -fno-exceptions -fno-rtti
INCLUDEPATH += ../qtools ../libpng ../libmd5 . INCLUDEPATH += ../qtools ../libpng ../libmd5 .
#win32-g++:INCLUDEPATH -= ../libpng #win32-g++:INCLUDEPATH -= ../libpng
......
...@@ -23,6 +23,145 @@ ...@@ -23,6 +23,145 @@
#include "section.h" #include "section.h"
#include "doxygen.h" #include "doxygen.h"
//------------------------------------------------------------------
#define HEADER ('D'<<24)+('O'<<16)+('X'<<8)+'!'
#if 0
static bool saveEntry(Entry *e,StorageIntf *f)
{
marshalUInt(f,HEADER);
marshalInt(f,(int)e->protection);
marshalInt(f,(int)e->mtype);
marshalInt(f,e->spec);
marshalInt(f,e->initLines);
marshalBool(f,e->stat);
marshalBool(f,e->explicitExternal);
marshalBool(f,e->proto);
marshalBool(f,e->subGrouping);
marshalBool(f,e->callGraph);
marshalBool(f,e->callerGraph);
marshalInt(f,(int)e->virt);
marshalQCString(f,e->args);
marshalQCString(f,e->bitfields);
marshalArgumentList(f,e->argList);
marshalArgumentLists(f,e->tArgLists);
marshalQGString(f,e->program);
marshalQGString(f,e->initializer);
marshalQCString(f,e->includeFile);
marshalQCString(f,e->includeName);
marshalQCString(f,e->doc);
marshalInt(f,e->docLine);
marshalQCString(f,e->docFile);
marshalQCString(f,e->brief);
marshalInt(f,e->briefLine);
marshalQCString(f,e->briefFile);
marshalQCString(f,e->inbodyDocs);
marshalInt(f,e->inbodyLine);
marshalQCString(f,e->inbodyFile);
marshalQCString(f,e->relates);
marshalBool(f,e->relatesDup);
marshalQCString(f,e->read);
marshalQCString(f,e->write);
marshalQCString(f,e->inside);
marshalQCString(f,e->exception);
marshalInt(f,e->bodyLine);
marshalInt(f,e->endBodyLine);
marshalInt(f,e->mGrpId);
marshalBaseInfoList(f,e->extends);
marshalGroupingList(f,e->groups);
marshalSectionInfoList(f,e->anchors);
marshalQCString(f,e->fileName);
marshalInt(f,e->startLine);
marshalItemInfoList(f,e->sli);
marshalBool(f,e->objc);
marshalBool(f,e->hidden);
marshalInt(f,(int)e->groupDocType);
return TRUE;
}
static bool loadEntry(Entry *e,StorageIntf *f)
{
uint header=unmarshalUInt(f);
if (header!=HEADER)
{
printf("Internal error: Invalid header %x for entry in storage file %s\n",
header,Doxygen::entryDBFileName.data());
exit(1);
}
e->protection = (Protection)unmarshalInt(f);
e->mtype = (MethodTypes)unmarshalInt(f);
e->spec = unmarshalInt(f);
e->initLines = unmarshalInt(f);
e->stat = unmarshalBool(f);
e->explicitExternal = unmarshalBool(f);
e->proto = unmarshalBool(f);
e->subGrouping = unmarshalBool(f);
e->callGraph = unmarshalBool(f);
e->callerGraph = unmarshalBool(f);
e->virt = (Specifier)unmarshalInt(f);
e->args = unmarshalQCString(f);
e->bitfields = unmarshalQCString(f);
delete e->argList;
e->argList = unmarshalArgumentList(f);
e->tArgLists = unmarshalArgumentLists(f);
e->program = unmarshalQGString(f);
e->initializer = unmarshalQGString(f);
e->includeFile = unmarshalQCString(f);
e->includeName = unmarshalQCString(f);
e->doc = unmarshalQCString(f);
e->docLine = unmarshalInt(f);
e->docFile = unmarshalQCString(f);
e->brief = unmarshalQCString(f);
e->briefLine = unmarshalInt(f);
e->briefFile = unmarshalQCString(f);
e->inbodyDocs = unmarshalQCString(f);
e->inbodyLine = unmarshalInt(f);
e->inbodyFile = unmarshalQCString(f);
e->relates = unmarshalQCString(f);
e->relatesDup = unmarshalBool(f);
e->read = unmarshalQCString(f);
e->write = unmarshalQCString(f);
e->inside = unmarshalQCString(f);
e->exception = unmarshalQCString(f);
e->bodyLine = unmarshalInt(f);
e->endBodyLine = unmarshalInt(f);
e->mGrpId = unmarshalInt(f);
delete e->extends;
e->extends = unmarshalBaseInfoList(f);
delete e->groups;
e->groups = unmarshalGroupingList(f);
delete e->anchors;
e->anchors = unmarshalSectionInfoList(f);
e->fileName = unmarshalQCString(f);
e->startLine = unmarshalInt(f);
e->sli = unmarshalItemInfoList(f);
e->objc = unmarshalBool(f);
e->hidden = unmarshalBool(f);
e->groupDocType = (Entry::GroupDocType)unmarshalInt(f);
return TRUE;
}
#endif
//------------------------------------------------------------------
/*! the argument list is documented if one of its
* arguments is documented
*/
bool ArgumentList::hasDocumentation() const
{
bool hasDocs=FALSE;
ArgumentListIterator ali(*this);
Argument *a;
for (ali.toFirst();!hasDocs && (a=ali.current());++ali)
{
hasDocs = hasDocs || a->hasDocumentation();
}
return hasDocs;
}
//------------------------------------------------------------------
int Entry::num=0; int Entry::num=0;
Entry::Entry() Entry::Entry()
...@@ -303,24 +442,6 @@ void Entry::createNavigationIndex(EntryNav *rootNav,FileStorage *storage,FileDef ...@@ -303,24 +442,6 @@ void Entry::createNavigationIndex(EntryNav *rootNav,FileStorage *storage,FileDef
} }
} }
/*! the argument list is documented if one of its
* arguments is documented
*/
bool ArgumentList::hasDocumentation() const
{
bool hasDocs=FALSE;
ArgumentListIterator ali(*this);
Argument *a;
for (ali.toFirst();!hasDocs && (a=ali.current());++ali)
{
hasDocs = hasDocs || a->hasDocumentation();
}
return hasDocs;
}
void Entry::addSpecialListItem(const char *listName,int itemId) void Entry::addSpecialListItem(const char *listName,int itemId)
{ {
if (sli==0) if (sli==0)
...@@ -336,121 +457,6 @@ void Entry::addSpecialListItem(const char *listName,int itemId) ...@@ -336,121 +457,6 @@ void Entry::addSpecialListItem(const char *listName,int itemId)
//------------------------------------------------------------------ //------------------------------------------------------------------
#define HEADER ('D'<<24)+('O'<<16)+('X'<<8)+'!'
static bool saveEntry(Entry *e,FileStorage *f)
{
marshalUInt(f,HEADER);
marshalInt(f,(int)e->protection);
marshalInt(f,(int)e->mtype);
marshalInt(f,e->spec);
marshalInt(f,e->initLines);
marshalBool(f,e->stat);
marshalBool(f,e->explicitExternal);
marshalBool(f,e->proto);
marshalBool(f,e->subGrouping);
marshalBool(f,e->callGraph);
marshalBool(f,e->callerGraph);
marshalInt(f,(int)e->virt);
marshalQCString(f,e->args);
marshalQCString(f,e->bitfields);
marshalArgumentList(f,e->argList);
marshalArgumentLists(f,e->tArgLists);
marshalQGString(f,e->program);
marshalQGString(f,e->initializer);
marshalQCString(f,e->includeFile);
marshalQCString(f,e->includeName);
marshalQCString(f,e->doc);
marshalInt(f,e->docLine);
marshalQCString(f,e->docFile);
marshalQCString(f,e->brief);
marshalInt(f,e->briefLine);
marshalQCString(f,e->briefFile);
marshalQCString(f,e->inbodyDocs);
marshalInt(f,e->inbodyLine);
marshalQCString(f,e->inbodyFile);
marshalQCString(f,e->relates);
marshalBool(f,e->relatesDup);
marshalQCString(f,e->read);
marshalQCString(f,e->write);
marshalQCString(f,e->inside);
marshalQCString(f,e->exception);
marshalInt(f,e->bodyLine);
marshalInt(f,e->endBodyLine);
marshalInt(f,e->mGrpId);
marshalBaseInfoList(f,e->extends);
marshalGroupingList(f,e->groups);
marshalSectionInfoList(f,e->anchors);
marshalQCString(f,e->fileName);
marshalInt(f,e->startLine);
marshalItemInfoList(f,e->sli);
marshalBool(f,e->objc);
marshalBool(f,e->hidden);
marshalInt(f,(int)e->groupDocType);
return TRUE;
}
static bool loadEntry(Entry *e,FileStorage *f)
{
uint header=unmarshalUInt(f);
if (header!=HEADER)
{
printf("Internal error: Invalid header %x for entry in storage file %s\n",
header,Doxygen::entryDBFileName.data());
exit(1);
}
e->protection = (Protection)unmarshalInt(f);
e->mtype = (MethodTypes)unmarshalInt(f);
e->spec = unmarshalInt(f);
e->initLines = unmarshalInt(f);
e->stat = unmarshalBool(f);
e->explicitExternal = unmarshalBool(f);
e->proto = unmarshalBool(f);
e->subGrouping = unmarshalBool(f);
e->callGraph = unmarshalBool(f);
e->callerGraph = unmarshalBool(f);
e->virt = (Specifier)unmarshalInt(f);
e->args = unmarshalQCString(f);
e->bitfields = unmarshalQCString(f);
delete e->argList;
e->argList = unmarshalArgumentList(f);
e->tArgLists = unmarshalArgumentLists(f);
e->program = unmarshalQGString(f);
e->initializer = unmarshalQGString(f);
e->includeFile = unmarshalQCString(f);
e->includeName = unmarshalQCString(f);
e->doc = unmarshalQCString(f);
e->docLine = unmarshalInt(f);
e->docFile = unmarshalQCString(f);
e->brief = unmarshalQCString(f);
e->briefLine = unmarshalInt(f);
e->briefFile = unmarshalQCString(f);
e->inbodyDocs = unmarshalQCString(f);
e->inbodyLine = unmarshalInt(f);
e->inbodyFile = unmarshalQCString(f);
e->relates = unmarshalQCString(f);
e->relatesDup = unmarshalBool(f);
e->read = unmarshalQCString(f);
e->write = unmarshalQCString(f);
e->inside = unmarshalQCString(f);
e->exception = unmarshalQCString(f);
e->bodyLine = unmarshalInt(f);
e->endBodyLine = unmarshalInt(f);
e->mGrpId = unmarshalInt(f);
delete e->extends;
e->extends = unmarshalBaseInfoList(f);
delete e->groups;
e->groups = unmarshalGroupingList(f);
delete e->anchors;
e->anchors = unmarshalSectionInfoList(f);
e->fileName = unmarshalQCString(f);
e->startLine = unmarshalInt(f);
e->sli = unmarshalItemInfoList(f);
e->objc = unmarshalBool(f);
e->hidden = unmarshalBool(f);
e->groupDocType = (Entry::GroupDocType)unmarshalInt(f);
return TRUE;
}
EntryNav::EntryNav(EntryNav *parent, Entry *e) EntryNav::EntryNav(EntryNav *parent, Entry *e)
: m_parent(parent), m_subList(0), m_section(e->section), m_type(e->type), : m_parent(parent), m_subList(0), m_section(e->section), m_type(e->type),
...@@ -507,11 +513,7 @@ bool EntryNav::loadEntry(FileStorage *storage) ...@@ -507,11 +513,7 @@ bool EntryNav::loadEntry(FileStorage *storage)
return FALSE; return FALSE;
} }
//delete m_info; //delete m_info;
if (m_info==0) m_info = new Entry;
//printf("EntryNav::loadEntry: new entry %p: %s\n",m_info,m_name.data()); //printf("EntryNav::loadEntry: new entry %p: %s\n",m_info,m_name.data());
m_info->name = m_name;
m_info->type = m_type;
m_info->section = m_section;
//m_info->tagInfo = m_tagInfo; //m_info->tagInfo = m_tagInfo;
//if (m_parent) //if (m_parent)
//{ //{
...@@ -524,14 +526,20 @@ bool EntryNav::loadEntry(FileStorage *storage) ...@@ -524,14 +526,20 @@ bool EntryNav::loadEntry(FileStorage *storage)
//printf("seek failed!\n"); //printf("seek failed!\n");
return FALSE; return FALSE;
} }
return ::loadEntry(m_info,storage); if (m_info) delete m_info;
m_info = unmarshalEntry(storage);
m_info->name = m_name;
m_info->type = m_type;
m_info->section = m_section;
return TRUE;
} }
bool EntryNav::saveEntry(Entry *e,FileStorage *storage) bool EntryNav::saveEntry(Entry *e,FileStorage *storage)
{ {
m_offset = storage->pos(); m_offset = storage->pos();
//printf("EntryNav::saveEntry offset=%llx\n",m_offset); //printf("EntryNav::saveEntry offset=%llx\n",m_offset);
return ::saveEntry(e,storage); marshalEntry(storage,e);
return TRUE;
} }
void EntryNav::releaseEntry() void EntryNav::releaseEntry()
......
...@@ -28,6 +28,7 @@ class QFile; ...@@ -28,6 +28,7 @@ class QFile;
class EntryNav; class EntryNav;
class FileDef; class FileDef;
class FileStorage; class FileStorage;
class StorageIntf;
enum Protection { Public, Protected, Private, Package } ; enum Protection { Public, Protected, Private, Package } ;
enum Specifier { Normal, Virtual, Pure } ; enum Specifier { Normal, Virtual, Pure } ;
...@@ -302,6 +303,8 @@ class Entry ...@@ -302,6 +303,8 @@ class Entry
* at construction time. * at construction time.
*/ */
void reset(); void reset();
void marshall(StorageIntf *);
void unmarshall(StorageIntf *);
public: public:
......
...@@ -166,7 +166,7 @@ bool setTranslator(const char *langName) ...@@ -166,7 +166,7 @@ bool setTranslator(const char *langName)
#ifdef LANG_CZ #ifdef LANG_CZ
else if (L_EQUAL("czech")) else if (L_EQUAL("czech"))
{ {
theTranslator=new TranslatorDecoder(new TranslatorCzech); theTranslator=new TranslatorCzech;
} }
#endif #endif
#ifdef LANG_FR #ifdef LANG_FR
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "groupdef.h" #include "groupdef.h"
#include "example.h" #include "example.h"
#define HEADER ('D'<<24)+('O'<<16)+('X'<<8)+'!'
void marshalInt(StorageIntf *s,int v) void marshalInt(StorageIntf *s,int v)
{ {
...@@ -349,6 +350,72 @@ void marshalMemberLists(StorageIntf *s,SDict<MemberList> *mls) ...@@ -349,6 +350,72 @@ void marshalMemberLists(StorageIntf *s,SDict<MemberList> *mls)
} }
} }
void marshalEntry(StorageIntf *s,Entry *e)
{
marshalUInt(s,HEADER);
marshalQCString(s,e->name);
marshalQCString(s,e->type);
marshalInt(s,e->section);
marshalInt(s,(int)e->protection);
marshalInt(s,(int)e->mtype);
marshalInt(s,e->spec);
marshalInt(s,e->initLines);
marshalBool(s,e->stat);
marshalBool(s,e->explicitExternal);
marshalBool(s,e->proto);
marshalBool(s,e->subGrouping);
marshalBool(s,e->callGraph);
marshalBool(s,e->callerGraph);
marshalInt(s,(int)e->virt);
marshalQCString(s,e->args);
marshalQCString(s,e->bitfields);
marshalArgumentList(s,e->argList);
marshalArgumentLists(s,e->tArgLists);
marshalQGString(s,e->program);
marshalQGString(s,e->initializer);
marshalQCString(s,e->includeFile);
marshalQCString(s,e->includeName);
marshalQCString(s,e->doc);
marshalInt(s,e->docLine);
marshalQCString(s,e->docFile);
marshalQCString(s,e->brief);
marshalInt(s,e->briefLine);
marshalQCString(s,e->briefFile);
marshalQCString(s,e->inbodyDocs);
marshalInt(s,e->inbodyLine);
marshalQCString(s,e->inbodyFile);
marshalQCString(s,e->relates);
marshalBool(s,e->relatesDup);
marshalQCString(s,e->read);
marshalQCString(s,e->write);
marshalQCString(s,e->inside);
marshalQCString(s,e->exception);
marshalInt(s,e->bodyLine);
marshalInt(s,e->endBodyLine);
marshalInt(s,e->mGrpId);
marshalBaseInfoList(s,e->extends);
marshalGroupingList(s,e->groups);
marshalSectionInfoList(s,e->anchors);
marshalQCString(s,e->fileName);
marshalInt(s,e->startLine);
marshalItemInfoList(s,e->sli);
marshalBool(s,e->objc);
marshalBool(s,e->hidden);
marshalInt(s,(int)e->groupDocType);
}
void marshalEntryTree(StorageIntf *s,Entry *e)
{
marshalEntry(s,e);
marshalUInt(s,e->children()->count());
QListIterator<Entry> eli(*e->children());
Entry *child;
for (eli.toFirst();(child=eli.current());++eli)
{
marshalEntryTree(s,child);
}
}
//------------------------------------------------------------------ //------------------------------------------------------------------
int unmarshalInt(StorageIntf *s) int unmarshalInt(StorageIntf *s)
...@@ -664,4 +731,75 @@ SDict<MemberList> *unmarshalMemberLists(StorageIntf *s) ...@@ -664,4 +731,75 @@ SDict<MemberList> *unmarshalMemberLists(StorageIntf *s)
return result; return result;
} }
Entry * unmarshalEntry(StorageIntf *s)
{
Entry *e = new Entry;
uint header=unmarshalUInt(s);
ASSERT(header==HEADER);
e->name = unmarshalQCString(s);
e->type = unmarshalQCString(s);
e->section = unmarshalInt(s);
e->protection = (Protection)unmarshalInt(s);
e->mtype = (MethodTypes)unmarshalInt(s);
e->spec = unmarshalInt(s);
e->initLines = unmarshalInt(s);
e->stat = unmarshalBool(s);
e->explicitExternal = unmarshalBool(s);
e->proto = unmarshalBool(s);
e->subGrouping = unmarshalBool(s);
e->callGraph = unmarshalBool(s);
e->callerGraph = unmarshalBool(s);
e->virt = (Specifier)unmarshalInt(s);
e->args = unmarshalQCString(s);
e->bitfields = unmarshalQCString(s);
delete e->argList;
e->argList = unmarshalArgumentList(s);
e->tArgLists = unmarshalArgumentLists(s);
e->program = unmarshalQGString(s);
e->initializer = unmarshalQGString(s);
e->includeFile = unmarshalQCString(s);
e->includeName = unmarshalQCString(s);
e->doc = unmarshalQCString(s);
e->docLine = unmarshalInt(s);
e->docFile = unmarshalQCString(s);
e->brief = unmarshalQCString(s);
e->briefLine = unmarshalInt(s);
e->briefFile = unmarshalQCString(s);
e->inbodyDocs = unmarshalQCString(s);
e->inbodyLine = unmarshalInt(s);
e->inbodyFile = unmarshalQCString(s);
e->relates = unmarshalQCString(s);
e->relatesDup = unmarshalBool(s);
e->read = unmarshalQCString(s);
e->write = unmarshalQCString(s);
e->inside = unmarshalQCString(s);
e->exception = unmarshalQCString(s);
e->bodyLine = unmarshalInt(s);
e->endBodyLine = unmarshalInt(s);
e->mGrpId = unmarshalInt(s);
delete e->extends;
e->extends = unmarshalBaseInfoList(s);
delete e->groups;
e->groups = unmarshalGroupingList(s);
delete e->anchors;
e->anchors = unmarshalSectionInfoList(s);
e->fileName = unmarshalQCString(s);
e->startLine = unmarshalInt(s);
e->sli = unmarshalItemInfoList(s);
e->objc = unmarshalBool(s);
e->hidden = unmarshalBool(s);
e->groupDocType = (Entry::GroupDocType)unmarshalInt(s);
return e;
}
Entry * unmarshalEntryTree(StorageIntf *s)
{
Entry *e = unmarshalEntry(s);
uint count = unmarshalUInt(s);
uint i;
for (i=0;i<count;i++)
{
e->addSubEntry(unmarshalEntryTree(s));
}
return e;
}
...@@ -21,6 +21,7 @@ struct DocInfo; ...@@ -21,6 +21,7 @@ struct DocInfo;
struct BriefInfo; struct BriefInfo;
class MemberList; class MemberList;
class ExampleSDict; class ExampleSDict;
class Entry;
#define NULL_LIST 0xffffffff #define NULL_LIST 0xffffffff
...@@ -33,6 +34,49 @@ class FileStorage : public QFile, public StorageIntf ...@@ -33,6 +34,49 @@ class FileStorage : public QFile, public StorageIntf
int write(const char *buf,uint size) { return QFile::writeBlock(buf,size); } int write(const char *buf,uint size) { return QFile::writeBlock(buf,size); }
}; };
class StreamStorage : public StorageIntf
{
public:
StreamStorage()
{
m_data=0;
m_offset=0;
m_len=0;
}
~StreamStorage()
{
delete m_data;
}
StreamStorage(char *data,uint len)
{
m_data=data;
m_offset=0;
m_len=len;
}
int read(char *buf,uint size)
{
int bytesLeft = QMIN((int)size,m_len-m_offset);
if (bytesLeft>0) memcpy(buf,m_data,bytesLeft);
m_offset+=bytesLeft;
return bytesLeft;
}
int write(const char *buf,uint size)
{
m_data=(char *)realloc(m_data,m_offset+size);
memcpy(m_data+m_offset,buf,size);
m_offset+=size;
m_len+=size;
return size;
}
void rewind() { m_offset=0; }
char *data() const { return m_data; }
int size() { return m_len; }
private:
char *m_data;
int m_offset;
int m_len;
};
//----- marshaling function: datatype -> byte stream -------------------- //----- marshaling function: datatype -> byte stream --------------------
void marshalInt(StorageIntf *s,int v); void marshalInt(StorageIntf *s,int v);
...@@ -56,6 +100,8 @@ void marshalGroupList(StorageIntf *s,GroupList *groupList); ...@@ -56,6 +100,8 @@ void marshalGroupList(StorageIntf *s,GroupList *groupList);
void marshalMemberList(StorageIntf *s,MemberList *ml); void marshalMemberList(StorageIntf *s,MemberList *ml);
void marshalExampleSDict(StorageIntf *s,ExampleSDict *ed); void marshalExampleSDict(StorageIntf *s,ExampleSDict *ed);
void marshalMemberLists(StorageIntf *s,SDict<MemberList> *mls); void marshalMemberLists(StorageIntf *s,SDict<MemberList> *mls);
void marshalEntry(StorageIntf *s,Entry *e);
void marshalEntryTree(StorageIntf *s,Entry *e);
//----- unmarshaling function: byte stream -> datatype ------------------ //----- unmarshaling function: byte stream -> datatype ------------------
...@@ -80,5 +126,7 @@ GroupList * unmarshalGroupList(StorageIntf *s); ...@@ -80,5 +126,7 @@ GroupList * unmarshalGroupList(StorageIntf *s);
MemberList * unmarshalMemberList(StorageIntf *s); MemberList * unmarshalMemberList(StorageIntf *s);
ExampleSDict * unmarshalExampleSDict(StorageIntf *s); ExampleSDict * unmarshalExampleSDict(StorageIntf *s);
SDict<MemberList> * unmarshalMemberLists(StorageIntf *s); SDict<MemberList> * unmarshalMemberLists(StorageIntf *s);
Entry * unmarshalEntry(StorageIntf *s);
Entry * unmarshalEntryTree(StorageIntf *s);
#endif #endif
...@@ -3436,8 +3436,11 @@ void MemberDef::setBitfields(const char *s) ...@@ -3436,8 +3436,11 @@ void MemberDef::setBitfields(const char *s)
void MemberDef::setMaxInitLines(int lines) void MemberDef::setMaxInitLines(int lines)
{ {
if (lines!=-1)
{
makeResident(); makeResident();
m_impl->userInitLines=lines; m_impl->userInitLines=lines;
}
} }
void MemberDef::setExplicitExternal(bool b) void MemberDef::setExplicitExternal(bool b)
......
...@@ -98,7 +98,7 @@ void writeMscGraphFromFile(const char *inFile,const char *outDir, ...@@ -98,7 +98,7 @@ void writeMscGraphFromFile(const char *inFile,const char *outDir,
// go to the html output directory (i.e. path) // go to the html output directory (i.e. path)
QDir::setCurrent(outDir); QDir::setCurrent(outDir);
//printf("Going to dir %s\n",QDir::currentDirPath().data()); //printf("Going to dir %s\n",QDir::currentDirPath().data());
QCString mscExe = /*Config_getString("MSC_PATH")+*/ "mscgen"; QCString mscExe = Config_getString("MSC_PATH")+"mscgen"+portable_commandExtension();
QCString mscArgs; QCString mscArgs;
QCString extension; QCString extension;
if (format==MSC_BITMAP) if (format==MSC_BITMAP)
......
...@@ -1692,10 +1692,13 @@ void PerlModGenerator::generatePerlModForClass(ClassDef *cd) ...@@ -1692,10 +1692,13 @@ void PerlModGenerator::generatePerlModForClass(ClassDef *cd)
addTemplateList(cd,m_output); addTemplateList(cd,m_output);
addListOfAllMembers(cd); addListOfAllMembers(cd);
if (cd->getMemberGroupSDict())
{
MemberGroupSDict::Iterator mgli(*cd->getMemberGroupSDict()); MemberGroupSDict::Iterator mgli(*cd->getMemberGroupSDict());
MemberGroup *mg; MemberGroup *mg;
for (;(mg=mgli.current());++mgli) for (;(mg=mgli.current());++mgli)
generatePerlModSection(cd,mg->members(),"user_defined",mg->header()); generatePerlModSection(cd,mg->members(),"user_defined",mg->header());
}
generatePerlModSection(cd,cd->getMemberList(MemberList::pubTypes),"public_typedefs"); generatePerlModSection(cd,cd->getMemberList(MemberList::pubTypes),"public_typedefs");
generatePerlModSection(cd,cd->getMemberList(MemberList::pubMethods),"public_methods"); generatePerlModSection(cd,cd->getMemberList(MemberList::pubMethods),"public_methods");
...@@ -1795,10 +1798,13 @@ void PerlModGenerator::generatePerlModForNamespace(NamespaceDef *nd) ...@@ -1795,10 +1798,13 @@ void PerlModGenerator::generatePerlModForNamespace(NamespaceDef *nd)
m_output.closeList(); m_output.closeList();
} }
if (nd->getMemberGroupSDict())
{
MemberGroupSDict::Iterator mgli(*nd->getMemberGroupSDict()); MemberGroupSDict::Iterator mgli(*nd->getMemberGroupSDict());
MemberGroup *mg; MemberGroup *mg;
for (;(mg=mgli.current());++mgli) for (;(mg=mgli.current());++mgli)
generatePerlModSection(nd,mg->members(),"user-defined",mg->header()); generatePerlModSection(nd,mg->members(),"user-defined",mg->header());
}
generatePerlModSection(nd,nd->getMemberList(MemberList::decDefineMembers),"defines"); generatePerlModSection(nd,nd->getMemberList(MemberList::decDefineMembers),"defines");
generatePerlModSection(nd,nd->getMemberList(MemberList::decProtoMembers),"prototypes"); generatePerlModSection(nd,nd->getMemberList(MemberList::decProtoMembers),"prototypes");
...@@ -1967,10 +1973,13 @@ void PerlModGenerator::generatePerlModForGroup(GroupDef *gd) ...@@ -1967,10 +1973,13 @@ void PerlModGenerator::generatePerlModForGroup(GroupDef *gd)
m_output.closeList(); m_output.closeList();
} }
if (gd->getMemberGroupSDict())
{
MemberGroupSDict::Iterator mgli(*gd->getMemberGroupSDict()); MemberGroupSDict::Iterator mgli(*gd->getMemberGroupSDict());
MemberGroup *mg; MemberGroup *mg;
for (;(mg=mgli.current());++mgli) for (;(mg=mgli.current());++mgli)
generatePerlModSection(gd,mg->members(),"user-defined",mg->header()); generatePerlModSection(gd,mg->members(),"user-defined",mg->header());
}
generatePerlModSection(gd,gd->getMemberList(MemberList::decDefineMembers),"defines"); generatePerlModSection(gd,gd->getMemberList(MemberList::decDefineMembers),"defines");
generatePerlModSection(gd,gd->getMemberList(MemberList::decProtoMembers),"prototypes"); generatePerlModSection(gd,gd->getMemberList(MemberList::decProtoMembers),"prototypes");
......
...@@ -373,16 +373,16 @@ void * portable_iconv_open(const char* tocode, const char* fromcode) ...@@ -373,16 +373,16 @@ void * portable_iconv_open(const char* tocode, const char* fromcode)
size_t portable_iconv (void *cd, const char** inbuf, size_t *inbytesleft, size_t portable_iconv (void *cd, const char** inbuf, size_t *inbytesleft,
char** outbuf, size_t *outbytesleft) char** outbuf, size_t *outbytesleft)
{ {
#if (defined(_LIBICONV_VERSION) && (_LIBICONV_VERSION==0x0109)) #if ((defined(_LIBICONV_VERSION) && (_LIBICONV_VERSION>=0x0109)) || defined(_OS_SOLARIS_))
#define CASTNEEDED(x) (x) #define CASTNEEDED(x) (x)
#else #else
#define CASTNEEDED(x) (char **)(x) #define CASTNEEDED(x) (char **)(x)
#endif #endif
return iconv(cd,CASTNEEDED(inbuf),inbytesleft,outbuf,outbytesleft); return iconv((iconv_t)cd,CASTNEEDED(inbuf),inbytesleft,outbuf,outbytesleft);
} }
int portable_iconv_close (void *cd) int portable_iconv_close (void *cd)
{ {
return iconv_close(cd); return iconv_close((iconv_t)cd);
} }
...@@ -1006,7 +1006,8 @@ Define *newDefine() ...@@ -1006,7 +1006,8 @@ Define *newDefine()
void addDefine() void addDefine()
{ {
if (g_skip) return; // do not add this define as it is inside a if (g_skip) return; // do not add this define as it is inside a
// conditional section (@cond command) that is disabled. // conditional section (cond command) that is disabled.
if (!Doxygen::gatherDefines) return;
//printf("addDefine %s %s\n",g_defName.data(),g_defArgsStr.data()); //printf("addDefine %s %s\n",g_defName.data(),g_defArgsStr.data());
//ArgumentList *al = new ArgumentList; //ArgumentList *al = new ArgumentList;
......
...@@ -829,6 +829,11 @@ STARTDOCSYMS ^{B}"##"/[^#] ...@@ -829,6 +829,11 @@ STARTDOCSYMS ^{B}"##"/[^#]
current->name = current->name.stripWhiteSpace(); current->name = current->name.stripWhiteSpace();
newFunction(); newFunction();
} }
{B}":" { // function without arguments
g_specialBlock = TRUE; // expecting a docstring
bodyEntry = current;
BEGIN( FunctionBody );
}
{B}"(" { {B}"(" {
BEGIN( FunctionParams ); BEGIN( FunctionParams );
...@@ -1110,7 +1115,7 @@ STARTDOCSYMS ^{B}"##"/[^#] ...@@ -1110,7 +1115,7 @@ STARTDOCSYMS ^{B}"##"/[^#]
g_stringContext=VariableEnd; g_stringContext=VariableEnd;
BEGIN(TripleString); BEGIN(TripleString);
} }
"(" { // typle "(" { // tuple
current->type = "tuple"; current->type = "tuple";
current->initializer+=*yytext; current->initializer+=*yytext;
g_atomStart='('; g_atomStart='(';
...@@ -1168,6 +1173,12 @@ STARTDOCSYMS ^{B}"##"/[^#] ...@@ -1168,6 +1173,12 @@ STARTDOCSYMS ^{B}"##"/[^#]
BEGIN(VariableEnd); BEGIN(VariableEnd);
} }
} }
"\"" {
g_stringContext=YY_START;
current->initializer+="\"";
g_copyString=&current->initializer;
BEGIN( DoubleQuoteString );
}
{IDENTIFIER} { {IDENTIFIER} {
current->initializer+=yytext; current->initializer+=yytext;
} }
......
...@@ -160,7 +160,7 @@ static int docBlockContext; ...@@ -160,7 +160,7 @@ static int docBlockContext;
static QCString docBlock; static QCString docBlock;
static QCString docBlockName; static QCString docBlockName;
static bool docBlockInBody; static bool docBlockInBody;
static bool docBlockJavaStyle; static bool docBlockAutoBrief;
static char docBlockTerm; static char docBlockTerm;
static QCString idlAttr; static QCString idlAttr;
...@@ -614,6 +614,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -614,6 +614,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
%x SkipSharp %x SkipSharp
%x SkipRound %x SkipRound
%x SkipSquare %x SkipSquare
%x SkipRemainder
%x TypedefName %x TypedefName
%x TryFunctionBlock %x TryFunctionBlock
%x TryFunctionBlockEnd %x TryFunctionBlockEnd
...@@ -1992,7 +1993,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -1992,7 +1993,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
} }
docBlockContext = YY_START; docBlockContext = YY_START;
docBlockInBody = FALSE; docBlockInBody = FALSE;
docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF"); docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
docBlock.resize(0); docBlock.resize(0);
docBlockTerm = ';'; docBlockTerm = ';';
if (yytext[yyleng-3]=='/') if (yytext[yyleng-3]=='/')
...@@ -2010,7 +2012,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -2010,7 +2012,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
lineCount(); lineCount();
docBlockContext = YY_START; docBlockContext = YY_START;
docBlockInBody = FALSE; docBlockInBody = FALSE;
docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF"); docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
docBlock.resize(0); docBlock.resize(0);
docBlockTerm = ','; docBlockTerm = ',';
if (yytext[yyleng-3]=='/') if (yytext[yyleng-3]=='/')
...@@ -2032,7 +2035,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -2032,7 +2035,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
} }
docBlockContext = YY_START; docBlockContext = YY_START;
docBlockInBody = FALSE; docBlockInBody = FALSE;
docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF"); docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
docBlock.resize(0); docBlock.resize(0);
docBlockTerm = 0; docBlockTerm = 0;
if (yytext[yyleng-3]=='/') if (yytext[yyleng-3]=='/')
...@@ -2072,7 +2076,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -2072,7 +2076,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
{ {
docBlockContext = YY_START; docBlockContext = YY_START;
docBlockInBody = FALSE; docBlockInBody = FALSE;
docBlockJavaStyle = FALSE; docBlockAutoBrief = FALSE;
docBlock.resize(0); docBlock.resize(0);
docBlockTerm = 0; docBlockTerm = 0;
startCommentBlock(TRUE); startCommentBlock(TRUE);
...@@ -2091,7 +2095,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -2091,7 +2095,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
docBlockContext = YY_START; docBlockContext = YY_START;
docBlockInBody = FALSE; docBlockInBody = FALSE;
docBlock.resize(0); docBlock.resize(0);
docBlockJavaStyle = yytext[2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF"); docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
docBlockTerm = 0; docBlockTerm = 0;
startCommentBlock(FALSE); startCommentBlock(FALSE);
BEGIN(DocBlock); BEGIN(DocBlock);
...@@ -2701,6 +2706,31 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -2701,6 +2706,31 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
initBracketCount=0; initBracketCount=0;
BEGIN(ReadInitializer); BEGIN(ReadInitializer);
} }
<FindFields>";" {
if (insideJava) // last enum field in Java class
{
current->fileName = yyFileName;
current->startLine = yyLineNr;
current->type = "@"; // enum marker
current->args = current->args.simplifyWhiteSpace();
current->name = current->name.stripWhiteSpace();
current->section = Entry::VARIABLE_SEC;
current_root->addSubEntry(current);
current = new Entry ;
initEntry();
// TODO: skip until the end of the scope
BEGIN( SkipRemainder );
}
else
{
REJECT;
}
}
<SkipRemainder>\n {
yyLineNr++;
}
<SkipRemainder>[^\n]*
<FindFields>"," { <FindFields>"," {
//printf("adding `%s' `%s' `%s' to enum `%s' (mGrpId=%d)\n", //printf("adding `%s' `%s' `%s' to enum `%s' (mGrpId=%d)\n",
// current->type.data(), current->name.data(), // current->type.data(), current->name.data(),
...@@ -3884,7 +3914,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -3884,7 +3914,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
docBlockContext = SkipCurlyEndDoc; docBlockContext = SkipCurlyEndDoc;
docBlockInBody = FALSE; docBlockInBody = FALSE;
docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF"); docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
docBlock.resize(0); docBlock.resize(0);
docBlockTerm = '}'; docBlockTerm = '}';
if (yytext[yyleng-3]=='/') if (yytext[yyleng-3]=='/')
...@@ -3902,7 +3933,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -3902,7 +3933,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
<SkipCurlyEndDoc>"}"{BN}*("/*!"|"/**"|"//!"|"///")"<" { // desc is followed by another one <SkipCurlyEndDoc>"}"{BN}*("/*!"|"/**"|"//!"|"///")"<" { // desc is followed by another one
docBlockContext = SkipCurlyEndDoc; docBlockContext = SkipCurlyEndDoc;
docBlockInBody = FALSE; docBlockInBody = FALSE;
docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF"); docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
docBlock.resize(0); docBlock.resize(0);
docBlockTerm = '}'; docBlockTerm = '}';
if (yytext[yyleng-3]=='/') if (yytext[yyleng-3]=='/')
...@@ -4493,8 +4525,21 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -4493,8 +4525,21 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
} }
docBlockContext = YY_START; docBlockContext = YY_START;
docBlockInBody = YY_START==SkipCurly; docBlockInBody = YY_START==SkipCurly;
docBlockJavaStyle = FALSE; docBlockAutoBrief = Config_getBool("QT_AUTOBRIEF");
docBlock.resize(0); docBlock.resize(0);
if (docBlockAutoBrief)
{
current->briefLine = yyLineNr;
current->briefFile = yyFileName;
}
if (!docBlockInBody)
{
current->doc.resize(0);
if (docBlockAutoBrief)
{
current->brief.resize(0);
}
}
startCommentBlock(FALSE); startCommentBlock(FALSE);
BEGIN( DocBlock ); BEGIN( DocBlock );
} }
...@@ -4514,9 +4559,9 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -4514,9 +4559,9 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
current->docFile = yyFileName; current->docFile = yyFileName;
docBlockContext = YY_START; docBlockContext = YY_START;
docBlockInBody = YY_START==SkipCurly; docBlockInBody = YY_START==SkipCurly;
docBlockJavaStyle = Config_getBool("JAVADOC_AUTOBRIEF"); docBlockAutoBrief = Config_getBool("JAVADOC_AUTOBRIEF");
docBlock.resize(0); docBlock.resize(0);
if (docBlockJavaStyle) if (docBlockAutoBrief)
{ {
current->briefLine = yyLineNr; current->briefLine = yyLineNr;
current->briefFile = yyFileName; current->briefFile = yyFileName;
...@@ -4524,7 +4569,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -4524,7 +4569,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
if (!docBlockInBody) if (!docBlockInBody)
{ {
current->doc.resize(0); current->doc.resize(0);
if (docBlockJavaStyle) if (docBlockAutoBrief)
{ {
current->brief.resize(0); current->brief.resize(0);
} }
...@@ -4551,7 +4596,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -4551,7 +4596,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
} }
docBlockContext = YY_START; docBlockContext = YY_START;
docBlockInBody = YY_START==SkipCurly; docBlockInBody = YY_START==SkipCurly;
docBlockJavaStyle = FALSE; docBlockAutoBrief = FALSE;
docBlock.resize(0); docBlock.resize(0);
startCommentBlock(TRUE); startCommentBlock(TRUE);
BEGIN( DocLine ); BEGIN( DocLine );
...@@ -4575,7 +4620,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -4575,7 +4620,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
} }
docBlockContext = YY_START; docBlockContext = YY_START;
docBlockInBody = YY_START==SkipCurly; docBlockInBody = YY_START==SkipCurly;
docBlockJavaStyle = FALSE; docBlockAutoBrief = FALSE;
docBlock.resize(0); docBlock.resize(0);
startCommentBlock(TRUE); startCommentBlock(TRUE);
BEGIN( DocLine ); BEGIN( DocLine );
...@@ -4932,7 +4977,7 @@ static void handleCommentBlock(const QCString &doc,bool brief) ...@@ -4932,7 +4977,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
yyFileName, // file yyFileName, // file
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 : docBlockAutoBrief,
docBlockInBody, docBlockInBody,
protection, protection,
position, position,
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
// introducing TranslatorAdapter class and the abstract base // introducing TranslatorAdapter class and the abstract base
// class Translator. The English translator is now on the same // class Translator. The English translator is now on the same
// level as other translators. // level as other translators.
// 2001/05/02 - Decode() inline changed to decode(); cleaning. // 2001/05/02 - ) inline changed to ); cleaning.
// 2001/05/18 - Updates, corrections. // 2001/05/18 - Updates, corrections.
// 2001/05/25 - Corrections. // 2001/05/25 - Corrections.
// 2001/07/16 - trClassDocumentation() updated as in the English translator. // 2001/07/16 - trClassDocumentation() updated as in the English translator.
...@@ -69,6 +69,7 @@ ...@@ -69,6 +69,7 @@
// modified trCallGraph() to make the meaning unambiguous // modified trCallGraph() to make the meaning unambiguous
// and clear in the Czech language. // and clear in the Czech language.
// 2006/06/13 - translation of the trEnumerationValueDocumentation(). // 2006/06/13 - translation of the trEnumerationValueDocumentation().
// 2007/03/20 - removing ), conversion of literals to UTF-8.
// Todo // Todo
// ---- // ----
...@@ -80,32 +81,16 @@ ...@@ -80,32 +81,16 @@
// Notices: // Notices:
// -------- // --------
// The conditional compilation ensures or the neutral functionality // The conditional compilation ensures or the neutral functionality
// of the private inline decode(), or calling the WinToISO() method // of the private inline ), or calling the WinToISO() method
// for on-line encoding conversion. If you want to maintain the // for on-line encoding conversion. If you want to maintain the
// source in the iso-8859-2, do convert the encoding of the source, // source in the iso-8859-2, do convert the encoding of the source,
// change the conditional definition of the inline decode() using the // change the conditional definition of the inline ) using the
// method ISO88592ToWin1250() -- for conversion of strings for the // method ISO88592ToWin1250() -- for conversion of strings for the
// Windows version. The version which does not call the function is // Windows version. The version which does not call the function is
// probably slightly faster. // probably slightly faster.
class TranslatorCzech : public Translator class TranslatorCzech : public Translator
{ {
private:
/*! The decode() inline assumes the source written in the
Windows encoding (maintainer only dependent).
*/
inline QCString decode(const QCString & sInput)
{
//if (Config_getBool("USE_WINDOWS_ENCODING"))
//{
return sInput;
//}
//else
//{
// return Win1250ToISO88592(sInput);
//}
}
public: public:
// --- Language control methods ------------------- // --- Language control methods -------------------
...@@ -123,7 +108,7 @@ class TranslatorCzech : public Translator ...@@ -123,7 +108,7 @@ class TranslatorCzech : public Translator
{ {
//if (Config_getBool("USE_WINDOWS_ENCODING")) //if (Config_getBool("USE_WINDOWS_ENCODING"))
//{ //{
return "windows-1250"; return "utf-8";
//} //}
//else //else
//{ //{
...@@ -135,83 +120,83 @@ class TranslatorCzech : public Translator ...@@ -135,83 +120,83 @@ class TranslatorCzech : public Translator
/*! used in the compound documentation before a list of related functions. */ /*! used in the compound documentation before a list of related functions. */
virtual QCString trRelatedFunctions() virtual QCString trRelatedFunctions()
{ return decode("Související funkce"); } { return "Související funkce"; }
/*! subscript for the related functions. */ /*! subscript for the related functions. */
virtual QCString trRelatedSubscript() virtual QCString trRelatedSubscript()
{ return decode("(Uvedené funkce nejsou èlenskými funkcemi.)"); } { return "(Uvedené funkce nejsou členskými funkcemi.)"; }
/*! header that is put before the detailed description of files, classes and namespaces. */ /*! header that is put before the detailed description of files, classes and namespaces. */
virtual QCString trDetailedDescription() virtual QCString trDetailedDescription()
{ return decode("Detailní popis"); } { return "Detailní popis"; }
/*! header that is put before the list of typedefs. */ /*! header that is put before the list of typedefs. */
virtual QCString trMemberTypedefDocumentation() virtual QCString trMemberTypedefDocumentation()
{ return decode("Dokumentace k èlenským typùm"); } { return "Dokumentace k členským typům"; }
/*! header that is put before the list of enumerations. */ /*! header that is put before the list of enumerations. */
virtual QCString trMemberEnumerationDocumentation() virtual QCString trMemberEnumerationDocumentation()
{ return decode("Dokumentace k èlenským výètùm"); } { return "Dokumentace k členským výčtům"; }
/*! header that is put before the list of member functions. */ /*! header that is put before the list of member functions. */
virtual QCString trMemberFunctionDocumentation() virtual QCString trMemberFunctionDocumentation()
{ return decode("Dokumentace k metodám"); } { return "Dokumentace k metodám"; }
/*! header that is put before the list of member attributes. */ /*! header that is put before the list of member attributes. */
virtual QCString trMemberDataDocumentation() virtual QCString trMemberDataDocumentation()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("Dokumentace k položkám"); return "Dokumentace k položkám";
} }
else else
{ {
return decode("Dokumentace k datovým èlenùm"); return "Dokumentace k datovým členům";
} }
} }
/*! this is the text of a link put after brief descriptions. */ /*! this is the text of a link put after brief descriptions. */
virtual QCString trMore() virtual QCString trMore()
{ return decode("..."); } { return "..."; }
/*! put in the class documentation */ /*! put in the class documentation */
virtual QCString trListOfAllMembers() virtual QCString trListOfAllMembers()
{ return decode("Seznam všech èlenù."); } { return "Seznam všech členů."; }
/*! used as the title of the "list of all members" page of a class */ /*! used as the title of the "list of all members" page of a class */
virtual QCString trMemberList() virtual QCString trMemberList()
{ return decode("Seznam èlenù tøídy"); } { return "Seznam členů třídy"; }
/*! this is the first part of a sentence that is followed by a class name */ /*! this is the first part of a sentence that is followed by a class name */
virtual QCString trThisIsTheListOfAllMembers() virtual QCString trThisIsTheListOfAllMembers()
{ return decode("Zde naleznete úplný seznam èlenù tøídy "); } { return "Zde naleznete úplný seznam členů třídy "; }
/*! this is the remainder of the sentence after the class name */ /*! this is the remainder of the sentence after the class name */
virtual QCString trIncludingInheritedMembers() virtual QCString trIncludingInheritedMembers()
{ return decode(", vèetnì všech zdìdìných èlenù."); } { return ", včetně všech zděděných členů."; }
/*! this is put at the author sections at the bottom of man pages. /*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name. * parameter s is name of the project name.
*/ */
virtual QCString trGeneratedAutomatically(const char *s) virtual QCString trGeneratedAutomatically(const char *s)
{ QCString result="Generováno automaticky programem Doxygen " { QCString result("Generováno automaticky programem Doxygen "
"ze zdrojových textù"; "ze zdrojových textů");
if (s) result+=(QCString)" projektu "+s; if (s) result += QCString(" projektu ") + s;
result+="."; result += ".";
return decode(result); return result;
} }
/*! put after an enum name in the list of all members */ /*! put after an enum name in the list of all members */
virtual QCString trEnumName() virtual QCString trEnumName()
{ return decode("jméno výètu"); } { return "jméno výčtu"; }
/*! put after an enum value in the list of all members */ /*! put after an enum value in the list of all members */
virtual QCString trEnumValue() virtual QCString trEnumValue()
{ return decode("hodnota výètu"); } { return "hodnota výčtu"; }
/*! put after an undocumented member in the list of all members */ /*! put after an undocumented member in the list of all members */
virtual QCString trDefinedIn() virtual QCString trDefinedIn()
{ return decode("definován v"); } { return "definován v"; }
// quick reference sections // quick reference sections
...@@ -219,39 +204,39 @@ class TranslatorCzech : public Translator ...@@ -219,39 +204,39 @@ class TranslatorCzech : public Translator
* compounds or files (see the \\group command). * compounds or files (see the \\group command).
*/ */
virtual QCString trModules() virtual QCString trModules()
{ return decode("Moduly"); } { return "Moduly"; }
/*! This is put above each page as a link to the class hierarchy */ /*! This is put above each page as a link to the class hierarchy */
virtual QCString trClassHierarchy() virtual QCString trClassHierarchy()
{ return decode("Hierarchie tøíd"); } { return "Hierarchie tříd"; }
/*! This is put above each page as a link to the list of annotated classes */ /*! This is put above each page as a link to the list of annotated classes */
virtual QCString trCompoundList() virtual QCString trCompoundList()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("Datové struktury"); return "Datové struktury";
} }
else else
{ {
return decode("Seznam tøíd"); return "Seznam tříd";
} }
} }
/*! This is put above each page as a link to the list of documented files */ /*! This is put above each page as a link to the list of documented files */
virtual QCString trFileList() virtual QCString trFileList()
{ return decode("Seznam souborù"); } { return "Seznam souborů"; }
/*! This is put above each page as a link to all members of compounds. */ /*! This is put above each page as a link to all members of compounds. */
virtual QCString trCompoundMembers() virtual QCString trCompoundMembers()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("Datové položky"); return "Datové položky";
} }
else else
{ {
return decode("Seznam èlenù tøíd"); return "Seznam členů tříd";
} }
} }
...@@ -260,39 +245,39 @@ class TranslatorCzech : public Translator ...@@ -260,39 +245,39 @@ class TranslatorCzech : public Translator
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("Globální symboly"); return "Globální symboly";
} }
else else
{ {
return decode("Symboly v souborech"); return "Symboly v souborech";
} }
} }
/*! This is put above each page as a link to all related pages. */ /*! This is put above each page as a link to all related pages. */
virtual QCString trRelatedPages() virtual QCString trRelatedPages()
{ return decode("Ostatní stránky"); } { return "Ostatní stránky"; }
/*! This is put above each page as a link to all examples. */ /*! This is put above each page as a link to all examples. */
virtual QCString trExamples() virtual QCString trExamples()
{ return decode("Pøíklady"); } { return "Příklady"; }
/*! This is put above each page as a link to the search engine. */ /*! This is put above each page as a link to the search engine. */
virtual QCString trSearch() virtual QCString trSearch()
{ return decode("Hledat"); } { return "Hledat"; }
/*! This is an introduction to the class hierarchy. */ /*! This is an introduction to the class hierarchy. */
virtual QCString trClassHierarchyDescription() virtual QCString trClassHierarchyDescription()
{ return decode("Zde naleznete seznam, vyjadøující vztah dìdiènosti tøíd. " { return "Zde naleznete seznam, vyjadřující vztah dědičnosti tříd. "
"Je seøazen pøibližnì (ale ne úplnì) podle abecedy:"); "Je seřazen přibližně (ale ne úplně) podle abecedy:";
} }
/*! This is an introduction to the list with all files. */ /*! This is an introduction to the list with all files. */
virtual QCString trFileListDescription(bool extractAll) virtual QCString trFileListDescription(bool extractAll)
{ {
QCString result="Zde naleznete seznam všech "; QCString result="Zde naleznete seznam všech ";
if (!extractAll) result+="dokumentovaných "; if (!extractAll) result+="dokumentovaných ";
result+="souborù se struènými popisy:"; result+="souborů se stručnými popisy:";
return decode(result); return result;
} }
/*! This is an introduction to the annotated compound list. */ /*! This is an introduction to the annotated compound list. */
...@@ -300,35 +285,35 @@ class TranslatorCzech : public Translator ...@@ -300,35 +285,35 @@ class TranslatorCzech : public Translator
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("Následující seznam obsahuje identifikace datových " return "Následující seznam obsahuje identifikace datových "
"struktur a jejich struèné popisy:"); "struktur a jejich stručné popisy:";
} }
else else
{ {
return decode("Následující seznam obsahuje pøedevším identifikace " return "Následující seznam obsahuje především identifikace "
"tøíd, ale nacházejí se zde i další netriviální prvky, " "tříd, ale nacházejí se zde i další netriviální prvky, "
"jako jsou struktury (struct), unie (union) a rozhraní " "jako jsou struktury (struct), unie (union) a rozhraní "
"(interface). V seznamu jsou uvedeny jejich struèné " "(interface). V seznamu jsou uvedeny jejich stručné "
"popisy:"); "popisy:";
} }
} }
/*! This is an introduction to the page with all class members. */ /*! This is an introduction to the page with all class members. */
virtual QCString trCompoundMembersDescription(bool extractAll) virtual QCString trCompoundMembersDescription(bool extractAll)
{ {
QCString result= "Zde naleznete seznam všech "; QCString result= "Zde naleznete seznam všech ";
if (!extractAll) if (!extractAll)
{ {
result += "dokumentovaných "; result += "dokumentovaných ";
} }
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
result += "položek struktur (struct) a unií (union) "; result += "položek struktur (struct) a unií (union) ";
} }
else else
{ {
result += "èlenù tøíd "; result += "členů tříd ";
} }
result += "s odkazy na "; result += "s odkazy na ";
...@@ -337,83 +322,83 @@ class TranslatorCzech : public Translator ...@@ -337,83 +322,83 @@ class TranslatorCzech : public Translator
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
result += "dokumentaci struktur/unií, ke kterým pøíslušejí:"; result += "dokumentaci struktur/unií, ke kterým příslušejí:";
} }
else else
{ {
result += "dokumentaci tøíd, ke kterým pøíslušejí:"; result += "dokumentaci tříd, ke kterým příslušejí:";
} }
} }
else else
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
result+="struktury/unie, ke kterým pøíslušejí:"; result+="struktury/unie, ke kterým příslušejí:";
} }
else else
{ {
result+="tøídy, ke kterým pøíslušejí:"; result+="třídy, ke kterým příslušejí:";
} }
} }
return decode(result); return result;
} }
/*! This is an introduction to the page with all file members. */ /*! This is an introduction to the page with all file members. */
virtual QCString trFileMembersDescription(bool extractAll) virtual QCString trFileMembersDescription(bool extractAll)
{ {
QCString result="Zde naleznete seznam všech "; QCString result="Zde naleznete seznam všech ";
if (!extractAll) result+="dokumentovaných "; if (!extractAll) result+="dokumentovaných ";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
result+="funkcí, promìnných, maker, výètù a definic typù (typedef) " result+="funkcí, proměnných, maker, výčtů a definic typů (typedef) "
"s odkazy na "; "s odkazy na ";
} }
else else
{ {
result+="symbolù, které jsou definovány na úrovni svých souborù. " result+="symbolů, které jsou definovány na úrovni svých souborů. "
"Pro každý symbol je uveden odkaz na "; "Pro každý symbol je uveden odkaz na ";
} }
if (extractAll) if (extractAll)
result+="soubory, ke kterým pøíslušejí:"; result+="soubory, ke kterým příslušejí:";
else else
result+="dokumentaci:"; result+="dokumentaci:";
return decode(result); return result;
} }
/*! This is an introduction to the page with the list of all examples */ /*! This is an introduction to the page with the list of all examples */
virtual QCString trExamplesDescription() virtual QCString trExamplesDescription()
{ return decode("Zde naleznete seznam všech pøíkladù:"); } { return "Zde naleznete seznam všech příkladů:"; }
/*! This is an introduction to the page with the list of related pages */ /*! This is an introduction to the page with the list of related pages */
virtual QCString trRelatedPagesDescription() virtual QCString trRelatedPagesDescription()
{ return decode("Následující seznam odkazuje na další stránky projektu:"); } { return "Následující seznam odkazuje na další stránky projektu:"; }
/*! This is an introduction to the page with the list of class/file groups */ /*! This is an introduction to the page with the list of class/file groups */
virtual QCString trModulesDescription() virtual QCString trModulesDescription()
{ return decode("Zde naleznete seznam všech modulù:"); } { return "Zde naleznete seznam všech modulů:"; }
// index titles (the project name is prepended for these) // index titles (the project name is prepended for these)
/*! This is used in HTML as the title of index.html. */ /*! This is used in HTML as the title of index.html. */
virtual QCString trDocumentation() virtual QCString trDocumentation()
{ return decode("Dokumentace"); } { return "Dokumentace"; }
/*! This is used in LaTeX as the title of the chapter with the /*! This is used in LaTeX as the title of the chapter with the
* index of all groups. * index of all groups.
*/ */
virtual QCString trModuleIndex() virtual QCString trModuleIndex()
{ return decode("Rejstøík modulù"); } { return "Rejstřík modulů"; }
/*! This is used in LaTeX as the title of the chapter with the /*! This is used in LaTeX as the title of the chapter with the
* class hierarchy. * class hierarchy.
*/ */
virtual QCString trHierarchicalIndex() virtual QCString trHierarchicalIndex()
{ return decode("Rejstøík hierarchie tøíd"); } { return "Rejstřík hierarchie tříd"; }
/*! This is used in LaTeX as the title of the chapter with the /*! This is used in LaTeX as the title of the chapter with the
* annotated compound index. * annotated compound index.
...@@ -422,11 +407,11 @@ class TranslatorCzech : public Translator ...@@ -422,11 +407,11 @@ class TranslatorCzech : public Translator
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("Rejstøík datových struktur"); return "Rejstřík datových struktur";
} }
else else
{ {
return decode("Rejstøík tøíd"); return "Rejstřík tříd";
} }
} }
...@@ -434,13 +419,13 @@ class TranslatorCzech : public Translator ...@@ -434,13 +419,13 @@ class TranslatorCzech : public Translator
* list of all files. * list of all files.
*/ */
virtual QCString trFileIndex() virtual QCString trFileIndex()
{ return decode("Rejstøík souborù"); } { return "Rejstřík souborů"; }
/*! This is used in LaTeX as the title of the chapter containing /*! This is used in LaTeX as the title of the chapter containing
* the documentation of all groups. * the documentation of all groups.
*/ */
virtual QCString trModuleDocumentation() virtual QCString trModuleDocumentation()
{ return decode("Dokumentace modulù"); } { return "Dokumentace modulů"; }
/*! This is used in LaTeX as the title of the chapter containing /*! This is used in LaTeX as the title of the chapter containing
* the documentation of all classes, structs and unions. * the documentation of all classes, structs and unions.
...@@ -449,11 +434,11 @@ class TranslatorCzech : public Translator ...@@ -449,11 +434,11 @@ class TranslatorCzech : public Translator
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("Dokumentace datových struktur"); return "Dokumentace datových struktur";
} }
else else
{ {
return decode("Dokumentace tøíd"); return "Dokumentace tříd";
} }
} }
...@@ -461,101 +446,101 @@ class TranslatorCzech : public Translator ...@@ -461,101 +446,101 @@ class TranslatorCzech : public Translator
* the documentation of all files. * the documentation of all files.
*/ */
virtual QCString trFileDocumentation() virtual QCString trFileDocumentation()
{ return decode("Dokumentace souborù"); } { return "Dokumentace souborů"; }
/*! This is used in LaTeX as the title of the chapter containing /*! This is used in LaTeX as the title of the chapter containing
* the documentation of all examples. * the documentation of all examples.
*/ */
virtual QCString trExampleDocumentation() virtual QCString trExampleDocumentation()
{ return decode("Dokumentace pøíkladù"); } { return "Dokumentace příkladů"; }
/*! This is used in LaTeX as the title of the chapter containing /*! This is used in LaTeX as the title of the chapter containing
* the documentation of all related pages. * the documentation of all related pages.
*/ */
virtual QCString trPageDocumentation() virtual QCString trPageDocumentation()
{ return decode("Dokumentace souvisejících stránek"); } { return "Dokumentace souvisejících stránek"; }
/*! This is used in LaTeX as the title of the document */ /*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual() virtual QCString trReferenceManual()
{ return decode("Referenèní pøíruèka"); } { return "Referenční příručka"; }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of defines * list of defines
*/ */
virtual QCString trDefines() virtual QCString trDefines()
{ return decode("Definice maker"); } { return "Definice maker"; }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of function prototypes * list of function prototypes
*/ */
virtual QCString trFuncProtos() virtual QCString trFuncProtos()
{ return decode("Prototypy"); } { return "Prototypy"; }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of typedefs * list of typedefs
*/ */
virtual QCString trTypedefs() virtual QCString trTypedefs()
{ return decode("Definice typù"); } { return "Definice typů"; }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of enumerations * list of enumerations
*/ */
virtual QCString trEnumerations() virtual QCString trEnumerations()
{ return decode("Výèty"); } { return "Výčty"; }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of (global) functions * list of (global) functions
*/ */
virtual QCString trFunctions() virtual QCString trFunctions()
{ return decode("Funkce"); } { return "Funkce"; }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of (global) variables * list of (global) variables
*/ */
virtual QCString trVariables() virtual QCString trVariables()
{ return decode("Promìnné"); } { return "Proměnné"; }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of (global) variables * list of (global) variables
*/ */
virtual QCString trEnumerationValues() virtual QCString trEnumerationValues()
{ return decode("Hodnoty výètu"); } { return "Hodnoty výčtu"; }
/*! This is used in the documentation of a file before the list of /*! This is used in the documentation of a file before the list of
* documentation blocks for defines * documentation blocks for defines
*/ */
virtual QCString trDefineDocumentation() virtual QCString trDefineDocumentation()
{ return decode("Dokumentace k definicím maker"); } { return "Dokumentace k definicím maker"; }
/*! 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
*/ */
virtual QCString trFunctionPrototypeDocumentation() virtual QCString trFunctionPrototypeDocumentation()
{ return decode("Dokumentace prototypù"); } { return "Dokumentace prototypů"; }
/*! 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 typedefs * of documentation blocks for typedefs
*/ */
virtual QCString trTypedefDocumentation() virtual QCString trTypedefDocumentation()
{ return decode("Dokumentace definic typù"); } { return "Dokumentace definic typů"; }
/*! 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 enumeration types * of documentation blocks for enumeration types
*/ */
virtual QCString trEnumerationTypeDocumentation() virtual QCString trEnumerationTypeDocumentation()
{ return decode("Dokumentace výètových typù"); } { return "Dokumentace výčtových typů"; }
/*! 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
*/ */
virtual QCString trFunctionDocumentation() virtual QCString trFunctionDocumentation()
{ return decode("Dokumentace funkcí"); } { return "Dokumentace funkcí"; }
/*! 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 variables * of documentation blocks for variables
*/ */
virtual QCString trVariableDocumentation() virtual QCString trVariableDocumentation()
{ return decode("Dokumentace promìnných"); } { return "Dokumentace proměnných"; }
/*! This is used in the documentation of a file/namespace/group before /*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds * the list of links to documented compounds
...@@ -564,11 +549,11 @@ class TranslatorCzech : public Translator ...@@ -564,11 +549,11 @@ class TranslatorCzech : public Translator
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("Datové struktry"); return "Datové struktry";
} }
else else
{ {
return decode("Tøídy"); return "Třídy";
} }
} }
...@@ -577,80 +562,82 @@ class TranslatorCzech : public Translator ...@@ -577,80 +562,82 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trGeneratedAt(const char *date,const char *projName) virtual QCString trGeneratedAt(const char *date,const char *projName)
{ {
QCString result=(QCString)"Generováno "+date; QCString result("Generováno ");
if (projName) result+=(QCString)" pro projekt "+projName; result += date;
result+=(QCString)" programem"; if (projName)
return decode(result); result += QCString(" pro projekt ") + projName;
result += " programem";
return result;
} }
/*! This is part of the sentence used in the standard footer of each page. /*! This is part of the sentence used in the standard footer of each page.
*/ */
virtual QCString trWrittenBy() virtual QCString trWrittenBy()
{ {
return decode(" -- autor "); return " -- autor ";
} }
/*! this text is put before a class diagram */ /*! this text is put before a class diagram */
virtual QCString trClassDiagram(const char *clName) virtual QCString trClassDiagram(const char *clName)
{ {
return decode((QCString)"Diagram dìdiènosti pro tøídu "+clName); return QCString("Diagram dědičnosti pro třídu ") + clName;
} }
/*! this text is generated when the \\internal command is used. */ /*! this text is generated when the \\internal command is used. */
virtual QCString trForInternalUseOnly() virtual QCString trForInternalUseOnly()
{ return decode("Pouze pro vnitøní použití."); } { return "Pouze pro vnitřní použití."; }
/*! this text is generated when the \\warning command is used. */ /*! this text is generated when the \\warning command is used. */
virtual QCString trWarning() virtual QCString trWarning()
{ return decode("Pozor"); } { return "Pozor"; }
/*! this text is generated when the \\version command is used. */ /*! this text is generated when the \\version command is used. */
virtual QCString trVersion() virtual QCString trVersion()
{ return decode("Verze"); } { return "Verze"; }
/*! this text is generated when the \\date command is used. */ /*! this text is generated when the \\date command is used. */
virtual QCString trDate() virtual QCString trDate()
{ return decode("Datum"); } { return "Datum"; }
/*! this text is generated when the \\return command is used. */ /*! this text is generated when the \\return command is used. */
virtual QCString trReturns() virtual QCString trReturns()
{ return decode("Návratová hodnota"); } { return "Návratová hodnota"; }
/*! this text is generated when the \\sa command is used. */ /*! this text is generated when the \\sa command is used. */
virtual QCString trSeeAlso() virtual QCString trSeeAlso()
{ return decode("Viz také"); } { return "Viz také"; }
/*! this text is generated when the \\param command is used. */ /*! this text is generated when the \\param command is used. */
virtual QCString trParameters() virtual QCString trParameters()
{ return decode("Parametry"); } { return "Parametry"; }
/*! this text is generated when the \\exception command is used. */ /*! this text is generated when the \\exception command is used. */
virtual QCString trExceptions() virtual QCString trExceptions()
{ return decode("Výjimky"); } { return "Výjimky"; }
/*! this text is used in the title page of a LaTeX document. */ /*! this text is used in the title page of a LaTeX document. */
virtual QCString trGeneratedBy() virtual QCString trGeneratedBy()
{ return decode("Generováno programem"); } { return "Generováno programem"; }
// new since 0.49-990307 // new since 0.49-990307
/*! used as the title of page containing all the index of all namespaces. */ /*! used as the title of page containing all the index of all namespaces. */
virtual QCString trNamespaceList() virtual QCString trNamespaceList()
{ return decode("Seznam prostorù jmen"); } { return "Seznam prostorů jmen"; }
/*! used as an introduction to the namespace list */ /*! used as an introduction to the namespace list */
virtual QCString trNamespaceListDescription(bool extractAll) virtual QCString trNamespaceListDescription(bool extractAll)
{ {
QCString result="Zde naleznete seznam všech "; QCString result="Zde naleznete seznam všech ";
if (!extractAll) result+="dokumentovaných "; if (!extractAll) result+="dokumentovaných ";
result+="prostorù jmen se struèným popisem:"; result+="prostorů jmen se stručným popisem:";
return decode(result); return result;
} }
/*! used in the class documentation as a header before the list of all /*! used in the class documentation as a header before the list of all
* friends of a class * friends of a class
*/ */
virtual QCString trFriends() virtual QCString trFriends()
{ return decode("Friends"); } { return "Friends"; }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990405 // new since 0.49-990405
...@@ -660,7 +647,7 @@ class TranslatorCzech : public Translator ...@@ -660,7 +647,7 @@ class TranslatorCzech : public Translator
* related classes * related classes
*/ */
virtual QCString trRelatedFunctionDocumentation() virtual QCString trRelatedFunctionDocumentation()
{ return decode("Dokumentace k friends"); } { return "Dokumentace k friends"; }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990425 // new since 0.49-990425
...@@ -672,19 +659,19 @@ class TranslatorCzech : public Translator ...@@ -672,19 +659,19 @@ class TranslatorCzech : public Translator
bool isTemplate) bool isTemplate)
{ {
QCString result("Dokumentace "); QCString result("Dokumentace ");
if (isTemplate) result+=ablony "; if (isTemplate) result += "šablony ";
switch(compType) switch(compType)
{ {
case ClassDef::Class: result+="tøídy "; break; case ClassDef::Class: result += "třídy "; break;
case ClassDef::Struct: result+="struktury "; break; case ClassDef::Struct: result += "struktury "; break;
case ClassDef::Union: result+="unie "; break; case ClassDef::Union: result += "unie "; break;
case ClassDef::Interface: result+="rozhraní "; break; case ClassDef::Interface: result += "rozhraní "; break;
case ClassDef::Protocol: result+="protocol "; break; // translate me! case ClassDef::Protocol: result += "protokolu "; break;
case ClassDef::Category: result+="category "; break; // translate me! case ClassDef::Category: result += "kategorie "; break;
case ClassDef::Exception: result+="výjimky "; break; case ClassDef::Exception: result += "výjimky "; break;
} }
result+=clName; result += clName;
return decode(result); return result;
} }
/*! used as the title of the HTML page of a file */ /*! used as the title of the HTML page of a file */
...@@ -692,7 +679,7 @@ class TranslatorCzech : public Translator ...@@ -692,7 +679,7 @@ class TranslatorCzech : public Translator
{ {
QCString result("Dokumentace souboru "); QCString result("Dokumentace souboru ");
result+=fileName; result+=fileName;
return decode(result); return result;
} }
/*! used as the title of the HTML page of a namespace */ /*! used as the title of the HTML page of a namespace */
...@@ -700,32 +687,32 @@ class TranslatorCzech : public Translator ...@@ -700,32 +687,32 @@ class TranslatorCzech : public Translator
{ {
QCString result("Dokumentace prostoru jmen "); QCString result("Dokumentace prostoru jmen ");
result+=namespaceName; result+=namespaceName;
return decode(result); return result;
} }
/* /*
* these are for the member sections of a class, struct or union * these are for the member sections of a class, struct or union
*/ */
virtual QCString trPublicMembers() virtual QCString trPublicMembers()
{ return decode("Veøejné metody"); } { return "Veřejné metody"; }
virtual QCString trPublicSlots() virtual QCString trPublicSlots()
{ return decode("Veøejné sloty"); } { return "Veřejné sloty"; }
virtual QCString trSignals() virtual QCString trSignals()
{ return decode("Signály"); } { return "Signály"; }
virtual QCString trStaticPublicMembers() virtual QCString trStaticPublicMembers()
{ return decode("Statické veøejné metody"); } { return "Statické veřejné metody"; }
virtual QCString trProtectedMembers() virtual QCString trProtectedMembers()
{ return decode("Chránìné metody"); } { return "Chráněné metody"; }
virtual QCString trProtectedSlots() virtual QCString trProtectedSlots()
{ return decode("Chránìné sloty"); } { return "Chráněné sloty"; }
virtual QCString trStaticProtectedMembers() virtual QCString trStaticProtectedMembers()
{ return decode("Statické chránìné metody"); } { return "Statické chráněné metody"; }
virtual QCString trPrivateMembers() virtual QCString trPrivateMembers()
{ return decode("Privátní metody"); } { return "Privátní metody"; }
virtual QCString trPrivateSlots() virtual QCString trPrivateSlots()
{ return decode("Privátní sloty"); } { return "Privátní sloty"; }
virtual QCString trStaticPrivateMembers() virtual QCString trStaticPrivateMembers()
{ return decode("Statické privátní metody"); } { return "Statické privátní metody"; }
/*! this function is used to produce a comma-separated list of items. /*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put. * use generateMarker(i) to indicate where item i should be put.
...@@ -749,7 +736,7 @@ class TranslatorCzech : public Translator ...@@ -749,7 +736,7 @@ class TranslatorCzech : public Translator
result+=" a "; result+=" a ";
} }
} }
return decode(result); return result;
} }
/*! used in class documentation to produce a list of base classes, /*! used in class documentation to produce a list of base classes,
...@@ -757,10 +744,10 @@ class TranslatorCzech : public Translator ...@@ -757,10 +744,10 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trInheritsList(int numEntries) virtual QCString trInheritsList(int numEntries)
{ {
QCString result("Dìdí z "); QCString result("Dědí z ");
result += (numEntries == 1) ? "bázové tøídy " : "bázových tøíd "; result += (numEntries == 1) ? "bázové třídy " : "bázových tříd ";
result += trWriteList(numEntries)+"."; result += trWriteList(numEntries) + ".";
return decode(result); return result;
} }
/*! used in class documentation to produce a list of super classes, /*! used in class documentation to produce a list of super classes,
...@@ -768,10 +755,10 @@ class TranslatorCzech : public Translator ...@@ -768,10 +755,10 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trInheritedByList(int numEntries) virtual QCString trInheritedByList(int numEntries)
{ {
QCString result("Zdìdìna "); QCString result("Zděděna ");
result += (numEntries == 1) ? "tøídou " : "tøídami "; result += (numEntries == 1) ? "třídou " : "třídami ";
result += trWriteList(numEntries)+"."; result += trWriteList(numEntries) + ".";
return decode(result); return result;
} }
/*! used in member documentation blocks to produce a list of /*! used in member documentation blocks to produce a list of
...@@ -779,9 +766,9 @@ class TranslatorCzech : public Translator ...@@ -779,9 +766,9 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trReimplementedFromList(int numEntries) virtual QCString trReimplementedFromList(int numEntries)
{ {
QCString result("Reimplementuje stejnojmenný prvek z "); QCString result("Reimplementuje stejnojmenný prvek z ");
result += trWriteList(numEntries)+"."; result += trWriteList(numEntries) + ".";
return decode(result); return result;
} }
/*! used in member documentation blocks to produce a list of /*! used in member documentation blocks to produce a list of
...@@ -789,39 +776,39 @@ class TranslatorCzech : public Translator ...@@ -789,39 +776,39 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trReimplementedInList(int numEntries) virtual QCString trReimplementedInList(int numEntries)
{ {
QCString result("Reimplementováno v "); QCString result("Reimplementováno v ");
result += trWriteList(numEntries)+"."; result += trWriteList(numEntries) + ".";
return decode(result); return result;
} }
/*! This is put above each page as a link to all members of namespaces. */ /*! This is put above each page as a link to all members of namespaces. */
virtual QCString trNamespaceMembers() virtual QCString trNamespaceMembers()
{ return decode("Symboly v prostorech jmen"); } { return "Symboly v prostorech jmen"; }
/*! This is an introduction to the page with all namespace members */ /*! This is an introduction to the page with all namespace members */
virtual QCString trNamespaceMemberDescription(bool extractAll) virtual QCString trNamespaceMemberDescription(bool extractAll)
{ {
QCString result="Zde naleznete seznam všech "; QCString result="Zde naleznete seznam všech ";
if (!extractAll) result+="dokumentovaných "; if (!extractAll) result+="dokumentovaných ";
result+="symbolù, které jsou definovány ve svých prostorech jmen. " result+="symbolů, které jsou definovány ve svých prostorech jmen. "
"U každého je uveden odkaz na "; "U každého je uveden odkaz na ";
if (extractAll) if (extractAll)
result+="dokumentaci pøíslušného prostoru jmen:"; result+="dokumentaci příslušného prostoru jmen:";
else else
result+="pøíslušný prostor jmen:"; result+="příslušný prostor jmen:";
return decode(result); return result;
} }
/*! This is used in LaTeX as the title of the chapter with the /*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces. * index of all namespaces.
*/ */
virtual QCString trNamespaceIndex() virtual QCString trNamespaceIndex()
{ return decode("Rejstøík prostorù jmen"); } { return "Rejstřík prostorů jmen"; }
/*! This is used in LaTeX as the title of the chapter containing /*! This is used in LaTeX as the title of the chapter containing
* the documentation of all namespaces. * the documentation of all namespaces.
*/ */
virtual QCString trNamespaceDocumentation() virtual QCString trNamespaceDocumentation()
{ return decode("Dokumentace prostorù jmen"); } { return "Dokumentace prostorů jmen"; }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990522 // new since 0.49-990522
...@@ -831,7 +818,7 @@ class TranslatorCzech : public Translator ...@@ -831,7 +818,7 @@ class TranslatorCzech : public Translator
* namespaces in a file. * namespaces in a file.
*/ */
virtual QCString trNamespaces() virtual QCString trNamespaces()
{ return decode("Prostory jmen"); } { return "Prostory jmen"; }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990728 // new since 0.49-990728
...@@ -847,25 +834,25 @@ class TranslatorCzech : public Translator ...@@ -847,25 +834,25 @@ class TranslatorCzech : public Translator
QCString result=(QCString)"Dokumentace pro "; QCString result=(QCString)"Dokumentace pro ";
switch(compType) switch(compType)
{ {
case ClassDef::Class: result+="tuto tøídu"; break; case ClassDef::Class: result+="tuto třídu"; break;
case ClassDef::Struct: result+="tuto strukturu (struct)"; break; case ClassDef::Struct: result+="tuto strukturu (struct)"; break;
case ClassDef::Union: result+="tuto unii (union)"; break; case ClassDef::Union: result+="tuto unii (union)"; break;
case ClassDef::Interface: result+="toto rozhraní"; break; case ClassDef::Interface: result+="toto rozhraní"; break;
case ClassDef::Protocol: result+="protocol "; break; // translate me! case ClassDef::Protocol: result+="tento protokol "; break;
case ClassDef::Category: result+="category "; break; // translate me! case ClassDef::Category: result+="tuto kategorii "; break;
case ClassDef::Exception: result+="tuto výjimku"; break; case ClassDef::Exception: result+="tuto výjimku"; break;
} }
result+=" byla generována z "; result+=" byla generována z ";
if (single) result+="následujícího souboru:"; if (single) result+="následujícího souboru:";
else result+="následujících souborù:"; else result+="následujících souborů:";
return decode(result); return result;
} }
/*! This is in the (quick) index as a link to the alphabetical compound /*! This is in the (quick) index as a link to the alphabetical compound
* list. * list.
*/ */
virtual QCString trAlphabeticalList() virtual QCString trAlphabeticalList()
{ return decode("Rejstøík tøíd"); } { return "Rejstřík tříd"; }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990901 // new since 0.49-990901
...@@ -873,18 +860,18 @@ class TranslatorCzech : public Translator ...@@ -873,18 +860,18 @@ class TranslatorCzech : public Translator
/*! This is used as the heading text for the retval command. */ /*! This is used as the heading text for the retval command. */
virtual QCString trReturnValues() virtual QCString trReturnValues()
{ return decode("Vracené hodnoty"); } { return "Vracené hodnoty"; }
/*! This is in the (quick) index as a link to the main page (index.html) /*! This is in the (quick) index as a link to the main page (index.html)
*/ */
virtual QCString trMainPage() virtual QCString trMainPage()
{ return decode("Hlavní stránka"); } { return "Hlavní stránka"; }
/*! This is used in references to page that are put in the LaTeX /*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page. * documentation. It should be an abbreviation of the word page.
*/ */
virtual QCString trPageAbbreviation() virtual QCString trPageAbbreviation()
{ return decode("s."); } { return "s."; }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-991003 // new since 0.49-991003
...@@ -892,11 +879,11 @@ class TranslatorCzech : public Translator ...@@ -892,11 +879,11 @@ class TranslatorCzech : public Translator
virtual QCString trDefinedAtLineInSourceFile() virtual QCString trDefinedAtLineInSourceFile()
{ {
return decode("Definice je uvedena na øádku @0 v souboru @1."); return "Definice je uvedena na řádku @0 v souboru @1.";
} }
virtual QCString trDefinedInSourceFile() virtual QCString trDefinedInSourceFile()
{ {
return decode("Definice v souboru @0."); return "Definice v souboru @0.";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -905,7 +892,7 @@ class TranslatorCzech : public Translator ...@@ -905,7 +892,7 @@ class TranslatorCzech : public Translator
virtual QCString trDeprecated() virtual QCString trDeprecated()
{ {
return decode("Zastaralé"); return "Zastaralé";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -915,69 +902,69 @@ class TranslatorCzech : public Translator ...@@ -915,69 +902,69 @@ class TranslatorCzech : public Translator
/*! this text is put before a collaboration diagram */ /*! this text is put before a collaboration diagram */
virtual QCString trCollaborationDiagram(const char *clName) virtual QCString trCollaborationDiagram(const char *clName)
{ {
return decode((QCString)"Diagram tøíd pro "+clName+":"); return (QCString)"Diagram tříd pro "+clName+":";
} }
/*! this text is put before an include dependency graph */ /*! this text is put before an include dependency graph */
virtual QCString trInclDepGraph(const char *fName) virtual QCString trInclDepGraph(const char *fName)
{ {
return decode((QCString)"Graf závislostí na vkládaných souborech " return (QCString)"Graf závislostí na vkládaných souborech "
"pro "+fName+":"); "pro "+fName+":";
} }
/*! header that is put before the list of constructor/destructors. */ /*! header that is put before the list of constructor/destructors. */
virtual QCString trConstructorDocumentation() virtual QCString trConstructorDocumentation()
{ {
return decode("Dokumentace konstruktoru a destruktoru"); return "Dokumentace konstruktoru a destruktoru";
} }
/*! Used in the file documentation to point to the corresponding sources. */ /*! Used in the file documentation to point to the corresponding sources. */
virtual QCString trGotoSourceCode() virtual QCString trGotoSourceCode()
{ {
return decode("Zobrazit zdrojový text tohoto souboru."); return "Zobrazit zdrojový text tohoto souboru.";
} }
/*! Used in the file sources to point to the corresponding documentation. */ /*! Used in the file sources to point to the corresponding documentation. */
virtual QCString trGotoDocumentation() virtual QCString trGotoDocumentation()
{ {
return decode("Zobrazit dokumentaci tohoto souboru."); return "Zobrazit dokumentaci tohoto souboru.";
} }
/*! Text for the \\pre command */ /*! Text for the \\pre command */
virtual QCString trPrecondition() virtual QCString trPrecondition()
{ {
return decode("Precondition"); return "Precondition";
} }
/*! Text for the \\post command */ /*! Text for the \\post command */
virtual QCString trPostcondition() virtual QCString trPostcondition()
{ {
return decode("Postcondition"); return "Postcondition";
} }
/*! Text for the \\invariant command */ /*! Text for the \\invariant command */
virtual QCString trInvariant() virtual QCString trInvariant()
{ {
return decode("Invariant"); return "Invariant";
} }
/*! Text shown before a multi-line variable/enum initialization */ /*! Text shown before a multi-line variable/enum initialization */
virtual QCString trInitialValue() virtual QCString trInitialValue()
{ {
return decode("Initializer:"); return "Initializer:";
} }
/*! Text used the source code in the file index */ /*! Text used the source code in the file index */
virtual QCString trCode() virtual QCString trCode()
{ {
return decode("zdrojový text"); return "zdrojový text";
} }
virtual QCString trGraphicalHierarchy() virtual QCString trGraphicalHierarchy()
{ {
return decode("Grafické zobrazení hierarchie tøíd"); return "Grafické zobrazení hierarchie tříd";
} }
virtual QCString trGotoGraphicalHierarchy() virtual QCString trGotoGraphicalHierarchy()
{ {
return decode("Zobrazit grafickou podobu hierarchie tøíd"); return "Zobrazit grafickou podobu hierarchie tříd";
} }
virtual QCString trGotoTextualHierarchy() virtual QCString trGotoTextualHierarchy()
{ {
return decode("Zobrazit textovou podobu hierarchie tøíd"); return "Zobrazit textovou podobu hierarchie tříd";
} }
virtual QCString trPageIndex() virtual QCString trPageIndex()
{ {
return decode("Rejstøík stránek"); return "Rejstřík stránek";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -986,50 +973,50 @@ class TranslatorCzech : public Translator ...@@ -986,50 +973,50 @@ class TranslatorCzech : public Translator
virtual QCString trNote() virtual QCString trNote()
{ {
return decode("Poznámka"); return "Poznámka";
} }
virtual QCString trPublicTypes() virtual QCString trPublicTypes()
{ {
return decode("Veøejné typy"); return "Veřejné typy";
} }
virtual QCString trPublicAttribs() virtual QCString trPublicAttribs()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return decode("Datové položky"); return "Datové položky";
} }
else else
{ {
return decode("Veøejné atributy"); return "Veřejné atributy";
} }
} }
virtual QCString trStaticPublicAttribs() virtual QCString trStaticPublicAttribs()
{ {
return decode("Statické veøejné atributy"); return "Statické veřejné atributy";
} }
virtual QCString trProtectedTypes() virtual QCString trProtectedTypes()
{ {
return decode("Chránìné typy"); return "Chráněné typy";
} }
virtual QCString trProtectedAttribs() virtual QCString trProtectedAttribs()
{ {
return decode("Chránìné atributy"); return "Chráněné atributy";
} }
virtual QCString trStaticProtectedAttribs() virtual QCString trStaticProtectedAttribs()
{ {
return decode("Statické chránìné atributy"); return "Statické chráněné atributy";
} }
virtual QCString trPrivateTypes() virtual QCString trPrivateTypes()
{ {
return decode("Privátní typy"); return "Privátní typy";
} }
virtual QCString trPrivateAttribs() virtual QCString trPrivateAttribs()
{ {
return decode("Privátní atributy"); return "Privátní atributy";
} }
virtual QCString trStaticPrivateAttribs() virtual QCString trStaticPrivateAttribs()
{ {
return decode("Statické privátní atributy"); return "Statické privátní atributy";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1039,12 +1026,12 @@ class TranslatorCzech : public Translator ...@@ -1039,12 +1026,12 @@ class TranslatorCzech : public Translator
/*! Used as a marker that is put before a todo item */ /*! Used as a marker that is put before a todo item */
virtual QCString trTodo() virtual QCString trTodo()
{ {
return decode("Plánované úpravy"); return "Plánované úpravy";
} }
/*! Used as the header of the todo list */ /*! Used as the header of the todo list */
virtual QCString trTodoList() virtual QCString trTodoList()
{ {
return decode("Seznam plánovaných úprav"); return "Seznam plánovaných úprav";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1053,24 +1040,24 @@ class TranslatorCzech : public Translator ...@@ -1053,24 +1040,24 @@ class TranslatorCzech : public Translator
virtual QCString trReferencedBy() virtual QCString trReferencedBy()
{ {
return decode("Používá se v"); return "Používá se v";
} }
virtual QCString trRemarks() virtual QCString trRemarks()
{ {
return decode("Poznámky"); // ??? not checked in a context return "Poznámky"; // ??? not checked in a context
} }
virtual QCString trAttention() virtual QCString trAttention()
{ {
return decode("Upozornìní"); // ??? not checked in a context return "Upozornění"; // ??? not checked in a context
} }
virtual QCString trInclByDepGraph() virtual QCString trInclByDepGraph()
{ {
return decode("Následující graf ukazuje, které soubory pøímo nebo " return "Následující graf ukazuje, které soubory přímo nebo "
"nepøímo vkládají tento soubor:"); "nepřímo vkládají tento soubor:";
} }
virtual QCString trSince() virtual QCString trSince()
{ {
return decode("Od"); // ??? not checked in a context return "Od"; // ??? not checked in a context
} }
//////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////
...@@ -1080,38 +1067,38 @@ class TranslatorCzech : public Translator ...@@ -1080,38 +1067,38 @@ class TranslatorCzech : public Translator
/*! title of the graph legend page */ /*! title of the graph legend page */
virtual QCString trLegendTitle() virtual QCString trLegendTitle()
{ {
return decode("Vysvìtlivky ke grafu"); return "Vysvětlivky ke grafu";
} }
/*! page explaining how the dot graph's should be interpreted */ /*! page explaining how the dot graph's should be interpreted */
virtual QCString trLegendDocs() virtual QCString trLegendDocs()
{ {
QCString result( QCString result(
"Zde naleznete vysvìtlení, jak mají být interpretovány grafy, " "Zde naleznete vysvětlení, jak mají být interpretovány grafy, "
"které byly generovány programem doxygen.<p>\n" "které byly generovány programem doxygen.<p>\n"
"Uvažujte následující pøíklad:\n" "Uvažujte následující příklad:\n"
"\\code\n" "\\code\n"
"/*! Neviditelná tøída, která se v grafu nezobrazuje, protože " "/*! Neviditelná třída, která se v grafu nezobrazuje, protože "
"došlo k oøezání grafu. */\n" "došlo k ořezání grafu. */\n"
"class Invisible { };\n\n" "class Invisible { };\n\n"
"/*! Tøída, u které došlo k oøezání grafu. Vztah dìdiènosti " "/*! Třída, u které došlo k ořezání grafu. Vztah dědičnosti "
"je skryt. */\n" "je skryt. */\n"
"class Truncated : public Invisible { };\n\n" "class Truncated : public Invisible { };\n\n"
"/*! Bázová tøída dìdìná veøejnì (public inheritance). */\n" "/*! Bázová třída děděná veřejně (public inheritance). */\n"
"class PublicBase : public Truncated { };\n\n" "class PublicBase : public Truncated { };\n\n"
"/*! Bázová tøída, použitá pro chránìné dìdìní " "/*! Bázová třída, použitá pro chráněné dědění "
"(protected inheritance). */\n" "(protected inheritance). */\n"
"class ProtectedBase { };\n\n" "class ProtectedBase { };\n\n"
"/*! Bázová tøída, využitá pro privátní dìdìní " "/*! Bázová třída, využitá pro privátní dědění "
"(private inheritance). */\n" "(private inheritance). */\n"
"class PrivateBase { };\n\n" "class PrivateBase { };\n\n"
"/* Tøída, která není dokumentována komentáøi programu doxygen. */\n" "/* Třída, která není dokumentována komentáři programu doxygen. */\n"
"class Undocumented { };\n\n" "class Undocumented { };\n\n"
"/*! Šablona tøídy. */\n" "/*! Šablona třídy. */\n"
"template<class T> class Templ { };\n\n" "template<class T> class Templ { };\n\n"
"/*! Tøída, která je využívána tøídou Inherited. */\n" "/*! Třída, která je využívána třídou Inherited. */\n"
"class Used { };\n\n" "class Used { };\n\n"
"/*! Odvozená tøída, která rùzným zpùsobem dìdí z více bázových " "/*! Odvozená třída, která různým způsobem dědí z více bázových "
"tøíd. */\n" "tříd. */\n"
"class Inherited : public PublicBase,\n" "class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n" " protected ProtectedBase,\n"
" private PrivateBase,\n" " private PrivateBase,\n"
...@@ -1122,49 +1109,49 @@ class TranslatorCzech : public Translator ...@@ -1122,49 +1109,49 @@ class TranslatorCzech : public Translator
" Used *m_usedClass;\n" " Used *m_usedClass;\n"
"};\n" "};\n"
"\\endcode\n" "\\endcode\n"
"Pokud je položka \\c MAX_DOT_GRAPH_HEIGHT konfiguraèního souboru " "Pokud je položka \\c MAX_DOT_GRAPH_HEIGHT konfiguračního souboru "
"nastavena na hodnotu 200, bude vygenerován následující graf:" "nastavena na hodnotu 200, bude vygenerován následující graf:"
"<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"Bloky (tj. uzly) v uvedeném grafu mají následující význam:\n" "Bloky (tj. uzly) v uvedeném grafu mají následující význam:\n"
"<ul>\n" "<ul>\n"
"<li>Èernì vyplnìný obdélník reprezentuje strukturu nebo tøídu, " "<li>Černě vyplněný obdélník reprezentuje strukturu nebo třídu, "
"pro kterou byl graf generován.\n" "pro kterou byl graf generován.\n"
"<li>Obdélník s èerným obrysem oznaèuje dokumentovanou " "<li>Obdélník s černým obrysem označuje dokumentovanou "
"strukturu nebo tøídu.\n" "strukturu nebo třídu.\n"
"<li>Obdélník s šedým obrysem oznaèuje nedokumentovanou " "<li>Obdélník s šedým obrysem označuje nedokumentovanou "
"strukturu nebo tøídu.\n" "strukturu nebo třídu.\n"
"<li>Obdélník s èerveným obrysem oznaèuje dokumentovanou " "<li>Obdélník s červeným obrysem označuje dokumentovanou "
"strukturu nebo tøídu, pro kterou\n" "strukturu nebo třídu, pro kterou\n"
"nejsou zobrazeny všechny vztahy dìdiènosti nebo obsažení. " "nejsou zobrazeny všechny vztahy dědičnosti nebo obsažení. "
"Graf je oøezán v pøípadì, kdy jej\n" "Graf je ořezán v případě, kdy jej\n"
"není možné umístit do vymezeného prostoru.\n" "není možné umístit do vymezeného prostoru.\n"
"</ul>\n" "</ul>\n"
"Šipky (tj. hrany grafu) mají následující význam:\n" "Šipky (tj. hrany grafu) mají následující význam:\n"
"<ul>\n" "<ul>\n"
"<li>Tmavì modrá šipka se používá pro oznaèení vztahu veøejné " "<li>Tmavě modrá šipka se používá pro označení vztahu veřejné "
"dìdiènosti (public) mezi dvìma tøídami.\n" "dědičnosti (public) mezi dvěma třídami.\n"
"<li>Tmavì zelená šipka oznaèuje vztah chránìné dìdiènosti " "<li>Tmavě zelená šipka označuje vztah chráněné dědičnosti "
"(protected).\n" "(protected).\n"
"<li>Tmavì èervená šipka oznaèuje vztah privátní dìdiènosti " "<li>Tmavě červená šipka označuje vztah privátní dědičnosti "
"(private).\n" "(private).\n"
"<li>Purpurová šipka kreslená èárkovanì se používá v pøípadì, " "<li>Purpurová šipka kreslená čárkovaně se používá v případě, "
"kdy je tøída obsažena v jiné tøídì,\n" "kdy je třída obsažena v jiné třídě,\n"
"nebo kdy je používána jinou tøídou. Je oznaèena identifikátorem " "nebo kdy je používána jinou třídou. Je označena identifikátorem "
"jedné nebo více promìných, pøes které\n" "jedné nebo více proměných, přes které\n"
"je tøída nebo struktura zpøístupnìna.\n" "je třída nebo struktura zpřístupněna.\n"
"<li>Žlutá šipka kreslená èárkovanì vyjadøuje vztah mezi instancí šablony " "<li>Žlutá šipka kreslená čárkovaně vyjadřuje vztah mezi instancí šablony "
"a šablonou tøídy, na základì které byla\n" "a šablonou třídy, na základě které byla\n"
"instance šablony vytvoøena. V popisu šipky jsou uvedeny pøíslušné" "instance šablony vytvořena. V popisu šipky jsou uvedeny příslušné"
" parametry šablony.\n" " parametry šablony.\n"
"</ul>\n"); "</ul>\n");
return decode(result); return result;
} }
/*! text for the link to the legend page */ /*! text for the link to the legend page */
virtual QCString trLegend() virtual QCString trLegend()
{ {
return decode("vysvìtlivky"); return "vysvětlivky";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1174,13 +1161,13 @@ class TranslatorCzech : public Translator ...@@ -1174,13 +1161,13 @@ class TranslatorCzech : public Translator
/*! Used as a marker that is put before a test item */ /*! Used as a marker that is put before a test item */
virtual QCString trTest() virtual QCString trTest()
{ {
return decode("Test"); return "Test";
} }
/*! Used as the header of the test list */ /*! Used as the header of the test list */
virtual QCString trTestList() virtual QCString trTestList()
{ {
return decode("Seznam testù"); return "Seznam testů";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1190,7 +1177,7 @@ class TranslatorCzech : public Translator ...@@ -1190,7 +1177,7 @@ class TranslatorCzech : public Translator
/*! Used as a section header for KDE-2 IDL methods */ /*! Used as a section header for KDE-2 IDL methods */
virtual QCString trDCOPMethods() virtual QCString trDCOPMethods()
{ {
return decode("Metody DCOP"); return "Metody DCOP";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1200,12 +1187,12 @@ class TranslatorCzech : public Translator ...@@ -1200,12 +1187,12 @@ class TranslatorCzech : public Translator
/*! Used as a section header for IDL properties */ /*! Used as a section header for IDL properties */
virtual QCString trProperties() virtual QCString trProperties()
{ {
return decode("Vlastnosti"); return "Vlastnosti";
} }
/*! Used as a section header for IDL property documentation */ /*! Used as a section header for IDL property documentation */
virtual QCString trPropertyDocumentation() virtual QCString trPropertyDocumentation()
{ {
return decode("Dokumentace k vlastnosti"); return "Dokumentace k vlastnosti";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 1.2.4 // new since 1.2.4
...@@ -1214,33 +1201,33 @@ class TranslatorCzech : public Translator ...@@ -1214,33 +1201,33 @@ class TranslatorCzech : public Translator
/*! Used for Java classes in the summary section of Java packages */ /*! Used for Java classes in the summary section of Java packages */
virtual QCString trClasses() virtual QCString trClasses()
{ {
return decode("Tøídy"); return "Třídy";
} }
/*! Used as the title of a Java package */ /*! Used as the title of a Java package */
virtual QCString trPackage(const char *name) virtual QCString trPackage(const char *name)
{ {
return decode((QCString)"Balík "+name); return QCString("Balík ") + name;
} }
/*! Title of the package index page */ /*! Title of the package index page */
virtual QCString trPackageList() virtual QCString trPackageList()
{ {
return decode("Seznam balíkù"); return "Seznam balíků";
} }
/*! The description of the package index page */ /*! The description of the package index page */
virtual QCString trPackageListDescription() virtual QCString trPackageListDescription()
{ {
return decode("Zde naleznete seznam balíkù se struèným popisem " return "Zde naleznete seznam balíků se stručným popisem "
"(pokud byl uveden):"); "(pokud byl uveden):";
} }
/*! The link name in the Quick links header for each page */ /*! The link name in the Quick links header for each page */
virtual QCString trPackages() virtual QCString trPackages()
{ {
return decode("Balíky"); return "Balíky";
} }
/*! Text shown before a multi-line define */ /*! Text shown before a multi-line define */
virtual QCString trDefineValue() virtual QCString trDefineValue()
{ {
return decode("Hodnota:"); return "Hodnota:";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1250,12 +1237,12 @@ class TranslatorCzech : public Translator ...@@ -1250,12 +1237,12 @@ class TranslatorCzech : public Translator
/*! Used as a marker that is put before a \\bug item */ /*! Used as a marker that is put before a \\bug item */
virtual QCString trBug() virtual QCString trBug()
{ {
return decode("Chyba"); return "Chyba";
} }
/*! Used as the header of the bug list */ /*! Used as the header of the bug list */
virtual QCString trBugList() virtual QCString trBugList()
{ {
return decode("Seznam chyb"); return "Seznam chyb";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1277,7 +1264,7 @@ class TranslatorCzech : public Translator ...@@ -1277,7 +1264,7 @@ class TranslatorCzech : public Translator
/*! Used as header RTF general index */ /*! Used as header RTF general index */
virtual QCString trRTFGeneralIndex() virtual QCString trRTFGeneralIndex()
{ {
return decode("Rejstøík"); return "Rejstřík";
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
...@@ -1286,9 +1273,9 @@ class TranslatorCzech : public Translator ...@@ -1286,9 +1273,9 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trClass(bool first_capital, bool singular) virtual QCString trClass(bool first_capital, bool singular)
{ {
QCString result((first_capital ? "Tøíd" : "tøíd")); QCString result((first_capital ? "Tříd" : "tříd"));
result+=(singular ? "a" : "y"); result += singular ? "a" : "y";
return decode(result); return result;
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
...@@ -1299,7 +1286,7 @@ class TranslatorCzech : public Translator ...@@ -1299,7 +1286,7 @@ class TranslatorCzech : public Translator
{ {
QCString result((first_capital ? "Soubor" : "soubor")); QCString result((first_capital ? "Soubor" : "soubor"));
if (!singular) result+="y"; if (!singular) result+="y";
return decode(result); return result;
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
...@@ -1311,7 +1298,7 @@ class TranslatorCzech : public Translator ...@@ -1311,7 +1298,7 @@ class TranslatorCzech : public Translator
QCString result((first_capital ? "Prostor" : "prostor")); QCString result((first_capital ? "Prostor" : "prostor"));
if (!singular) result+="y"; if (!singular) result+="y";
result+=" jmen"; result+=" jmen";
return decode(result); return result;
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
...@@ -1321,8 +1308,8 @@ class TranslatorCzech : public Translator ...@@ -1321,8 +1308,8 @@ class TranslatorCzech : public Translator
virtual QCString trGroup(bool first_capital, bool singular) virtual QCString trGroup(bool first_capital, bool singular)
{ {
QCString result((first_capital ? "Skupin" : "skupin")); QCString result((first_capital ? "Skupin" : "skupin"));
result+=(singular ? "a" : "y"); result += singular ? "a" : "y";
return decode(result); return result;
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
...@@ -1331,9 +1318,9 @@ class TranslatorCzech : public Translator ...@@ -1331,9 +1318,9 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trPage(bool first_capital, bool singular) virtual QCString trPage(bool first_capital, bool singular)
{ {
QCString result((first_capital ? "Stránk" : "stránk")); QCString result((first_capital ? "Stránk" : "stránk"));
result+=(singular ? "a" : "y"); result += singular ? "a" : "y";
return decode(result); return result;
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
...@@ -1342,9 +1329,10 @@ class TranslatorCzech : public Translator ...@@ -1342,9 +1329,10 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trMember(bool first_capital, bool singular) virtual QCString trMember(bool first_capital, bool singular)
{ {
QCString result((first_capital ? "Èlen" : "èlen")); QCString result((first_capital ? "Člen" : "člen"));
if (!singular) result+="y"; if (!singular)
return decode(result); result += "y";
return result;
} }
/*! ??? Jak to prelozit? Bylo by dobre, kdyby se ozval nekdo, /*! ??? Jak to prelozit? Bylo by dobre, kdyby se ozval nekdo,
...@@ -1366,8 +1354,8 @@ class TranslatorCzech : public Translator ...@@ -1366,8 +1354,8 @@ class TranslatorCzech : public Translator
virtual QCString trAuthor(bool first_capital, bool singular) virtual QCString trAuthor(bool first_capital, bool singular)
{ {
QCString result((first_capital ? "Auto" : "auto")); QCString result((first_capital ? "Auto" : "auto"));
result += (singular) ? "r" : "øi"; result += (singular) ? "r" : "ři";
return decode(result); return result;
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1378,7 +1366,7 @@ class TranslatorCzech : public Translator ...@@ -1378,7 +1366,7 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trReferences() virtual QCString trReferences()
{ {
return decode("Odkazuje se na"); return "Odkazuje se na";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1398,7 +1386,7 @@ class TranslatorCzech : public Translator ...@@ -1398,7 +1386,7 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trImplementedInList(int numEntries) virtual QCString trImplementedInList(int numEntries)
{ {
return decode("Implementováno v "+trWriteList(numEntries)+"."); return "Implementováno v "+trWriteList(numEntries)+".";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1410,7 +1398,7 @@ class TranslatorCzech : public Translator ...@@ -1410,7 +1398,7 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trRTFTableOfContents() virtual QCString trRTFTableOfContents()
{ {
return decode("Obsah"); return "Obsah";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1422,7 +1410,7 @@ class TranslatorCzech : public Translator ...@@ -1422,7 +1410,7 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trDeprecatedList() virtual QCString trDeprecatedList()
{ {
return decode("Seznam zastaralých prvkù"); return "Seznam zastaralých prvků";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1434,12 +1422,12 @@ class TranslatorCzech : public Translator ...@@ -1434,12 +1422,12 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trEvents() virtual QCString trEvents()
{ {
return decode("Události"); return "Události";
} }
/*! Header used for the documentation section of a class' events. */ /*! Header used for the documentation section of a class' events. */
virtual QCString trEventDocumentation() virtual QCString trEventDocumentation()
{ {
return decode("Dokumentace událostí"); return "Dokumentace událostí";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1450,35 +1438,35 @@ class TranslatorCzech : public Translator ...@@ -1450,35 +1438,35 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trPackageTypes() virtual QCString trPackageTypes()
{ {
return decode("Typy v balíku"); return "Typy v balíku";
} }
/*! Used as a heading for a list of Java class functions with package /*! Used as a heading for a list of Java class functions with package
* scope. * scope.
*/ */
virtual QCString trPackageMembers() virtual QCString trPackageMembers()
{ {
return decode("Funkce v balíku"); return "Funkce v balíku";
} }
/*! 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.
*/ */
virtual QCString trStaticPackageMembers() virtual QCString trStaticPackageMembers()
{ {
return decode("Statické funkce v balíku"); return "Statické funkce v balíku";
} }
/*! Used as a heading for a list of Java class variables with package /*! Used as a heading for a list of Java class variables with package
* scope. * scope.
*/ */
virtual QCString trPackageAttribs() virtual QCString trPackageAttribs()
{ {
return decode("Atributy balíku"); return "Atributy balíku";
} }
/*! Used as a heading for a list of static Java class variables with /*! Used as a heading for a list of static Java class variables with
* package scope. * package scope.
*/ */
virtual QCString trStaticPackageAttribs() virtual QCString trStaticPackageAttribs()
{ {
return decode("Statické atributy balíku"); return "Statické atributy balíku";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1490,12 +1478,12 @@ class TranslatorCzech : public Translator ...@@ -1490,12 +1478,12 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trAll() virtual QCString trAll()
{ {
return decode("Vše"); return "Vše";
} }
/*! 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("Tato funkce volá..."); return "Tato funkce volá...";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1507,14 +1495,14 @@ class TranslatorCzech : public Translator ...@@ -1507,14 +1495,14 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trSearchForIndex() virtual QCString trSearchForIndex()
{ {
return decode("Vyhledat"); return "Vyhledat";
} }
/*! This string is used as the title for the page listing the search /*! This string is used as the title for the page listing the search
* results. * results.
*/ */
virtual QCString trSearchResultsTitle() virtual QCString trSearchResultsTitle()
{ {
return decode("Výsledky vyhledávání"); return "Výsledky vyhledávání";
} }
/*! This string is put just before listing the search results. The /*! This string is put just before listing the search results. The
* text can be different depending on the number of documents found. * text can be different depending on the number of documents found.
...@@ -1528,17 +1516,17 @@ class TranslatorCzech : public Translator ...@@ -1528,17 +1516,17 @@ class TranslatorCzech : public Translator
{ {
if (numDocuments==0) if (numDocuments==0)
{ {
return decode("Lituji. Vašemu dotazu neodpovídá žádný dokument."); return "Lituji. Vašemu dotazu neodpovídá žádný dokument.";
} }
else if (numDocuments==1) else if (numDocuments==1)
{ {
return decode("Nalezen jediný dokument, který vyhovuje vašemu dotazu."); return "Nalezen jediný dokument, který vyhovuje vašemu dotazu.";
} }
else else
{ {
return decode("Nalezeno <b>$num</b> dokumentù, které vyhovují vašemu " return "Nalezeno <b>$num</b> dokumentů, které vyhovují vašemu "
"dotazu. Nejlépe odpovídající dokumenty jsou zobrazeny " "dotazu. Nejlépe odpovídající dokumenty jsou zobrazeny "
"jako první."); "jako první.";
} }
} }
/*! This string is put before the list of matched words, for each search /*! This string is put before the list of matched words, for each search
...@@ -1546,7 +1534,7 @@ class TranslatorCzech : public Translator ...@@ -1546,7 +1534,7 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trSearchMatches() virtual QCString trSearchMatches()
{ {
return decode("Nalezená slova:"); return "Nalezená slova:";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1557,7 +1545,7 @@ class TranslatorCzech : public Translator ...@@ -1557,7 +1545,7 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trSourceFile(QCString& filename) virtual QCString trSourceFile(QCString& filename)
{ {
return decode("Zdrojový soubor ") + filename; return QCString("Zdrojový soubor ") + filename;
} }
...@@ -1570,27 +1558,27 @@ class TranslatorCzech : public Translator ...@@ -1570,27 +1558,27 @@ class TranslatorCzech : public Translator
* hierarchy. * hierarchy.
*/ */
virtual QCString trDirIndex() virtual QCString trDirIndex()
{ return decode("Hierarchie adresáøù"); } { return "Hierarchie adresářů"; }
/*! This is used as the name of the chapter containing the documentation /*! This is used as the name of the chapter containing the documentation
* of the directories. * of the directories.
*/ */
virtual QCString trDirDocumentation() virtual QCString trDirDocumentation()
{ return decode("Dokumentace k adresáøùm"); } { return "Dokumentace k adresářům"; }
/*! This is used as the title of the directory index and also in the /*! This is used as the title of the directory index and also in the
* Quick links of a HTML page, to link to the directory hierarchy. * Quick links of a HTML page, to link to the directory hierarchy.
*/ */
virtual QCString trDirectories() virtual QCString trDirectories()
{ return decode("Adresáøe"); } { return "Adresáře"; }
/*! This returns a sentences that introduces the directory hierarchy. /*! This returns a sentences that introduces the directory hierarchy.
* and the fact that it is sorted alphabetically per level * and the fact that it is sorted alphabetically per level
*/ */
virtual QCString trDirDescription() virtual QCString trDirDescription()
{ {
return decode("Následující hierarchie adresáøù je zhruba, " return "Následující hierarchie adresářů je zhruba, "
"ale ne úplnì, øazena podle abecedy:"); "ale ne úplně, řazena podle abecedy:";
} }
/*! This returns the title of a directory page. The name of the /*! This returns the title of a directory page. The name of the
...@@ -1598,9 +1586,9 @@ class TranslatorCzech : public Translator ...@@ -1598,9 +1586,9 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trDirReference(const char *dirName) virtual QCString trDirReference(const char *dirName)
{ {
QCString result = "Reference k adresáøi "; QCString result = "Reference k adresáři ";
result += dirName; result += dirName;
return decode(result); return result;
} }
/*! This returns the word directory with or without starting capital /*! This returns the word directory with or without starting capital
...@@ -1608,10 +1596,10 @@ class TranslatorCzech : public Translator ...@@ -1608,10 +1596,10 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trDir(bool first_capital, bool singular) virtual QCString trDir(bool first_capital, bool singular)
{ {
QCString result((first_capital ? "Adresáø" : "adresáø")); QCString result((first_capital ? "Adresář" : "adresář"));
if ( ! singular) if ( ! singular)
result += "e"; result += "e";
return decode(result); return result;
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1623,9 +1611,9 @@ class TranslatorCzech : public Translator ...@@ -1623,9 +1611,9 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trOverloadText() virtual QCString trOverloadText()
{ {
return decode("Jde o pøetíženou (overloaded) metodu, " return "Jde o přetíženou (overloaded) metodu, "
"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.";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1634,7 +1622,7 @@ class TranslatorCzech : public Translator ...@@ -1634,7 +1622,7 @@ class TranslatorCzech : public Translator
virtual QCString trCallerGraph() virtual QCString trCallerGraph()
{ {
return decode("Tuto funkci volají..."); return "Tuto funkci volají...";
} }
...@@ -1643,7 +1631,7 @@ class TranslatorCzech : public Translator ...@@ -1643,7 +1631,7 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trEnumerationValueDocumentation() virtual QCString trEnumerationValueDocumentation()
{ {
return decode("Dokumentace výètových hodnot"); return "Dokumentace výčtových hodnot";
} }
}; };
......
...@@ -293,6 +293,7 @@ int guessSection(const char *name) ...@@ -293,6 +293,7 @@ int guessSection(const char *name)
n.right(4)==".hpp" || n.right(4)==".hpp" ||
n.right(4)==".h++" || n.right(4)==".h++" ||
n.right(4)==".idl" || n.right(4)==".idl" ||
n.right(4)==".ddl" ||
n.right(5)==".pidl" n.right(5)==".pidl"
) return Entry::HEADER_SEC; ) return Entry::HEADER_SEC;
return 0; return 0;
...@@ -1476,7 +1477,7 @@ nextChar: ...@@ -1476,7 +1477,7 @@ nextChar:
result+=' '; result+=' ';
result+=s.at(i); result+=s.at(i);
} }
else if (c=='t' && csp==5 && else if (c=='t' && csp==5 && (i<5 || !isId(s.at(i-5))) &&
!(isId(s.at(i+1)) /*|| s.at(i+1)==' '*/ || s.at(i+1)==')' || !(isId(s.at(i+1)) /*|| s.at(i+1)==' '*/ || s.at(i+1)==')' ||
s.at(i+1)==',' || s.at(i+1)=='\0')) s.at(i+1)==',' || s.at(i+1)=='\0'))
// prevent const ::A from being converted to const::A // prevent const ::A from being converted to const::A
...@@ -1485,12 +1486,12 @@ nextChar: ...@@ -1485,12 +1486,12 @@ nextChar:
if (s.at(i+1)==' ') i++; if (s.at(i+1)==' ') i++;
csp=0; csp=0;
} }
else if (c==':' && csp==6) // replace const::A by const ::A else if (c==':' && csp==6 && (i<6 || !isId(s.at(i-6)))) // replace const::A by const ::A
{ {
result+=" :"; result+=" :";
csp=0; csp=0;
} }
else if (c=='l' && vsp==7 && else if (c=='l' && vsp==7 && (i<7 || !isId(s.at(i-7))) &&
!(isId(s.at(i+1)) /*|| s.at(i+1)==' '*/ || s.at(i+1)==')' || !(isId(s.at(i+1)) /*|| s.at(i+1)==' '*/ || s.at(i+1)==')' ||
s.at(i+1)==',' || s.at(i+1)=='\0')) s.at(i+1)==',' || s.at(i+1)=='\0'))
// prevent virtual ::A from being converted to virtual::A // prevent virtual ::A from being converted to virtual::A
...@@ -1499,7 +1500,7 @@ nextChar: ...@@ -1499,7 +1500,7 @@ nextChar:
if (s.at(i+1)==' ') i++; if (s.at(i+1)==' ') i++;
vsp=0; vsp=0;
} }
else if (c==':' && vsp==8) // replace virtual::A by virtual ::A else if (c==':' && vsp==8 && (i<8 || !isId(s.at(i-8)))) // replace virtual::A by virtual ::A
{ {
result+=" :"; result+=" :";
vsp=0; vsp=0;
...@@ -5949,6 +5950,7 @@ SrcLangExt getLanguageFromFileName(const QCString fileName) ...@@ -5949,6 +5950,7 @@ SrcLangExt getLanguageFromFileName(const QCString fileName)
if (!init) // one time initialization if (!init) // one time initialization
{ {
extLookup.insert(".idl", new int(SrcLangExt_IDL)); extLookup.insert(".idl", new int(SrcLangExt_IDL));
extLookup.insert(".ddl", new int(SrcLangExt_IDL));
extLookup.insert(".odl", new int(SrcLangExt_IDL)); extLookup.insert(".odl", new int(SrcLangExt_IDL));
extLookup.insert(".java", new int(SrcLangExt_Java)); extLookup.insert(".java", new int(SrcLangExt_Java));
extLookup.insert(".jsl", new int(SrcLangExt_Java)); extLookup.insert(".jsl", new int(SrcLangExt_Java));
......
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