summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2007-05-06 12:30:18 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2007-05-06 12:30:18 (GMT)
commit0b087b99d43fb3803b26407d771ca32e6cf5c34b (patch)
treecfc812b095178411db5aae564fc43cac8b714078
parent80f45b6274c81f9cfd1772e5039005124ae04fab (diff)
downloadDoxygen-0b087b99d43fb3803b26407d771ca32e6cf5c34b.zip
Doxygen-0b087b99d43fb3803b26407d771ca32e6cf5c34b.tar.gz
Doxygen-0b087b99d43fb3803b26407d771ca32e6cf5c34b.tar.bz2
Release-1.5.2-20070506
-rw-r--r--INSTALL4
-rw-r--r--README4
-rw-r--r--addon/doxyapp/doxyapp.cpp1
-rwxr-xr-xconfigure2
-rw-r--r--doc/autolink.doc6
-rw-r--r--doc/commands.doc9
-rw-r--r--doc/config.doc27
-rw-r--r--doc/docblocks.doc4
-rw-r--r--doc/language.doc2
-rw-r--r--doc/translator.py34
-rw-r--r--doc/translator_report.txt60
-rw-r--r--src/classdef.cpp1
-rw-r--r--src/commentcnv.l4
-rw-r--r--src/commentscan.l10
-rw-r--r--src/config.l19
-rw-r--r--src/docparser.cpp41
-rw-r--r--src/docparser.h2
-rw-r--r--src/dot.cpp20
-rw-r--r--src/doxygen.cpp18
-rw-r--r--src/doxygen.h30
-rw-r--r--src/doxygen.pro.in6
-rw-r--r--src/entry.cpp286
-rw-r--r--src/entry.h3
-rw-r--r--src/language.cpp2
-rw-r--r--src/marshal.cpp140
-rw-r--r--src/marshal.h48
-rw-r--r--src/memberdef.cpp7
-rw-r--r--src/msc.cpp2
-rw-r--r--src/perlmodgen.cpp33
-rw-r--r--src/portable.cpp6
-rw-r--r--src/pre.l3
-rw-r--r--src/pyscanner.l13
-rw-r--r--src/scanner.l75
-rw-r--r--src/translator_cz.h676
-rw-r--r--src/util.cpp10
35 files changed, 1023 insertions, 585 deletions
diff --git a/INSTALL b/INSTALL
index 1a55d67..05cb416 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
-DOXYGEN Version 1.5.2
+DOXYGEN Version 1.5.2-20070506
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
-Dimitri van Heesch (04 April 2007)
+Dimitri van Heesch (06 May 2007)
diff --git a/README b/README
index 57219c6..787d64d 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-DOXYGEN Version 1.5.2
+DOXYGEN Version 1.5.2_20070506
Please read INSTALL for compilation instructions.
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
-Dimitri van Heesch (dimitri@stack.nl) (04 April 2007)
+Dimitri van Heesch (dimitri@stack.nl) (06 May 2007)
diff --git a/addon/doxyapp/doxyapp.cpp b/addon/doxyapp/doxyapp.cpp
index 4c4b3f4..501303a 100644
--- a/addon/doxyapp/doxyapp.cpp
+++ b/addon/doxyapp/doxyapp.cpp
@@ -25,7 +25,6 @@
* 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 "doxygen.h"
#include "outputgen.h"
diff --git a/configure b/configure
index 8ae36e8..ee0fdad 100755
--- a/configure
+++ b/configure
@@ -20,7 +20,7 @@ doxygen_version_minor=5
doxygen_version_revision=2
#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"`
diff --git a/doc/autolink.doc b/doc/autolink.doc
index be64876..abd37b0 100644
--- a/doc/autolink.doc
+++ b/doc/autolink.doc
@@ -84,10 +84,10 @@
For non overloaded members the argument list may be omitted.
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.
- 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:
<ol>
<li>The pattern points to a documented member that belongs to the same class
@@ -101,7 +101,7 @@
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
- patterns 3 and 6 in this case.
+ patterns 3 and 7 in this case.
\par Example:
\verbinclude autolink.cpp
diff --git a/doc/commands.doc b/doc/commands.doc
index 298f492..b1ce780 100644
--- a/doc/commands.doc
+++ b/doc/commands.doc
@@ -58,6 +58,7 @@ documentation:
\refitem cmddef \\def
\refitem cmddefgroup \\defgroup
\refitem cmddeprecated \\deprecated
+\refitem cmddetails \\details
\refitem cmddir \\dir
\refitem cmddontinclude \\dontinclude
\refitem cmddot \\dot
@@ -864,6 +865,14 @@ is empty, \c TEST, \c DEV, or \c DEV \c TEST.
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>
\section cmdelse \\else
\addindex \\else
diff --git a/doc/config.doc b/doc/config.doc
index 8801aa1..16fe662 100644
--- a/doc/config.doc
+++ b/doc/config.doc
@@ -85,6 +85,7 @@ followed by the descriptions of the tags grouped by category.
\refitem cfg_dot_path DOT_PATH
\refitem cfg_dot_transparent DOT_TRANSPARENT
\refitem cfg_dotfile_dirs DOTFILE_DIRS
+\refitem cfg_doxyfile_encoding DOXYFILE_ENCODING
\refitem cfg_enable_preprocessing ENABLE_PREPROCESSING
\refitem cfg_enum_values_per_line ENUM_VALUES_PER_LINE
\refitem cfg_enabled_sections ENABLED_SECTIONS
@@ -178,6 +179,7 @@ followed by the descriptions of the tags grouped by category.
\refitem cfg_predefined PREDEFINED
\refitem cfg_project_name PROJECT_NAME
\refitem cfg_project_number PROJECT_NUMBER
+\refitem cfg_qt_autobrief QT_AUTOBRIEF
\refitem cfg_quiet QUIET
\refitem cfg_recursive RECURSIVE
\refitem cfg_referenced_by_relation REFERENCED_BY_RELATION
@@ -226,9 +228,18 @@ followed by the descriptions of the tags grouped by category.
\endsecreflist
\section config_project Project related options
-\anchor cfg_project_name
+\anchor cfg_doxyfile_encoding
<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>
\addindex PROJECT_NAME
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.
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
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
<dt>\c BUILTIN_STL_SUPPORT <dd>
@@ -753,6 +774,8 @@ function's detailed documentation block.
If this tag is empty the current directory is searched.
\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
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.
diff --git a/doc/docblocks.doc b/doc/docblocks.doc
index c0853cf..d5ff845 100644
--- a/doc/docblocks.doc
+++ b/doc/docblocks.doc
@@ -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.
\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
the documentation of members (including global functions) in front of
the \e definition. This way the documentation can be placed in the source
diff --git a/doc/language.doc b/doc/language.doc
index c304eec..73875f5 100644
--- a/doc/language.doc
+++ b/doc/language.doc
@@ -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
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):
Afrikaans, Arabic, Brazilian Portuguese, Catalan, Chinese, Chinese
Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French,
diff --git a/doc/translator.py b/doc/translator.py
index 96ea736..af65706 100644
--- a/doc/translator.py
+++ b/doc/translator.py
@@ -48,6 +48,7 @@
2005/02/28 - Slight modification to generate "mailto.txt" auxiliary file.
2005/08/15 - Doxygen's root directory determined primarily from DOXYGEN
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
@@ -156,17 +157,20 @@ class Transl:
# Initialize the other collected information.
self.classId = None
self.baseClassId = None
- self.readableStatus = None # 'up-to-date', '1.2.3', '1.3', etc.
- self.status = None # '', '1.2.03', '1.3.00', etc.
- self.lang = None # like 'Brasilian'
- self.langReadable = None # like 'Brasilian Portuguese'
- self.note = None # like 'should be cleaned up'
- self.prototypeDic = {} # uniPrototype -> prototype
- self.obsoleteMethods = None # list of prototypes to be removed
- self.missingMethods = None # list of prototypes to be implemented
+ self.readableStatus = None # 'up-to-date', '1.2.3', '1.3', etc.
+ self.status = None # '', '1.2.03', '1.3.00', etc.
+ self.lang = None # like 'Brasilian'
+ self.langReadable = None # like 'Brasilian Portuguese'
+ self.note = None # like 'should be cleaned up'
+ 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.missingMethods = None # list of prototypes to be implemented
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):
"""Generator that reads the file and yields tokens as 4-tuples.
@@ -265,6 +269,12 @@ class Transl:
sys.stderr.write(msg)
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
tokenStr = ''
tokenLineNo = 0
@@ -1103,11 +1113,17 @@ class Transl:
self.adaptMinClass = adaptMinClass
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
# the note to clean-up source. This note will be used only when
# the previous code did not set another note (priority).
if not self.note and self.status == '' and self.obsoleteMethods:
self.note = 'Remove the obsolete methods (never used).'
+
def report(self, fout):
"""Returns the report part for the source as a multiline string.
diff --git a/doc/translator_report.txt b/doc/translator_report.txt
index 2b351ed..9bbad71 100644
--- a/doc/translator_report.txt
+++ b/doc/translator_report.txt
@@ -1,4 +1,4 @@
-(1.5.1-20070219)
+(1.5.2)
Doxygen supports the following 33 languages (sorted alphabetically):
@@ -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
still may be some details listed even for them:
- TranslatorBrazilian
+ TranslatorBrazilian -- The "translate me!" found in a comment.
TranslatorCatalan
- TranslatorChinese
- TranslatorCroatian
+ TranslatorChinese -- The "translate me!" found in a comment.
+ TranslatorCroatian -- The "translate me!" found in a comment.
TranslatorCzech
- TranslatorDanish
+ TranslatorDanish -- The "translate me!" found in a comment.
TranslatorDutch
TranslatorEnglish
TranslatorFrench
- TranslatorGerman
- TranslatorGreek -- Remove the obsolete methods (never used).
- TranslatorItalian
+ TranslatorGerman -- The "translate me!" found in a comment.
+ TranslatorGreek -- The "translate me!" found in a comment.
+ TranslatorItalian -- The "translate me!" found in a comment.
TranslatorJapanese -- Remove the obsolete methods (never used).
- TranslatorRussian
+ TranslatorRussian -- The "translate me!" found in a comment.
TranslatorSpanish
----------------------------------------------------------------------
@@ -105,6 +105,18 @@ TranslatorArabic (TranslatorAdapter_1_4_6) 1 method to implement
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
----------------------------
@@ -127,6 +139,18 @@ TranslatorChinesetraditional (TranslatorAdapter_1_4_6) 1 method to implement
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
-----------------
@@ -243,6 +267,12 @@ TranslatorFinnish (TranslatorEnglish) 96 methods to implement
QCString trNoDescriptionAvailable()
+TranslatorGerman (Translator)
+----------------
+
+ Implements 194 of the required methods.
+
+
TranslatorGreek (Translator)
---------------
@@ -294,6 +324,12 @@ TranslatorIndonesian (TranslatorAdapter_1_4_6) 1 method to implement
virtual QCString trNoDescriptionAvailable()
+TranslatorItalian (Translator)
+-----------------
+
+ Implements 194 of the required methods.
+
+
TranslatorJapanese (Translator)
------------------
@@ -485,6 +521,12 @@ TranslatorRomanian (TranslatorAdapter_1_4_1) 2 methods to implement
virtual QCString trNoDescriptionAvailable()
+TranslatorRussian (Translator)
+-----------------
+
+ Implements 194 of the required methods.
+
+
TranslatorSerbian (TranslatorAdapter_1_4_1) 2 methods to implement
-----------------
diff --git a/src/classdef.cpp b/src/classdef.cpp
index e815517..a5bca00 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -2849,6 +2849,7 @@ void ClassDef::addMembersToTemplateInstance(ClassDef *cd,const char *templSpec)
imd->setBriefDescription(md->briefDescription(),md->briefFile(),md->briefLine());
imd->setInbodyDocumentation(md->inbodyDocumentation(),md->inbodyFile(),md->inbodyLine());
imd->setMemberSpecifiers(md->getMemberSpecifiers());
+ imd->setMemberGroupId(md->getMemberGroupId());
insertMember(imd);
//printf("Adding member=%s %s%s to class %s templSpec %s\n",
// imd->typeString(),imd->name().data(),imd->argsString(),
diff --git a/src/commentcnv.l b/src/commentcnv.l
index 9462110..9b9a946 100644
--- a/src/commentcnv.l
+++ b/src/commentcnv.l
@@ -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)
{
QCString result;
@@ -566,7 +566,7 @@ void replaceComment(int offset)
* -# 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).
* -# 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)
{
diff --git a/src/commentscan.l b/src/commentscan.l
index 105d512..553b93a 100644
--- a/src/commentscan.l
+++ b/src/commentscan.l
@@ -2281,15 +2281,15 @@ bool parseCommentBlock(/* in */ ParserInterface *parser,
/* in */ const QCString &fileName,
/* in */ int lineNr,
/* in */ bool isBrief,
- /* in */ bool isJavaDocStyle,
+ /* in */ bool isAutoBriefOn,
/* in */ bool isInbody,
/* in,out */ Protection &prot,
/* in,out */ int &position,
/* out */ bool &newEntryNeeded
)
{
- //printf("parseCommentBlock() isBrief=%d isJavaDocStyle=%d lineNr=%d\n",
- // isBrief,isJavaDocStyle,lineNr);
+ //printf("parseCommentBlock() isBrief=%d isAutoBriefOn=%d lineNr=%d\n",
+ // isBrief,isAutoBriefOn,lineNr);
initParser();
guards.setAutoDelete(TRUE);
@@ -2310,8 +2310,8 @@ bool parseCommentBlock(/* in */ ParserInterface *parser,
parseMore = FALSE;
inBody = isInbody;
outputXRef.resize(0);
- setOutput( isBrief || isJavaDocStyle ? OutputBrief : OutputDoc );
- briefEndsAtDot = isJavaDocStyle;
+ setOutput( isBrief || isAutoBriefOn ? OutputBrief : OutputDoc );
+ briefEndsAtDot = isAutoBriefOn;
if (!current->inbodyDocs.isEmpty() && isInbody) // separate in body fragments
{
diff --git a/src/config.l b/src/config.l
index 26fb9b9..0fad432 100644
--- a/src/config.l
+++ b/src/config.l
@@ -502,7 +502,6 @@ static void readIncludeFile(const char *incName)
<Start>[a-z_A-Z][a-z_A-Z0-9]*[ \t]*"=" { QCString cmd=yytext;
cmd=cmd.left(cmd.length()-1).stripWhiteSpace();
ConfigOption *option = config->get(cmd);
- option->setEncoding(encoding);
if (option==0) // oops not known
{
config_err("Warning: ignoring unsupported tag `%s' at line %d, file %s\n",
@@ -511,6 +510,7 @@ static void readIncludeFile(const char *incName)
}
else // known tag
{
+ option->setEncoding(encoding);
switch(option->kind())
{
case ConfigOption::O_Info:
@@ -1574,8 +1574,17 @@ void Config::create()
"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"
"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"
- "explicit @brief command for a brief description. \n",
+ "comments will behave just like regular Qt-style comments \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
);
cb = addBool(
@@ -2821,7 +2830,7 @@ void Config::create()
cb->addDependency("HAVE_DOT");
cb = addBool(
"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"
"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"
@@ -2831,7 +2840,7 @@ void Config::create()
cb->addDependency("HAVE_DOT");
cb = addBool(
"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"
"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"
diff --git a/src/docparser.cpp b/src/docparser.cpp
index e1bfac5..da673bf 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -1422,7 +1422,7 @@ static void readTextFileByName(const QString &file,QString &text)
FileDef *fd;
if ((fd=findFileDef(Doxygen::exampleNameDict,file,ambig)))
{
- text = fileToString(fd->absFilePath(),FALSE);
+ text = fileToString(fd->absFilePath(),Config_getBool("FILTER_SOURCE_FILES"));
}
else if (ambig)
{
@@ -2092,6 +2092,8 @@ void DocRef::parse()
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unsupported symbol %s found",
g_token->name.data());
break;
+ case TK_HTMLTAG:
+ break;
default:
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unexpected token %s",
tokToString(tok));
@@ -2111,7 +2113,7 @@ void DocRef::parse()
}
handlePendingStyleCommands(this,m_children);
- DBG(("DocRef::parse() end\n"));
+
DocNode *n=g_nodeStack.pop();
ASSERT(n==this);
}
@@ -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;
g_nodeStack.push(this);
@@ -2187,6 +2189,13 @@ QString DocLink::parse(bool isJavaLink)
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unsupported symbol %s found",
g_token->name.data());
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_WORD:
if (isJavaLink) // special case to detect closing }
@@ -4847,11 +4856,31 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
// can we expect from Microsoft...)
{
QString cref;
+ //printf("XML_SEE: empty tag=%d\n",g_token->emptyTag);
if (findAttribute(tagHtmlAttribs,"cref",&cref))
{
- DocRef *ref = new DocRef(this,cref);
- m_children.append(ref);
- ref->parse();
+ if (g_token->emptyTag) // <see cref="..."/> style
+ {
+ 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
{
diff --git a/src/docparser.h b/src/docparser.h
index 7d09ac5..64b382d 100644
--- a/src/docparser.h
+++ b/src/docparser.h
@@ -639,7 +639,7 @@ class DocLink : public CompAccept<DocLink>, public DocNode
{
public:
DocLink(DocNode *parent,const QString &target);
- QString parse(bool);
+ QString parse(bool,bool isXmlLink=FALSE);
Kind kind() const { return Kind_Link; }
QString file() const { return m_file; }
QString relPath() const { return m_relPath; }
diff --git a/src/dot.cpp b/src/dot.cpp
index 651b6c9..808dcca 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -694,6 +694,24 @@ static QCString convertLabel(const QCString &l)
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)
{
if (ml)
@@ -812,7 +830,7 @@ void DotNode::writeBox(QTextStream &t,
}
if (!m_tooltip.isEmpty())
{
- t << ",tooltip=\"" << m_tooltip << "\"";
+ t << ",tooltip=\"" << escapeTooltip(m_tooltip) << "\"";
}
}
t << "];" << endl;
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index b4b2025..12d0004 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -132,6 +132,7 @@ ObjCache *Doxygen::symbolCache = 0;
Store *Doxygen::symbolStorage;
QCString Doxygen::objDBFileName;
QCString Doxygen::entryDBFileName;
+bool Doxygen::gatherDefines = TRUE;
// locally accessible globals
static QDict<EntryNav> classEntries(1009);
@@ -4687,8 +4688,9 @@ static void addMemberDocs(EntryNav *rootNav,
{
//printf("setInitializer\n");
md->setInitializer(root->initializer);
- md->setMaxInitLines(root->initLines);
}
+
+ md->setMaxInitLines(root->initLines);
if (rfd)
{
@@ -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,
// 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
int size=0;
@@ -8349,7 +8351,7 @@ static void parseFiles(Entry *root,EntryNav *rootNav)
// The directory is read iff the recusiveFlag is set.
// The contents of all files is append to the input string
-static int readDir(QFileInfo *fi,
+int readDir(QFileInfo *fi,
FileNameList *fnList,
FileNameDict *fnDict,
StringDict *exclDict,
@@ -8441,7 +8443,7 @@ static int readDir(QFileInfo *fi,
// 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.
-static int readFileOrDirectory(const char *s,
+int readFileOrDirectory(const char *s,
FileNameList *fnList,
FileNameDict *fnDict,
StringDict *exclDict,
@@ -8450,8 +8452,8 @@ static int readFileOrDirectory(const char *s,
StringList *resultList,
StringDict *resultDict,
bool recursive,
- bool errorIfNotExist=TRUE,
- QDict<void> *killDict = 0
+ bool errorIfNotExist,
+ QDict<void> *killDict
)
{
//printf("killDict=%p count=%d\n",killDict,killDict->count());
@@ -8526,7 +8528,7 @@ static int readFileOrDirectory(const char *s,
//----------------------------------------------------------------------------
-static void readFormulaRepository()
+void readFormulaRepository()
{
QFile f(Config_getString("HTML_OUTPUT")+"/formula.repository");
if (f.open(IO_ReadOnly)) // open repository
@@ -8641,7 +8643,7 @@ static void escapeAliases()
//----------------------------------------------------------------------------
-static void readAliases()
+void readAliases()
{
// add aliases to a dictionary
Doxygen::aliasDict.setAutoDelete(TRUE);
diff --git a/src/doxygen.h b/src/doxygen.h
index bb98dab..4f6c972 100644
--- a/src/doxygen.h
+++ b/src/doxygen.h
@@ -45,6 +45,8 @@ class DirDef;
class ParserManager;
class ObjCache;
class Store;
+class QFileInfo;
+class BufStr;
typedef QList<QCString> StringList;
typedef QDict<FileDef> FileDict;
@@ -123,6 +125,7 @@ class Doxygen
static Store *symbolStorage;
static QCString objDBFileName;
static QCString entryDBFileName;
+ static bool gatherDefines;
};
void initDoxygen();
@@ -130,6 +133,33 @@ void readConfiguration(int argc, char **argv);
void checkConfiguration();
void parseInput();
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
diff --git a/src/doxygen.pro.in b/src/doxygen.pro.in
index 25fdfb3..e9129d1 100644
--- a/src/doxygen.pro.in
+++ b/src/doxygen.pro.in
@@ -21,12 +21,12 @@ SOURCES = main.cpp
unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lpng -lmd5
win32:INCLUDEPATH += .
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-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: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
INCLUDEPATH += ../qtools ../libpng ../libmd5 .
#win32-g++:INCLUDEPATH -= ../libpng
diff --git a/src/entry.cpp b/src/entry.cpp
index ca831c8..77830c0 100644
--- a/src/entry.cpp
+++ b/src/entry.cpp
@@ -23,6 +23,145 @@
#include "section.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;
Entry::Entry()
@@ -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)
{
if (sli==0)
@@ -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)
: m_parent(parent), m_subList(0), m_section(e->section), m_type(e->type),
@@ -507,11 +513,7 @@ bool EntryNav::loadEntry(FileStorage *storage)
return FALSE;
}
//delete m_info;
- if (m_info==0) m_info = new Entry;
//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;
//if (m_parent)
//{
@@ -524,14 +526,20 @@ bool EntryNav::loadEntry(FileStorage *storage)
//printf("seek failed!\n");
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)
{
m_offset = storage->pos();
//printf("EntryNav::saveEntry offset=%llx\n",m_offset);
- return ::saveEntry(e,storage);
+ marshalEntry(storage,e);
+ return TRUE;
}
void EntryNav::releaseEntry()
diff --git a/src/entry.h b/src/entry.h
index 8c45ad0..ede809c 100644
--- a/src/entry.h
+++ b/src/entry.h
@@ -28,6 +28,7 @@ class QFile;
class EntryNav;
class FileDef;
class FileStorage;
+class StorageIntf;
enum Protection { Public, Protected, Private, Package } ;
enum Specifier { Normal, Virtual, Pure } ;
@@ -302,6 +303,8 @@ class Entry
* at construction time.
*/
void reset();
+ void marshall(StorageIntf *);
+ void unmarshall(StorageIntf *);
public:
diff --git a/src/language.cpp b/src/language.cpp
index 1168bef..a1d043f 100644
--- a/src/language.cpp
+++ b/src/language.cpp
@@ -166,7 +166,7 @@ bool setTranslator(const char *langName)
#ifdef LANG_CZ
else if (L_EQUAL("czech"))
{
- theTranslator=new TranslatorDecoder(new TranslatorCzech);
+ theTranslator=new TranslatorCzech;
}
#endif
#ifdef LANG_FR
diff --git a/src/marshal.cpp b/src/marshal.cpp
index de659b1..a08c20a 100644
--- a/src/marshal.cpp
+++ b/src/marshal.cpp
@@ -10,6 +10,7 @@
#include "groupdef.h"
#include "example.h"
+#define HEADER ('D'<<24)+('O'<<16)+('X'<<8)+'!'
void marshalInt(StorageIntf *s,int v)
{
@@ -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)
@@ -664,4 +731,75 @@ SDict<MemberList> *unmarshalMemberLists(StorageIntf *s)
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;
+}
diff --git a/src/marshal.h b/src/marshal.h
index 26c7571..a30c431 100644
--- a/src/marshal.h
+++ b/src/marshal.h
@@ -21,6 +21,7 @@ struct DocInfo;
struct BriefInfo;
class MemberList;
class ExampleSDict;
+class Entry;
#define NULL_LIST 0xffffffff
@@ -33,6 +34,49 @@ class FileStorage : public QFile, public StorageIntf
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 --------------------
void marshalInt(StorageIntf *s,int v);
@@ -56,6 +100,8 @@ void marshalGroupList(StorageIntf *s,GroupList *groupList);
void marshalMemberList(StorageIntf *s,MemberList *ml);
void marshalExampleSDict(StorageIntf *s,ExampleSDict *ed);
void marshalMemberLists(StorageIntf *s,SDict<MemberList> *mls);
+void marshalEntry(StorageIntf *s,Entry *e);
+void marshalEntryTree(StorageIntf *s,Entry *e);
//----- unmarshaling function: byte stream -> datatype ------------------
@@ -80,5 +126,7 @@ GroupList * unmarshalGroupList(StorageIntf *s);
MemberList * unmarshalMemberList(StorageIntf *s);
ExampleSDict * unmarshalExampleSDict(StorageIntf *s);
SDict<MemberList> * unmarshalMemberLists(StorageIntf *s);
+Entry * unmarshalEntry(StorageIntf *s);
+Entry * unmarshalEntryTree(StorageIntf *s);
#endif
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index e149cc9..d00516b 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -3436,8 +3436,11 @@ void MemberDef::setBitfields(const char *s)
void MemberDef::setMaxInitLines(int lines)
{
- makeResident();
- m_impl->userInitLines=lines;
+ if (lines!=-1)
+ {
+ makeResident();
+ m_impl->userInitLines=lines;
+ }
}
void MemberDef::setExplicitExternal(bool b)
diff --git a/src/msc.cpp b/src/msc.cpp
index afde2ed..aa4ad88 100644
--- a/src/msc.cpp
+++ b/src/msc.cpp
@@ -98,7 +98,7 @@ void writeMscGraphFromFile(const char *inFile,const char *outDir,
// go to the html output directory (i.e. path)
QDir::setCurrent(outDir);
//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 extension;
if (format==MSC_BITMAP)
diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp
index dadc439..b6a2cd3 100644
--- a/src/perlmodgen.cpp
+++ b/src/perlmodgen.cpp
@@ -1692,10 +1692,13 @@ void PerlModGenerator::generatePerlModForClass(ClassDef *cd)
addTemplateList(cd,m_output);
addListOfAllMembers(cd);
- MemberGroupSDict::Iterator mgli(*cd->getMemberGroupSDict());
- MemberGroup *mg;
- for (;(mg=mgli.current());++mgli)
- generatePerlModSection(cd,mg->members(),"user_defined",mg->header());
+ if (cd->getMemberGroupSDict())
+ {
+ MemberGroupSDict::Iterator mgli(*cd->getMemberGroupSDict());
+ MemberGroup *mg;
+ for (;(mg=mgli.current());++mgli)
+ generatePerlModSection(cd,mg->members(),"user_defined",mg->header());
+ }
generatePerlModSection(cd,cd->getMemberList(MemberList::pubTypes),"public_typedefs");
generatePerlModSection(cd,cd->getMemberList(MemberList::pubMethods),"public_methods");
@@ -1795,10 +1798,13 @@ void PerlModGenerator::generatePerlModForNamespace(NamespaceDef *nd)
m_output.closeList();
}
- MemberGroupSDict::Iterator mgli(*nd->getMemberGroupSDict());
- MemberGroup *mg;
- for (;(mg=mgli.current());++mgli)
- generatePerlModSection(nd,mg->members(),"user-defined",mg->header());
+ if (nd->getMemberGroupSDict())
+ {
+ MemberGroupSDict::Iterator mgli(*nd->getMemberGroupSDict());
+ MemberGroup *mg;
+ for (;(mg=mgli.current());++mgli)
+ generatePerlModSection(nd,mg->members(),"user-defined",mg->header());
+ }
generatePerlModSection(nd,nd->getMemberList(MemberList::decDefineMembers),"defines");
generatePerlModSection(nd,nd->getMemberList(MemberList::decProtoMembers),"prototypes");
@@ -1967,10 +1973,13 @@ void PerlModGenerator::generatePerlModForGroup(GroupDef *gd)
m_output.closeList();
}
- MemberGroupSDict::Iterator mgli(*gd->getMemberGroupSDict());
- MemberGroup *mg;
- for (;(mg=mgli.current());++mgli)
- generatePerlModSection(gd,mg->members(),"user-defined",mg->header());
+ if (gd->getMemberGroupSDict())
+ {
+ MemberGroupSDict::Iterator mgli(*gd->getMemberGroupSDict());
+ MemberGroup *mg;
+ for (;(mg=mgli.current());++mgli)
+ generatePerlModSection(gd,mg->members(),"user-defined",mg->header());
+ }
generatePerlModSection(gd,gd->getMemberList(MemberList::decDefineMembers),"defines");
generatePerlModSection(gd,gd->getMemberList(MemberList::decProtoMembers),"prototypes");
diff --git a/src/portable.cpp b/src/portable.cpp
index 8a0d6e5..dc276d1 100644
--- a/src/portable.cpp
+++ b/src/portable.cpp
@@ -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,
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)
#else
#define CASTNEEDED(x) (char **)(x)
#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)
{
- return iconv_close(cd);
+ return iconv_close((iconv_t)cd);
}
diff --git a/src/pre.l b/src/pre.l
index 701e02e..f46a138 100644
--- a/src/pre.l
+++ b/src/pre.l
@@ -1006,7 +1006,8 @@ Define *newDefine()
void addDefine()
{
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());
//ArgumentList *al = new ArgumentList;
diff --git a/src/pyscanner.l b/src/pyscanner.l
index e6bacc5..913f88e 100644
--- a/src/pyscanner.l
+++ b/src/pyscanner.l
@@ -829,6 +829,11 @@ STARTDOCSYMS ^{B}"##"/[^#]
current->name = current->name.stripWhiteSpace();
newFunction();
}
+ {B}":" { // function without arguments
+ g_specialBlock = TRUE; // expecting a docstring
+ bodyEntry = current;
+ BEGIN( FunctionBody );
+ }
{B}"(" {
BEGIN( FunctionParams );
@@ -1110,7 +1115,7 @@ STARTDOCSYMS ^{B}"##"/[^#]
g_stringContext=VariableEnd;
BEGIN(TripleString);
}
- "(" { // typle
+ "(" { // tuple
current->type = "tuple";
current->initializer+=*yytext;
g_atomStart='(';
@@ -1168,6 +1173,12 @@ STARTDOCSYMS ^{B}"##"/[^#]
BEGIN(VariableEnd);
}
}
+ "\"" {
+ g_stringContext=YY_START;
+ current->initializer+="\"";
+ g_copyString=&current->initializer;
+ BEGIN( DoubleQuoteString );
+ }
{IDENTIFIER} {
current->initializer+=yytext;
}
diff --git a/src/scanner.l b/src/scanner.l
index d3ad412..8fd1672 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -160,7 +160,7 @@ static int docBlockContext;
static QCString docBlock;
static QCString docBlockName;
static bool docBlockInBody;
-static bool docBlockJavaStyle;
+static bool docBlockAutoBrief;
static char docBlockTerm;
static QCString idlAttr;
@@ -614,6 +614,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
%x SkipSharp
%x SkipRound
%x SkipSquare
+%x SkipRemainder
%x TypedefName
%x TryFunctionBlock
%x TryFunctionBlockEnd
@@ -1992,7 +1993,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
docBlockContext = YY_START;
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);
docBlockTerm = ';';
if (yytext[yyleng-3]=='/')
@@ -2010,7 +2012,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
lineCount();
docBlockContext = YY_START;
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);
docBlockTerm = ',';
if (yytext[yyleng-3]=='/')
@@ -2032,7 +2035,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
docBlockContext = YY_START;
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);
docBlockTerm = 0;
if (yytext[yyleng-3]=='/')
@@ -2072,7 +2076,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
{
docBlockContext = YY_START;
docBlockInBody = FALSE;
- docBlockJavaStyle = FALSE;
+ docBlockAutoBrief = FALSE;
docBlock.resize(0);
docBlockTerm = 0;
startCommentBlock(TRUE);
@@ -2091,7 +2095,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
docBlockContext = YY_START;
docBlockInBody = FALSE;
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;
startCommentBlock(FALSE);
BEGIN(DocBlock);
@@ -2701,6 +2706,31 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
initBracketCount=0;
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>"," {
//printf("adding `%s' `%s' `%s' to enum `%s' (mGrpId=%d)\n",
// current->type.data(), current->name.data(),
@@ -3884,7 +3914,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
docBlockContext = SkipCurlyEndDoc;
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);
docBlockTerm = '}';
if (yytext[yyleng-3]=='/')
@@ -3902,7 +3933,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
<SkipCurlyEndDoc>"}"{BN}*("/*!"|"/**"|"//!"|"///")"<" { // desc is followed by another one
docBlockContext = SkipCurlyEndDoc;
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);
docBlockTerm = '}';
if (yytext[yyleng-3]=='/')
@@ -4493,8 +4525,21 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
docBlockContext = YY_START;
docBlockInBody = YY_START==SkipCurly;
- docBlockJavaStyle = FALSE;
+ docBlockAutoBrief = Config_getBool("QT_AUTOBRIEF");
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);
BEGIN( DocBlock );
}
@@ -4514,9 +4559,9 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
current->docFile = yyFileName;
docBlockContext = YY_START;
docBlockInBody = YY_START==SkipCurly;
- docBlockJavaStyle = Config_getBool("JAVADOC_AUTOBRIEF");
+ docBlockAutoBrief = Config_getBool("JAVADOC_AUTOBRIEF");
docBlock.resize(0);
- if (docBlockJavaStyle)
+ if (docBlockAutoBrief)
{
current->briefLine = yyLineNr;
current->briefFile = yyFileName;
@@ -4524,7 +4569,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
if (!docBlockInBody)
{
current->doc.resize(0);
- if (docBlockJavaStyle)
+ if (docBlockAutoBrief)
{
current->brief.resize(0);
}
@@ -4551,7 +4596,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
docBlockContext = YY_START;
docBlockInBody = YY_START==SkipCurly;
- docBlockJavaStyle = FALSE;
+ docBlockAutoBrief = FALSE;
docBlock.resize(0);
startCommentBlock(TRUE);
BEGIN( DocLine );
@@ -4575,7 +4620,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
docBlockContext = YY_START;
docBlockInBody = YY_START==SkipCurly;
- docBlockJavaStyle = FALSE;
+ docBlockAutoBrief = FALSE;
docBlock.resize(0);
startCommentBlock(TRUE);
BEGIN( DocLine );
@@ -4932,7 +4977,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
yyFileName, // file
brief ? current->briefLine : current->docLine, // line of block start
docBlockInBody ? FALSE : brief,
- docBlockInBody ? FALSE : docBlockJavaStyle,
+ docBlockInBody ? FALSE : docBlockAutoBrief,
docBlockInBody,
protection,
position,
diff --git a/src/translator_cz.h b/src/translator_cz.h
index ef261ed..17d2b39 100644
--- a/src/translator_cz.h
+++ b/src/translator_cz.h
@@ -46,7 +46,7 @@
// introducing TranslatorAdapter class and the abstract base
// class Translator. The English translator is now on the same
// 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/25 - Corrections.
// 2001/07/16 - trClassDocumentation() updated as in the English translator.
@@ -69,6 +69,7 @@
// modified trCallGraph() to make the meaning unambiguous
// and clear in the Czech language.
// 2006/06/13 - translation of the trEnumerationValueDocumentation().
+// 2007/03/20 - removing ), conversion of literals to UTF-8.
// Todo
// ----
@@ -80,32 +81,16 @@
// Notices:
// --------
// 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
// 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
// Windows version. The version which does not call the function is
// probably slightly faster.
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:
// --- Language control methods -------------------
@@ -123,7 +108,7 @@ class TranslatorCzech : public Translator
{
//if (Config_getBool("USE_WINDOWS_ENCODING"))
//{
- return "windows-1250";
+ return "utf-8";
//}
//else
//{
@@ -135,83 +120,83 @@ class TranslatorCzech : public Translator
/*! used in the compound documentation before a list of related functions. */
virtual QCString trRelatedFunctions()
- { return decode("Souvisejc funkce"); }
+ { return "Související funkce"; }
/*! subscript for the related functions. */
virtual QCString trRelatedSubscript()
- { return decode("(Uveden funkce nejsou lenskmi funkcemi.)"); }
+ { return "(Uvedené funkce nejsou členskými funkcemi.)"; }
/*! header that is put before the detailed description of files, classes and namespaces. */
virtual QCString trDetailedDescription()
- { return decode("Detailn popis"); }
+ { return "Detailní popis"; }
/*! header that is put before the list of typedefs. */
virtual QCString trMemberTypedefDocumentation()
- { return decode("Dokumentace k lenskm typm"); }
+ { return "Dokumentace k členským typům"; }
/*! header that is put before the list of enumerations. */
virtual QCString trMemberEnumerationDocumentation()
- { return decode("Dokumentace k lenskm vtm"); }
+ { return "Dokumentace k členským výčtům"; }
/*! header that is put before the list of member functions. */
virtual QCString trMemberFunctionDocumentation()
- { return decode("Dokumentace k metodm"); }
+ { return "Dokumentace k metodám"; }
/*! header that is put before the list of member attributes. */
virtual QCString trMemberDataDocumentation()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode("Dokumentace k polokm");
+ return "Dokumentace k položkám";
}
else
{
- return decode("Dokumentace k datovm lenm");
+ return "Dokumentace k datovým členům";
}
}
/*! this is the text of a link put after brief descriptions. */
virtual QCString trMore()
- { return decode("..."); }
+ { return "..."; }
/*! put in the class documentation */
virtual QCString trListOfAllMembers()
- { return decode("Seznam vech len."); }
+ { return "Seznam všech členů."; }
/*! used as the title of the "list of all members" page of a class */
virtual QCString trMemberList()
- { return decode("Seznam len tdy"); }
+ { return "Seznam členů třídy"; }
/*! this is the first part of a sentence that is followed by a class name */
virtual QCString trThisIsTheListOfAllMembers()
- { return decode("Zde naleznete pln seznam len tdy "); }
+ { return "Zde naleznete úplný seznam členů třídy "; }
/*! this is the remainder of the sentence after the class name */
virtual QCString trIncludingInheritedMembers()
- { return decode(", vetn vech zddnch len."); }
+ { return ", včetně všech zděděných členů."; }
/*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name.
*/
virtual QCString trGeneratedAutomatically(const char *s)
- { QCString result="Generovno automaticky programem Doxygen "
- "ze zdrojovch text";
- if (s) result+=(QCString)" projektu "+s;
- result+=".";
- return decode(result);
+ { QCString result("Generováno automaticky programem Doxygen "
+ "ze zdrojových textů");
+ if (s) result += QCString(" projektu ") + s;
+ result += ".";
+ return result;
}
/*! put after an enum name in the list of all members */
virtual QCString trEnumName()
- { return decode("jmno vtu"); }
+ { return "jméno výčtu"; }
/*! put after an enum value in the list of all members */
virtual QCString trEnumValue()
- { return decode("hodnota vtu"); }
+ { return "hodnota výčtu"; }
/*! put after an undocumented member in the list of all members */
virtual QCString trDefinedIn()
- { return decode("definovn v"); }
+ { return "definován v"; }
// quick reference sections
@@ -219,39 +204,39 @@ class TranslatorCzech : public Translator
* compounds or files (see the \\group command).
*/
virtual QCString trModules()
- { return decode("Moduly"); }
+ { return "Moduly"; }
/*! This is put above each page as a link to the class hierarchy */
virtual QCString trClassHierarchy()
- { return decode("Hierarchie td"); }
+ { return "Hierarchie tříd"; }
/*! This is put above each page as a link to the list of annotated classes */
virtual QCString trCompoundList()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode("Datov struktury");
+ return "Datové struktury";
}
else
{
- return decode("Seznam td");
+ return "Seznam tříd";
}
}
/*! This is put above each page as a link to the list of documented files */
virtual QCString trFileList()
- { return decode("Seznam soubor"); }
+ { return "Seznam souborů"; }
/*! This is put above each page as a link to all members of compounds. */
virtual QCString trCompoundMembers()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode("Datov poloky");
+ return "Datové položky";
}
else
{
- return decode("Seznam len td");
+ return "Seznam členů tříd";
}
}
@@ -260,39 +245,39 @@ class TranslatorCzech : public Translator
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode("Globln symboly");
+ return "Globální symboly";
}
else
{
- return decode("Symboly v souborech");
+ return "Symboly v souborech";
}
}
/*! This is put above each page as a link to all related pages. */
virtual QCString trRelatedPages()
- { return decode("Ostatn strnky"); }
+ { return "Ostatní stránky"; }
/*! This is put above each page as a link to all examples. */
virtual QCString trExamples()
- { return decode("Pklady"); }
+ { return "Příklady"; }
/*! This is put above each page as a link to the search engine. */
virtual QCString trSearch()
- { return decode("Hledat"); }
+ { return "Hledat"; }
/*! This is an introduction to the class hierarchy. */
virtual QCString trClassHierarchyDescription()
- { return decode("Zde naleznete seznam, vyjadujc vztah ddinosti td. "
- "Je seazen piblin (ale ne pln) podle abecedy:");
+ { return "Zde naleznete seznam, vyjadřující vztah dědičnosti tříd. "
+ "Je seřazen přibližně (ale ne úplně) podle abecedy:";
}
/*! This is an introduction to the list with all files. */
virtual QCString trFileListDescription(bool extractAll)
{
- QCString result="Zde naleznete seznam vech ";
- if (!extractAll) result+="dokumentovanch ";
- result+="soubor se strunmi popisy:";
- return decode(result);
+ QCString result="Zde naleznete seznam všech ";
+ if (!extractAll) result+="dokumentovaných ";
+ result+="souborů se stručnými popisy:";
+ return result;
}
/*! This is an introduction to the annotated compound list. */
@@ -300,35 +285,35 @@ class TranslatorCzech : public Translator
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode("Nsledujc seznam obsahuje identifikace datovch "
- "struktur a jejich strun popisy:");
+ return "Následující seznam obsahuje identifikace datových "
+ "struktur a jejich stručné popisy:";
}
else
{
- return decode("Nsledujc seznam obsahuje pedevm identifikace "
- "td, ale nachzej se zde i dal netriviln prvky, "
- "jako jsou struktury (struct), unie (union) a rozhran "
- "(interface). V seznamu jsou uvedeny jejich strun "
- "popisy:");
+ return "Následující seznam obsahuje především identifikace "
+ "tříd, ale nacházejí se zde i další netriviální prvky, "
+ "jako jsou struktury (struct), unie (union) a rozhraní "
+ "(interface). V seznamu jsou uvedeny jejich stručné "
+ "popisy:";
}
}
/*! This is an introduction to the page with all class members. */
virtual QCString trCompoundMembersDescription(bool extractAll)
{
- QCString result= "Zde naleznete seznam vech ";
+ QCString result= "Zde naleznete seznam všech ";
if (!extractAll)
{
- result += "dokumentovanch ";
+ result += "dokumentovaných ";
}
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- result += "poloek struktur (struct) a uni (union) ";
+ result += "položek struktur (struct) a unií (union) ";
}
else
{
- result += "len td ";
+ result += "členů tříd ";
}
result += "s odkazy na ";
@@ -337,83 +322,83 @@ class TranslatorCzech : public Translator
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- result += "dokumentaci struktur/uni, ke kterm psluej:";
+ result += "dokumentaci struktur/unií, ke kterým příslušejí:";
}
else
{
- result += "dokumentaci td, ke kterm psluej:";
+ result += "dokumentaci tříd, ke kterým příslušejí:";
}
}
else
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- result+="struktury/unie, ke kterm psluej:";
+ result+="struktury/unie, ke kterým příslušejí:";
}
else
{
- result+="tdy, ke kterm psluej:";
+ 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. */
virtual QCString trFileMembersDescription(bool extractAll)
{
- QCString result="Zde naleznete seznam vech ";
- if (!extractAll) result+="dokumentovanch ";
+ QCString result="Zde naleznete seznam všech ";
+ if (!extractAll) result+="dokumentovaných ";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- result+="funkc, promnnch, maker, vt a definic typ (typedef) "
+ result+="funkcí, proměnných, maker, výčtů a definic typů (typedef) "
"s odkazy na ";
}
else
{
- result+="symbol, kter jsou definovny na rovni svch soubor. "
- "Pro kad symbol je uveden odkaz na ";
+ result+="symbolů, které jsou definovány na úrovni svých souborů. "
+ "Pro každý symbol je uveden odkaz na ";
}
if (extractAll)
- result+="soubory, ke kterm psluej:";
+ result+="soubory, ke kterým příslušejí:";
else
result+="dokumentaci:";
- return decode(result);
+ return result;
}
/*! This is an introduction to the page with the list of all examples */
virtual QCString trExamplesDescription()
- { return decode("Zde naleznete seznam vech pklad:"); }
+ { return "Zde naleznete seznam všech příkladů:"; }
/*! This is an introduction to the page with the list of related pages */
virtual QCString trRelatedPagesDescription()
- { return decode("Nsledujc seznam odkazuje na dal strnky 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 */
virtual QCString trModulesDescription()
- { return decode("Zde naleznete seznam vech modul:"); }
+ { return "Zde naleznete seznam všech modulů:"; }
// index titles (the project name is prepended for these)
/*! This is used in HTML as the title of index.html. */
virtual QCString trDocumentation()
- { return decode("Dokumentace"); }
+ { return "Dokumentace"; }
/*! This is used in LaTeX as the title of the chapter with the
* index of all groups.
*/
virtual QCString trModuleIndex()
- { return decode("Rejstk modul"); }
+ { return "Rejstřík modulů"; }
/*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
*/
virtual QCString trHierarchicalIndex()
- { return decode("Rejstk hierarchie td"); }
+ { return "Rejstřík hierarchie tříd"; }
/*! This is used in LaTeX as the title of the chapter with the
* annotated compound index.
@@ -422,11 +407,11 @@ class TranslatorCzech : public Translator
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode("Rejstk datovch struktur");
+ return "Rejstřík datových struktur";
}
else
{
- return decode("Rejstk td");
+ return "Rejstřík tříd";
}
}
@@ -434,13 +419,13 @@ class TranslatorCzech : public Translator
* list of all files.
*/
virtual QCString trFileIndex()
- { return decode("Rejstk soubor"); }
+ { return "Rejstřík souborů"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all groups.
*/
virtual QCString trModuleDocumentation()
- { return decode("Dokumentace modul"); }
+ { return "Dokumentace modulů"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all classes, structs and unions.
@@ -449,11 +434,11 @@ class TranslatorCzech : public Translator
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode("Dokumentace datovch struktur");
+ return "Dokumentace datových struktur";
}
else
{
- return decode("Dokumentace td");
+ return "Dokumentace tříd";
}
}
@@ -461,101 +446,101 @@ class TranslatorCzech : public Translator
* the documentation of all files.
*/
virtual QCString trFileDocumentation()
- { return decode("Dokumentace soubor"); }
+ { return "Dokumentace souborů"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all examples.
*/
virtual QCString trExampleDocumentation()
- { return decode("Dokumentace pklad"); }
+ { return "Dokumentace příkladů"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all related pages.
*/
virtual QCString trPageDocumentation()
- { return decode("Dokumentace souvisejcch strnek"); }
+ { return "Dokumentace souvisejících stránek"; }
/*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual()
- { return decode("Referenn pruka"); }
+ { return "Referenční příručka"; }
/*! This is used in the documentation of a file as a header before the
* list of defines
*/
virtual QCString trDefines()
- { return decode("Definice maker"); }
+ { return "Definice maker"; }
/*! This is used in the documentation of a file as a header before the
* list of function prototypes
*/
virtual QCString trFuncProtos()
- { return decode("Prototypy"); }
+ { return "Prototypy"; }
/*! This is used in the documentation of a file as a header before the
* list of typedefs
*/
virtual QCString trTypedefs()
- { return decode("Definice typ"); }
+ { return "Definice typů"; }
/*! This is used in the documentation of a file as a header before the
* list of enumerations
*/
virtual QCString trEnumerations()
- { return decode("Vty"); }
+ { return "Výčty"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) functions
*/
virtual QCString trFunctions()
- { return decode("Funkce"); }
+ { return "Funkce"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
virtual QCString trVariables()
- { return decode("Promnn"); }
+ { return "Proměnné"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
virtual QCString trEnumerationValues()
- { return decode("Hodnoty vtu"); }
+ { return "Hodnoty výčtu"; }
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
*/
virtual QCString trDefineDocumentation()
- { return decode("Dokumentace k definicm maker"); }
+ { return "Dokumentace k definicím maker"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for function prototypes
*/
virtual QCString trFunctionPrototypeDocumentation()
- { return decode("Dokumentace prototyp"); }
+ { return "Dokumentace prototypů"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs
*/
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
* of documentation blocks for enumeration types
*/
virtual QCString trEnumerationTypeDocumentation()
- { return decode("Dokumentace vtovch typ"); }
+ { return "Dokumentace výčtových typů"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for functions
*/
virtual QCString trFunctionDocumentation()
- { return decode("Dokumentace funkc"); }
+ { return "Dokumentace funkcí"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for variables
*/
virtual QCString trVariableDocumentation()
- { return decode("Dokumentace promnnch"); }
+ { return "Dokumentace proměnných"; }
/*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds
@@ -564,11 +549,11 @@ class TranslatorCzech : public Translator
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode("Datov struktry");
+ return "Datové struktry";
}
else
{
- return decode("Tdy");
+ return "Třídy";
}
}
@@ -577,80 +562,82 @@ class TranslatorCzech : public Translator
*/
virtual QCString trGeneratedAt(const char *date,const char *projName)
{
- QCString result=(QCString)"Generovno "+date;
- if (projName) result+=(QCString)" pro projekt "+projName;
- result+=(QCString)" programem";
- return decode(result);
+ QCString result("Generováno ");
+ result += date;
+ if (projName)
+ result += QCString(" pro projekt ") + projName;
+ result += " programem";
+ return result;
}
/*! This is part of the sentence used in the standard footer of each page.
*/
virtual QCString trWrittenBy()
{
- return decode(" -- autor ");
+ return " -- autor ";
}
/*! this text is put before a class diagram */
virtual QCString trClassDiagram(const char *clName)
{
- return decode((QCString)"Diagram ddinosti pro tdu "+clName);
+ return QCString("Diagram dědičnosti pro třídu ") + clName;
}
/*! this text is generated when the \\internal command is used. */
virtual QCString trForInternalUseOnly()
- { return decode("Pouze pro vnitn pouit."); }
+ { return "Pouze pro vnitřní použití."; }
/*! this text is generated when the \\warning command is used. */
virtual QCString trWarning()
- { return decode("Pozor"); }
+ { return "Pozor"; }
/*! this text is generated when the \\version command is used. */
virtual QCString trVersion()
- { return decode("Verze"); }
+ { return "Verze"; }
/*! this text is generated when the \\date command is used. */
virtual QCString trDate()
- { return decode("Datum"); }
+ { return "Datum"; }
/*! this text is generated when the \\return command is used. */
virtual QCString trReturns()
- { return decode("Nvratov hodnota"); }
+ { return "Návratová hodnota"; }
/*! this text is generated when the \\sa command is used. */
virtual QCString trSeeAlso()
- { return decode("Viz tak"); }
+ { return "Viz také"; }
/*! this text is generated when the \\param command is used. */
virtual QCString trParameters()
- { return decode("Parametry"); }
+ { return "Parametry"; }
/*! this text is generated when the \\exception command is used. */
virtual QCString trExceptions()
- { return decode("Vjimky"); }
+ { return "Výjimky"; }
/*! this text is used in the title page of a LaTeX document. */
virtual QCString trGeneratedBy()
- { return decode("Generovno programem"); }
+ { return "Generováno programem"; }
// new since 0.49-990307
/*! used as the title of page containing all the index of all namespaces. */
virtual QCString trNamespaceList()
- { return decode("Seznam prostor jmen"); }
+ { return "Seznam prostorů jmen"; }
/*! used as an introduction to the namespace list */
virtual QCString trNamespaceListDescription(bool extractAll)
{
- QCString result="Zde naleznete seznam vech ";
- if (!extractAll) result+="dokumentovanch ";
- result+="prostor jmen se strunm popisem:";
- return decode(result);
+ QCString result="Zde naleznete seznam všech ";
+ if (!extractAll) result+="dokumentovaných ";
+ result+="prostorů jmen se stručným popisem:";
+ return result;
}
/*! used in the class documentation as a header before the list of all
* friends of a class
*/
virtual QCString trFriends()
- { return decode("Friends"); }
+ { return "Friends"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
@@ -660,7 +647,7 @@ class TranslatorCzech : public Translator
* related classes
*/
virtual QCString trRelatedFunctionDocumentation()
- { return decode("Dokumentace k friends"); }
+ { return "Dokumentace k friends"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
@@ -672,19 +659,19 @@ class TranslatorCzech : public Translator
bool isTemplate)
{
QCString result("Dokumentace ");
- if (isTemplate) result+="ablony ";
+ if (isTemplate) result += "šablony ";
switch(compType)
{
- case ClassDef::Class: result+="tdy "; break;
- case ClassDef::Struct: result+="struktury "; break;
- case ClassDef::Union: result+="unie "; break;
- case ClassDef::Interface: result+="rozhran "; break;
- case ClassDef::Protocol: result+="protocol "; break; // translate me!
- case ClassDef::Category: result+="category "; break; // translate me!
- case ClassDef::Exception: result+="vjimky "; break;
+ case ClassDef::Class: result += "třídy "; break;
+ case ClassDef::Struct: result += "struktury "; break;
+ case ClassDef::Union: result += "unie "; break;
+ case ClassDef::Interface: result += "rozhraní "; break;
+ case ClassDef::Protocol: result += "protokolu "; break;
+ case ClassDef::Category: result += "kategorie "; break;
+ case ClassDef::Exception: result += "výjimky "; break;
}
- result+=clName;
- return decode(result);
+ result += clName;
+ return result;
}
/*! used as the title of the HTML page of a file */
@@ -692,7 +679,7 @@ class TranslatorCzech : public Translator
{
QCString result("Dokumentace souboru ");
result+=fileName;
- return decode(result);
+ return result;
}
/*! used as the title of the HTML page of a namespace */
@@ -700,32 +687,32 @@ class TranslatorCzech : public Translator
{
QCString result("Dokumentace prostoru jmen ");
result+=namespaceName;
- return decode(result);
+ return result;
}
/*
* these are for the member sections of a class, struct or union
*/
virtual QCString trPublicMembers()
- { return decode("Veejn metody"); }
+ { return "Veřejné metody"; }
virtual QCString trPublicSlots()
- { return decode("Veejn sloty"); }
+ { return "Veřejné sloty"; }
virtual QCString trSignals()
- { return decode("Signly"); }
+ { return "Signály"; }
virtual QCString trStaticPublicMembers()
- { return decode("Statick veejn metody"); }
+ { return "Statické veřejné metody"; }
virtual QCString trProtectedMembers()
- { return decode("Chrnn metody"); }
+ { return "Chráněné metody"; }
virtual QCString trProtectedSlots()
- { return decode("Chrnn sloty"); }
+ { return "Chráněné sloty"; }
virtual QCString trStaticProtectedMembers()
- { return decode("Statick chrnn metody"); }
+ { return "Statické chráněné metody"; }
virtual QCString trPrivateMembers()
- { return decode("Privtn metody"); }
+ { return "Privátní metody"; }
virtual QCString trPrivateSlots()
- { return decode("Privtn sloty"); }
+ { return "Privátní sloty"; }
virtual QCString trStaticPrivateMembers()
- { return decode("Statick privtn metody"); }
+ { return "Statické privátní metody"; }
/*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put.
@@ -749,7 +736,7 @@ class TranslatorCzech : public Translator
result+=" a ";
}
}
- return decode(result);
+ return result;
}
/*! used in class documentation to produce a list of base classes,
@@ -757,10 +744,10 @@ class TranslatorCzech : public Translator
*/
virtual QCString trInheritsList(int numEntries)
{
- QCString result("Dd z ");
- result += (numEntries == 1) ? "bzov tdy " : "bzovch td ";
- result += trWriteList(numEntries)+".";
- return decode(result);
+ QCString result("Dědí z ");
+ result += (numEntries == 1) ? "bázové třídy " : "bázových tříd ";
+ result += trWriteList(numEntries) + ".";
+ return result;
}
/*! used in class documentation to produce a list of super classes,
@@ -768,10 +755,10 @@ class TranslatorCzech : public Translator
*/
virtual QCString trInheritedByList(int numEntries)
{
- QCString result("Zddna ");
- result += (numEntries == 1) ? "tdou " : "tdami ";
- result += trWriteList(numEntries)+".";
- return decode(result);
+ QCString result("Zděděna ");
+ result += (numEntries == 1) ? "třídou " : "třídami ";
+ result += trWriteList(numEntries) + ".";
+ return result;
}
/*! used in member documentation blocks to produce a list of
@@ -779,9 +766,9 @@ class TranslatorCzech : public Translator
*/
virtual QCString trReimplementedFromList(int numEntries)
{
- QCString result("Reimplementuje stejnojmenn prvek z ");
- result += trWriteList(numEntries)+".";
- return decode(result);
+ QCString result("Reimplementuje stejnojmenný prvek z ");
+ result += trWriteList(numEntries) + ".";
+ return result;
}
/*! used in member documentation blocks to produce a list of
@@ -789,39 +776,39 @@ class TranslatorCzech : public Translator
*/
virtual QCString trReimplementedInList(int numEntries)
{
- QCString result("Reimplementovno v ");
- result += trWriteList(numEntries)+".";
- return decode(result);
+ QCString result("Reimplementováno v ");
+ result += trWriteList(numEntries) + ".";
+ return result;
}
/*! This is put above each page as a link to all members of namespaces. */
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 */
virtual QCString trNamespaceMemberDescription(bool extractAll)
{
- QCString result="Zde naleznete seznam vech ";
- if (!extractAll) result+="dokumentovanch ";
- result+="symbol, kter jsou definovny ve svch prostorech jmen. "
- "U kadho je uveden odkaz na ";
+ QCString result="Zde naleznete seznam všech ";
+ if (!extractAll) result+="dokumentovaných ";
+ result+="symbolů, které jsou definovány ve svých prostorech jmen. "
+ "U každého je uveden odkaz na ";
if (extractAll)
- result+="dokumentaci pslunho prostoru jmen:";
+ result+="dokumentaci příslušného prostoru jmen:";
else
- result+="pslun prostor jmen:";
- return decode(result);
+ result+="příslušný prostor jmen:";
+ return result;
}
/*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces.
*/
virtual QCString trNamespaceIndex()
- { return decode("Rejstk prostor jmen"); }
+ { return "Rejstřík prostorů jmen"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all namespaces.
*/
virtual QCString trNamespaceDocumentation()
- { return decode("Dokumentace prostor jmen"); }
+ { return "Dokumentace prostorů jmen"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990522
@@ -831,7 +818,7 @@ class TranslatorCzech : public Translator
* namespaces in a file.
*/
virtual QCString trNamespaces()
- { return decode("Prostory jmen"); }
+ { return "Prostory jmen"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990728
@@ -847,25 +834,25 @@ class TranslatorCzech : public Translator
QCString result=(QCString)"Dokumentace pro ";
switch(compType)
{
- case ClassDef::Class: result+="tuto tdu"; break;
+ case ClassDef::Class: result+="tuto třídu"; break;
case ClassDef::Struct: result+="tuto strukturu (struct)"; break;
case ClassDef::Union: result+="tuto unii (union)"; break;
- case ClassDef::Interface: result+="toto rozhran"; break;
- case ClassDef::Protocol: result+="protocol "; break; // translate me!
- case ClassDef::Category: result+="category "; break; // translate me!
- case ClassDef::Exception: result+="tuto vjimku"; break;
+ case ClassDef::Interface: result+="toto rozhraní"; break;
+ case ClassDef::Protocol: result+="tento protokol "; break;
+ case ClassDef::Category: result+="tuto kategorii "; break;
+ case ClassDef::Exception: result+="tuto výjimku"; break;
}
- result+=" byla generovna z ";
- if (single) result+="nsledujcho souboru:";
- else result+="nsledujcch soubor:";
- return decode(result);
+ result+=" byla generována z ";
+ if (single) result+="následujícího souboru:";
+ else result+="následujících souborů:";
+ return result;
}
/*! This is in the (quick) index as a link to the alphabetical compound
* list.
*/
virtual QCString trAlphabeticalList()
- { return decode("Rejstk td"); }
+ { return "Rejstřík tříd"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990901
@@ -873,18 +860,18 @@ class TranslatorCzech : public Translator
/*! This is used as the heading text for the retval command. */
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)
*/
virtual QCString trMainPage()
- { return decode("Hlavn strnka"); }
+ { return "Hlavní stránka"; }
/*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
*/
virtual QCString trPageAbbreviation()
- { return decode("s."); }
+ { return "s."; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991003
@@ -892,11 +879,11 @@ class TranslatorCzech : public Translator
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()
{
- return decode("Definice v souboru @0.");
+ return "Definice v souboru @0.";
}
//////////////////////////////////////////////////////////////////////////
@@ -905,7 +892,7 @@ class TranslatorCzech : public Translator
virtual QCString trDeprecated()
{
- return decode("Zastaral");
+ return "Zastaralé";
}
//////////////////////////////////////////////////////////////////////////
@@ -915,69 +902,69 @@ class TranslatorCzech : public Translator
/*! this text is put before a collaboration diagram */
virtual QCString trCollaborationDiagram(const char *clName)
{
- return decode((QCString)"Diagram td pro "+clName+":");
+ return (QCString)"Diagram tříd pro "+clName+":";
}
/*! this text is put before an include dependency graph */
virtual QCString trInclDepGraph(const char *fName)
{
- return decode((QCString)"Graf zvislost na vkldanch souborech "
- "pro "+fName+":");
+ return (QCString)"Graf závislostí na vkládaných souborech "
+ "pro "+fName+":";
}
/*! header that is put before the list of constructor/destructors. */
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. */
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. */
virtual QCString trGotoDocumentation()
{
- return decode("Zobrazit dokumentaci tohoto souboru.");
+ return "Zobrazit dokumentaci tohoto souboru.";
}
/*! Text for the \\pre command */
virtual QCString trPrecondition()
{
- return decode("Precondition");
+ return "Precondition";
}
/*! Text for the \\post command */
virtual QCString trPostcondition()
{
- return decode("Postcondition");
+ return "Postcondition";
}
/*! Text for the \\invariant command */
virtual QCString trInvariant()
{
- return decode("Invariant");
+ return "Invariant";
}
/*! Text shown before a multi-line variable/enum initialization */
virtual QCString trInitialValue()
{
- return decode("Initializer:");
+ return "Initializer:";
}
/*! Text used the source code in the file index */
virtual QCString trCode()
{
- return decode("zdrojov text");
+ return "zdrojový text";
}
virtual QCString trGraphicalHierarchy()
{
- return decode("Grafick zobrazen hierarchie td");
+ return "Grafické zobrazení hierarchie tříd";
}
virtual QCString trGotoGraphicalHierarchy()
{
- return decode("Zobrazit grafickou podobu hierarchie td");
+ return "Zobrazit grafickou podobu hierarchie tříd";
}
virtual QCString trGotoTextualHierarchy()
{
- return decode("Zobrazit textovou podobu hierarchie td");
+ return "Zobrazit textovou podobu hierarchie tříd";
}
virtual QCString trPageIndex()
{
- return decode("Rejstk strnek");
+ return "Rejstřík stránek";
}
//////////////////////////////////////////////////////////////////////////
@@ -986,50 +973,50 @@ class TranslatorCzech : public Translator
virtual QCString trNote()
{
- return decode("Poznmka");
+ return "Poznámka";
}
virtual QCString trPublicTypes()
{
- return decode("Veejn typy");
+ return "Veřejné typy";
}
virtual QCString trPublicAttribs()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode("Datov poloky");
+ return "Datové položky";
}
else
{
- return decode("Veejn atributy");
+ return "Veřejné atributy";
}
}
virtual QCString trStaticPublicAttribs()
{
- return decode("Statick veejn atributy");
+ return "Statické veřejné atributy";
}
virtual QCString trProtectedTypes()
{
- return decode("Chrnn typy");
+ return "Chráněné typy";
}
virtual QCString trProtectedAttribs()
{
- return decode("Chrnn atributy");
+ return "Chráněné atributy";
}
virtual QCString trStaticProtectedAttribs()
{
- return decode("Statick chrnn atributy");
+ return "Statické chráněné atributy";
}
virtual QCString trPrivateTypes()
{
- return decode("Privtn typy");
+ return "Privátní typy";
}
virtual QCString trPrivateAttribs()
{
- return decode("Privtn atributy");
+ return "Privátní atributy";
}
virtual QCString trStaticPrivateAttribs()
{
- return decode("Statick privtn atributy");
+ return "Statické privátní atributy";
}
//////////////////////////////////////////////////////////////////////////
@@ -1039,12 +1026,12 @@ class TranslatorCzech : public Translator
/*! Used as a marker that is put before a todo item */
virtual QCString trTodo()
{
- return decode("Plnovan pravy");
+ return "Plánované úpravy";
}
/*! Used as the header of the todo list */
virtual QCString trTodoList()
{
- return decode("Seznam plnovanch prav");
+ return "Seznam plánovaných úprav";
}
//////////////////////////////////////////////////////////////////////////
@@ -1053,24 +1040,24 @@ class TranslatorCzech : public Translator
virtual QCString trReferencedBy()
{
- return decode("Pouv se v");
+ return "Používá se v";
}
virtual QCString trRemarks()
{
- return decode("Poznmky"); // ??? not checked in a context
+ return "Poznámky"; // ??? not checked in a context
}
virtual QCString trAttention()
{
- return decode("Upozornn"); // ??? not checked in a context
+ return "Upozornění"; // ??? not checked in a context
}
virtual QCString trInclByDepGraph()
{
- return decode("Nsledujc graf ukazuje, kter soubory pmo nebo "
- "nepmo vkldaj tento soubor:");
+ return "Následující graf ukazuje, které soubory přímo nebo "
+ "nepřímo vkládají tento soubor:";
}
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
/*! title of the graph legend page */
virtual QCString trLegendTitle()
{
- return decode("Vysvtlivky ke grafu");
+ return "Vysvětlivky ke grafu";
}
/*! page explaining how the dot graph's should be interpreted */
virtual QCString trLegendDocs()
{
QCString result(
- "Zde naleznete vysvtlen, jak maj bt interpretovny grafy, "
- "kter byly generovny programem doxygen.<p>\n"
- "Uvaujte nsledujc pklad:\n"
+ "Zde naleznete vysvětlení, jak mají být interpretovány grafy, "
+ "které byly generovány programem doxygen.<p>\n"
+ "Uvažujte následující příklad:\n"
"\\code\n"
- "/*! Neviditeln tda, kter se v grafu nezobrazuje, protoe "
- "dolo k oezn grafu. */\n"
+ "/*! Neviditelná třída, která se v grafu nezobrazuje, protože "
+ "došlo k ořezání grafu. */\n"
"class Invisible { };\n\n"
- "/*! Tda, u kter dolo k oezn grafu. Vztah ddinosti "
+ "/*! Třída, u které došlo k ořezání grafu. Vztah dědičnosti "
"je skryt. */\n"
"class Truncated : public Invisible { };\n\n"
- "/*! Bzov tda ddn veejn (public inheritance). */\n"
+ "/*! Bázová třída děděná veřejně (public inheritance). */\n"
"class PublicBase : public Truncated { };\n\n"
- "/*! Bzov tda, pouit pro chrnn ddn "
+ "/*! Bázová třída, použitá pro chráněné dědění "
"(protected inheritance). */\n"
"class ProtectedBase { };\n\n"
- "/*! Bzov tda, vyuit pro privtn ddn "
+ "/*! Bázová třída, využitá pro privátní dědění "
"(private inheritance). */\n"
"class PrivateBase { };\n\n"
- "/* Tda, kter nen dokumentovna komenti programu doxygen. */\n"
+ "/* Třída, která není dokumentována komentáři programu doxygen. */\n"
"class Undocumented { };\n\n"
- "/*! ablona tdy. */\n"
+ "/*! Šablona třídy. */\n"
"template<class T> class Templ { };\n\n"
- "/*! Tda, kter je vyuvna tdou Inherited. */\n"
+ "/*! Třída, která je využívána třídou Inherited. */\n"
"class Used { };\n\n"
- "/*! Odvozen tda, kter rznm zpsobem dd z vce bzovch "
- "td. */\n"
+ "/*! Odvozená třída, která různým způsobem dědí z více bázových "
+ "tříd. */\n"
"class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n"
" private PrivateBase,\n"
@@ -1122,49 +1109,49 @@ class TranslatorCzech : public Translator
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
- "Pokud je poloka \\c MAX_DOT_GRAPH_HEIGHT konfiguranho souboru "
- "nastavena na hodnotu 200, bude vygenerovn nsledujc graf:"
+ "Pokud je položka \\c MAX_DOT_GRAPH_HEIGHT konfiguračního souboru "
+ "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>\n"
- "Bloky (tj. uzly) v uvedenm grafu maj nsledujc vznam:\n"
+ "Bloky (tj. uzly) v uvedeném grafu mají následující význam:\n"
"<ul>\n"
- "<li>ern vyplnn obdlnk reprezentuje strukturu nebo tdu, "
- "pro kterou byl graf generovn.\n"
- "<li>Obdlnk s ernm obrysem oznauje dokumentovanou "
- "strukturu nebo tdu.\n"
- "<li>Obdlnk s edm obrysem oznauje nedokumentovanou "
- "strukturu nebo tdu.\n"
- "<li>Obdlnk s ervenm obrysem oznauje dokumentovanou "
- "strukturu nebo tdu, pro kterou\n"
- "nejsou zobrazeny vechny vztahy ddinosti nebo obsaen. "
- "Graf je oezn v ppad, kdy jej\n"
- "nen mon umstit do vymezenho prostoru.\n"
+ "<li>Černě vyplněný obdélník reprezentuje strukturu nebo třídu, "
+ "pro kterou byl graf generován.\n"
+ "<li>Obdélník s černým obrysem označuje dokumentovanou "
+ "strukturu nebo třídu.\n"
+ "<li>Obdélník s šedým obrysem označuje nedokumentovanou "
+ "strukturu nebo třídu.\n"
+ "<li>Obdélník s červeným obrysem označuje dokumentovanou "
+ "strukturu nebo třídu, pro kterou\n"
+ "nejsou zobrazeny všechny vztahy dědičnosti nebo obsažení. "
+ "Graf je ořezán v případě, kdy jej\n"
+ "není možné umístit do vymezeného prostoru.\n"
"</ul>\n"
- "ipky (tj. hrany grafu) maj nsledujc vznam:\n"
+ "Šipky (tj. hrany grafu) mají následující význam:\n"
"<ul>\n"
- "<li>Tmav modr ipka se pouv pro oznaen vztahu veejn "
- "ddinosti (public) mezi dvma tdami.\n"
- "<li>Tmav zelen ipka oznauje vztah chrnn ddinosti "
+ "<li>Tmavě modrá šipka se používá pro označení vztahu veřejné "
+ "dědičnosti (public) mezi dvěma třídami.\n"
+ "<li>Tmavě zelená šipka označuje vztah chráněné dědičnosti "
"(protected).\n"
- "<li>Tmav erven ipka oznauje vztah privtn ddinosti "
+ "<li>Tmavě červená šipka označuje vztah privátní dědičnosti "
"(private).\n"
- "<li>Purpurov ipka kreslen rkovan se pouv v ppad, "
- "kdy je tda obsaena v jin td,\n"
- "nebo kdy je pouvna jinou tdou. Je oznaena identifiktorem "
- "jedn nebo vce promnch, pes kter\n"
- "je tda nebo struktura zpstupnna.\n"
- "<li>lut ipka kreslen rkovan vyjaduje vztah mezi instanc ablony "
- "a ablonou tdy, na zklad kter byla\n"
- "instance ablony vytvoena. V popisu ipky jsou uvedeny pslun"
- " parametry ablony.\n"
+ "<li>Purpurová šipka kreslená čárkovaně se používá v případě, "
+ "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 "
+ "jedné nebo více proměných, přes které\n"
+ "je třída nebo struktura zpřístupněna.\n"
+ "<li>Žlutá šipka kreslená čárkovaně vyjadřuje vztah mezi instancí šablony "
+ "a šablonou třídy, na základě které byla\n"
+ "instance šablony vytvořena. V popisu šipky jsou uvedeny příslušné"
+ " parametry šablony.\n"
"</ul>\n");
- return decode(result);
+ return result;
}
/*! text for the link to the legend page */
virtual QCString trLegend()
{
- return decode("vysvtlivky");
+ return "vysvětlivky";
}
//////////////////////////////////////////////////////////////////////////
@@ -1174,13 +1161,13 @@ class TranslatorCzech : public Translator
/*! Used as a marker that is put before a test item */
virtual QCString trTest()
{
- return decode("Test");
+ return "Test";
}
/*! Used as the header of the test list */
virtual QCString trTestList()
{
- return decode("Seznam test");
+ return "Seznam testů";
}
//////////////////////////////////////////////////////////////////////////
@@ -1190,7 +1177,7 @@ class TranslatorCzech : public Translator
/*! Used as a section header for KDE-2 IDL methods */
virtual QCString trDCOPMethods()
{
- return decode("Metody DCOP");
+ return "Metody DCOP";
}
//////////////////////////////////////////////////////////////////////////
@@ -1200,12 +1187,12 @@ class TranslatorCzech : public Translator
/*! Used as a section header for IDL properties */
virtual QCString trProperties()
{
- return decode("Vlastnosti");
+ return "Vlastnosti";
}
/*! Used as a section header for IDL property documentation */
virtual QCString trPropertyDocumentation()
{
- return decode("Dokumentace k vlastnosti");
+ return "Dokumentace k vlastnosti";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.4
@@ -1214,33 +1201,33 @@ class TranslatorCzech : public Translator
/*! Used for Java classes in the summary section of Java packages */
virtual QCString trClasses()
{
- return decode("Tdy");
+ return "Třídy";
}
/*! Used as the title of a Java package */
virtual QCString trPackage(const char *name)
{
- return decode((QCString)"Balk "+name);
+ return QCString("Balík ") + name;
}
/*! Title of the package index page */
virtual QCString trPackageList()
{
- return decode("Seznam balk");
+ return "Seznam balíků";
}
/*! The description of the package index page */
virtual QCString trPackageListDescription()
{
- return decode("Zde naleznete seznam balk se strunm popisem "
- "(pokud byl uveden):");
+ return "Zde naleznete seznam balíků se stručným popisem "
+ "(pokud byl uveden):";
}
/*! The link name in the Quick links header for each page */
virtual QCString trPackages()
{
- return decode("Balky");
+ return "Balíky";
}
/*! Text shown before a multi-line define */
virtual QCString trDefineValue()
{
- return decode("Hodnota:");
+ return "Hodnota:";
}
//////////////////////////////////////////////////////////////////////////
@@ -1250,12 +1237,12 @@ class TranslatorCzech : public Translator
/*! Used as a marker that is put before a \\bug item */
virtual QCString trBug()
{
- return decode("Chyba");
+ return "Chyba";
}
/*! Used as the header of the bug list */
virtual QCString trBugList()
{
- return decode("Seznam chyb");
+ return "Seznam chyb";
}
//////////////////////////////////////////////////////////////////////////
@@ -1277,7 +1264,7 @@ class TranslatorCzech : public Translator
/*! Used as header RTF general index */
virtual QCString trRTFGeneralIndex()
{
- return decode("Rejstk");
+ return "Rejstřík";
}
/*! This is used for translation of the word that will possibly
@@ -1286,9 +1273,9 @@ class TranslatorCzech : public Translator
*/
virtual QCString trClass(bool first_capital, bool singular)
{
- QCString result((first_capital ? "Td" : "td"));
- result+=(singular ? "a" : "y");
- return decode(result);
+ QCString result((first_capital ? "Tříd" : "tříd"));
+ result += singular ? "a" : "y";
+ return result;
}
/*! This is used for translation of the word that will possibly
@@ -1299,7 +1286,7 @@ class TranslatorCzech : public Translator
{
QCString result((first_capital ? "Soubor" : "soubor"));
if (!singular) result+="y";
- return decode(result);
+ return result;
}
/*! This is used for translation of the word that will possibly
@@ -1311,7 +1298,7 @@ class TranslatorCzech : public Translator
QCString result((first_capital ? "Prostor" : "prostor"));
if (!singular) result+="y";
result+=" jmen";
- return decode(result);
+ return result;
}
/*! This is used for translation of the word that will possibly
@@ -1321,8 +1308,8 @@ class TranslatorCzech : public Translator
virtual QCString trGroup(bool first_capital, bool singular)
{
QCString result((first_capital ? "Skupin" : "skupin"));
- result+=(singular ? "a" : "y");
- return decode(result);
+ result += singular ? "a" : "y";
+ return result;
}
/*! This is used for translation of the word that will possibly
@@ -1331,9 +1318,9 @@ class TranslatorCzech : public Translator
*/
virtual QCString trPage(bool first_capital, bool singular)
{
- QCString result((first_capital ? "Strnk" : "strnk"));
- result+=(singular ? "a" : "y");
- return decode(result);
+ QCString result((first_capital ? "Stránk" : "stránk"));
+ result += singular ? "a" : "y";
+ return result;
}
/*! This is used for translation of the word that will possibly
@@ -1342,9 +1329,10 @@ class TranslatorCzech : public Translator
*/
virtual QCString trMember(bool first_capital, bool singular)
{
- QCString result((first_capital ? "len" : "len"));
- if (!singular) result+="y";
- return decode(result);
+ QCString result((first_capital ? "Člen" : "člen"));
+ if (!singular)
+ result += "y";
+ return result;
}
/*! ??? Jak to prelozit? Bylo by dobre, kdyby se ozval nekdo,
@@ -1366,8 +1354,8 @@ class TranslatorCzech : public Translator
virtual QCString trAuthor(bool first_capital, bool singular)
{
QCString result((first_capital ? "Auto" : "auto"));
- result += (singular) ? "r" : "i";
- return decode(result);
+ result += (singular) ? "r" : "ři";
+ return result;
}
//////////////////////////////////////////////////////////////////////////
@@ -1378,7 +1366,7 @@ class TranslatorCzech : public Translator
*/
virtual QCString trReferences()
{
- return decode("Odkazuje se na");
+ return "Odkazuje se na";
}
//////////////////////////////////////////////////////////////////////////
@@ -1398,7 +1386,7 @@ class TranslatorCzech : public Translator
*/
virtual QCString trImplementedInList(int numEntries)
{
- return decode("Implementovno v "+trWriteList(numEntries)+".");
+ return "Implementováno v "+trWriteList(numEntries)+".";
}
//////////////////////////////////////////////////////////////////////////
@@ -1410,7 +1398,7 @@ class TranslatorCzech : public Translator
*/
virtual QCString trRTFTableOfContents()
{
- return decode("Obsah");
+ return "Obsah";
}
//////////////////////////////////////////////////////////////////////////
@@ -1422,7 +1410,7 @@ class TranslatorCzech : public Translator
*/
virtual QCString trDeprecatedList()
{
- return decode("Seznam zastaralch prvk");
+ return "Seznam zastaralých prvků";
}
//////////////////////////////////////////////////////////////////////////
@@ -1434,12 +1422,12 @@ class TranslatorCzech : public Translator
*/
virtual QCString trEvents()
{
- return decode("Udlosti");
+ return "Události";
}
/*! Header used for the documentation section of a class' events. */
virtual QCString trEventDocumentation()
{
- return decode("Dokumentace udlost");
+ return "Dokumentace událostí";
}
//////////////////////////////////////////////////////////////////////////
@@ -1450,35 +1438,35 @@ class TranslatorCzech : public Translator
*/
virtual QCString trPackageTypes()
{
- return decode("Typy v balku");
+ return "Typy v balíku";
}
/*! Used as a heading for a list of Java class functions with package
* scope.
*/
virtual QCString trPackageMembers()
{
- return decode("Funkce v balku");
+ return "Funkce v balíku";
}
/*! Used as a heading for a list of static Java class functions with
* package scope.
*/
virtual QCString trStaticPackageMembers()
{
- return decode("Statick funkce v balku");
+ return "Statické funkce v balíku";
}
/*! Used as a heading for a list of Java class variables with package
* scope.
*/
virtual QCString trPackageAttribs()
{
- return decode("Atributy balku");
+ return "Atributy balíku";
}
/*! Used as a heading for a list of static Java class variables with
* package scope.
*/
virtual QCString trStaticPackageAttribs()
{
- return decode("Statick atributy balku");
+ return "Statické atributy balíku";
}
//////////////////////////////////////////////////////////////////////////
@@ -1490,12 +1478,12 @@ class TranslatorCzech : public Translator
*/
virtual QCString trAll()
{
- return decode("Ve");
+ return "Vše";
}
/*! Put in front of the call graph for a function. */
virtual QCString trCallGraph()
{
- return decode("Tato funkce vol...");
+ return "Tato funkce volá...";
}
//////////////////////////////////////////////////////////////////////////
@@ -1507,14 +1495,14 @@ class TranslatorCzech : public Translator
*/
virtual QCString trSearchForIndex()
{
- return decode("Vyhledat");
+ return "Vyhledat";
}
/*! This string is used as the title for the page listing the search
* results.
*/
virtual QCString trSearchResultsTitle()
{
- return decode("Vsledky vyhledvn");
+ return "Výsledky vyhledávání";
}
/*! This string is put just before listing the search results. The
* text can be different depending on the number of documents found.
@@ -1528,17 +1516,17 @@ class TranslatorCzech : public Translator
{
if (numDocuments==0)
{
- return decode("Lituji. Vaemu dotazu neodpovd dn dokument.");
+ return "Lituji. Vašemu dotazu neodpovídá žádný dokument.";
}
else if (numDocuments==1)
{
- return decode("Nalezen jedin dokument, kter vyhovuje vaemu dotazu.");
+ return "Nalezen jediný dokument, který vyhovuje vašemu dotazu.";
}
else
{
- return decode("Nalezeno <b>$num</b> dokument, kter vyhovuj vaemu "
- "dotazu. Nejlpe odpovdajc dokumenty jsou zobrazeny "
- "jako prvn.");
+ return "Nalezeno <b>$num</b> dokumentů, které vyhovují vašemu "
+ "dotazu. Nejlépe odpovídající dokumenty jsou zobrazeny "
+ "jako první.";
}
}
/*! This string is put before the list of matched words, for each search
@@ -1546,7 +1534,7 @@ class TranslatorCzech : public Translator
*/
virtual QCString trSearchMatches()
{
- return decode("Nalezen slova:");
+ return "Nalezená slova:";
}
//////////////////////////////////////////////////////////////////////////
@@ -1557,7 +1545,7 @@ class TranslatorCzech : public Translator
*/
virtual QCString trSourceFile(QCString& filename)
{
- return decode("Zdrojov soubor ") + filename;
+ return QCString("Zdrojový soubor ") + filename;
}
@@ -1570,27 +1558,27 @@ class TranslatorCzech : public Translator
* hierarchy.
*/
virtual QCString trDirIndex()
- { return decode("Hierarchie adres"); }
+ { return "Hierarchie adresářů"; }
/*! This is used as the name of the chapter containing the documentation
* of the directories.
*/
virtual QCString trDirDocumentation()
- { return decode("Dokumentace k adresm"); }
+ { return "Dokumentace k adresářům"; }
/*! 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.
*/
virtual QCString trDirectories()
- { return decode("Adrese"); }
+ { return "Adresáře"; }
/*! This returns a sentences that introduces the directory hierarchy.
* and the fact that it is sorted alphabetically per level
*/
virtual QCString trDirDescription()
{
- return decode("Nsledujc hierarchie adres je zhruba, "
- "ale ne pln, azena podle abecedy:");
+ return "Následující hierarchie adresářů je zhruba, "
+ "ale ne úplně, řazena podle abecedy:";
}
/*! This returns the title of a directory page. The name of the
@@ -1598,9 +1586,9 @@ class TranslatorCzech : public Translator
*/
virtual QCString trDirReference(const char *dirName)
{
- QCString result = "Reference k adresi ";
+ QCString result = "Reference k adresáři ";
result += dirName;
- return decode(result);
+ return result;
}
/*! This returns the word directory with or without starting capital
@@ -1608,10 +1596,10 @@ class TranslatorCzech : public Translator
*/
virtual QCString trDir(bool first_capital, bool singular)
{
- QCString result((first_capital ? "Adres" : "adres"));
+ QCString result((first_capital ? "Adresář" : "adresář"));
if ( ! singular)
result += "e";
- return decode(result);
+ return result;
}
//////////////////////////////////////////////////////////////////////////
@@ -1623,9 +1611,9 @@ class TranslatorCzech : public Translator
*/
virtual QCString trOverloadText()
{
- return decode("Jde o petenou (overloaded) metodu, "
- "kter m usnadnit pouvn. Od ve uveden metody se li "
- "pouze jinak zadvanmi argumenty.");
+ return "Jde o přetíženou (overloaded) metodu, "
+ "která má usnadnit používání. Od výše uvedené metody se liší "
+ "pouze jinak zadávanými argumenty.";
}
//////////////////////////////////////////////////////////////////////////
@@ -1634,7 +1622,7 @@ class TranslatorCzech : public Translator
virtual QCString trCallerGraph()
{
- return decode("Tuto funkci volaj...");
+ return "Tuto funkci volají...";
}
@@ -1643,7 +1631,7 @@ class TranslatorCzech : public Translator
*/
virtual QCString trEnumerationValueDocumentation()
{
- return decode("Dokumentace vtovch hodnot");
+ return "Dokumentace výčtových hodnot";
}
};
diff --git a/src/util.cpp b/src/util.cpp
index 866b555..6521f81 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -293,6 +293,7 @@ int guessSection(const char *name)
n.right(4)==".hpp" ||
n.right(4)==".h++" ||
n.right(4)==".idl" ||
+ n.right(4)==".ddl" ||
n.right(5)==".pidl"
) return Entry::HEADER_SEC;
return 0;
@@ -1476,7 +1477,7 @@ nextChar:
result+=' ';
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)==')' ||
s.at(i+1)==',' || s.at(i+1)=='\0'))
// prevent const ::A from being converted to const::A
@@ -1485,12 +1486,12 @@ nextChar:
if (s.at(i+1)==' ') i++;
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+=" :";
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)==')' ||
s.at(i+1)==',' || s.at(i+1)=='\0'))
// prevent virtual ::A from being converted to virtual::A
@@ -1499,7 +1500,7 @@ nextChar:
if (s.at(i+1)==' ') i++;
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+=" :";
vsp=0;
@@ -5949,6 +5950,7 @@ SrcLangExt getLanguageFromFileName(const QCString fileName)
if (!init) // one time initialization
{
extLookup.insert(".idl", new int(SrcLangExt_IDL));
+ extLookup.insert(".ddl", new int(SrcLangExt_IDL));
extLookup.insert(".odl", new int(SrcLangExt_IDL));
extLookup.insert(".java", new int(SrcLangExt_Java));
extLookup.insert(".jsl", new int(SrcLangExt_Java));