From 0b087b99d43fb3803b26407d771ca32e6cf5c34b Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sun, 6 May 2007 12:30:18 +0000 Subject: Release-1.5.2-20070506 --- INSTALL | 4 +- README | 4 +- addon/doxyapp/doxyapp.cpp | 1 - configure | 2 +- doc/autolink.doc | 6 +- doc/commands.doc | 9 + doc/config.doc | 27 +- doc/docblocks.doc | 4 + doc/language.doc | 2 +- doc/translator.py | 34 ++- doc/translator_report.txt | 60 +++- src/classdef.cpp | 1 + src/commentcnv.l | 4 +- src/commentscan.l | 10 +- src/config.l | 19 +- src/docparser.cpp | 41 ++- src/docparser.h | 2 +- src/dot.cpp | 20 +- src/doxygen.cpp | 18 +- src/doxygen.h | 30 ++ src/doxygen.pro.in | 6 +- src/entry.cpp | 286 ++++++++++---------- src/entry.h | 3 + src/language.cpp | 2 +- src/marshal.cpp | 140 +++++++++- src/marshal.h | 48 ++++ src/memberdef.cpp | 7 +- src/msc.cpp | 2 +- src/perlmodgen.cpp | 33 ++- src/portable.cpp | 6 +- src/pre.l | 3 +- src/pyscanner.l | 13 +- src/scanner.l | 75 ++++- src/translator_cz.h | 676 +++++++++++++++++++++++----------------------- src/util.cpp | 10 +- 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 // ugly hack to get the right unistd.h (doxygen has one too) #include #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:
  1. 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.
    +\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. + +
    \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
    +
    \c DOXYFILE_ENCODING
    + \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
    \c PROJECT_NAME
    \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 +
    \c QT_AUTOBRIEF
    + \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
    \c BUILTIN_STL_SUPPORT
    @@ -753,6 +774,8 @@ function's detailed documentation block. If this tag is empty the current directory is searched. \anchor cfg_input_encoding +
    \c INPUT_ENCODING
    + \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) [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) // style + { + bool inSeeBlock = g_inSeeBlock; + g_token->name = cref; + g_inSeeBlock = TRUE; + handleLinkedWord(this,m_children); + g_inSeeBlock = inSeeBlock; + } + else // ... 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, 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 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 *killDict = 0 + bool errorIfNotExist, + QDict *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 StringList; typedef QDict 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 *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 *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 *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 eli(*e->children()); + Entry *child; + for (eli.toFirst();(child=eli.current());++eli) + { + marshalEntryTree(s,child); + } +} + //------------------------------------------------------------------ int unmarshalInt(StorageIntf *s) @@ -664,4 +731,75 @@ SDict *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;iaddSubEntry(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 *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 * 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=¤t->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); } +";" { + 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; + } + } +\n { + yyLineNr++; + } +[^\n]* "," { //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}+)?) "}"{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("Související funkce"); } + { return "SouvisejĂ­cĂ­ funkce"; } /*! subscript for the related functions. */ virtual QCString trRelatedSubscript() - { return decode("(Uvedené funkce nejsou členskými funkcemi.)"); } + { return "(UvedenĂ© funkce nejsou ÄŤlenskĂ˝mi funkcemi.)"; } /*! header that is put before the detailed description of files, classes and namespaces. */ 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 členským typům"); } + { return "Dokumentace k ÄŤlenskĂ˝m typĹŻm"; } /*! header that is put before the list of enumerations. */ virtual QCString trMemberEnumerationDocumentation() - { return decode("Dokumentace k členským výčtům"); } + { return "Dokumentace k ÄŤlenskĂ˝m výčtĹŻm"; } /*! header that is put before the list of member functions. */ virtual QCString trMemberFunctionDocumentation() - { return decode("Dokumentace k metodám"); } + { 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 položkám"); + return "Dokumentace k poloĹľkám"; } else { - return decode("Dokumentace k datovým členům"); + return "Dokumentace k datovĂ˝m ÄŤlenĹŻm"; } } /*! this is the text of a link put after brief descriptions. */ virtual QCString trMore() - { return decode("..."); } + { return "..."; } /*! put in the class documentation */ virtual QCString trListOfAllMembers() - { return decode("Seznam všech členů."); } + { return "Seznam všech ÄŤlenĹŻ."; } /*! used as the title of the "list of all members" page of a class */ virtual QCString trMemberList() - { return decode("Seznam členů třídy"); } + { return "Seznam ÄŤlenĹŻ třídy"; } /*! this is the first part of a sentence that is followed by a class name */ virtual QCString trThisIsTheListOfAllMembers() - { return decode("Zde naleznete úplný seznam členů třídy "); } + { return "Zde naleznete ĂşplnĂ˝ seznam ÄŤlenĹŻ třídy "; } /*! this is the remainder of the sentence after the class name */ virtual QCString trIncludingInheritedMembers() - { return decode(", včetně všech zděděných členů."); } + { return ", vÄŤetnÄ› všech zdÄ›dÄ›nĂ˝ch ÄŤlenĹŻ."; } /*! this is put at the author sections at the bottom of man pages. * parameter s is name of the project name. */ virtual QCString trGeneratedAutomatically(const char *s) - { QCString result="Generováno automaticky programem Doxygen " - "ze zdrojových 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("jméno výčtu"); } + { return "jmĂ©no výčtu"; } /*! put after an enum value in the list of all members */ virtual QCString trEnumValue() - { return decode("hodnota výčtu"); } + { return "hodnota výčtu"; } /*! put after an undocumented member in the list of all members */ virtual QCString trDefinedIn() - { return decode("definován 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 tříd"); } + { 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 tříd"); + 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é položky"); + return "DatovĂ© poloĹľky"; } else { - return decode("Seznam členů tříd"); + return "Seznam ÄŤlenĹŻ tříd"; } } @@ -260,39 +245,39 @@ class TranslatorCzech : public Translator { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return decode("Globální 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í stránky"); } + { return "OstatnĂ­ stránky"; } /*! This is put above each page as a link to all examples. */ virtual QCString trExamples() - { return decode("Příklady"); } + { 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, vyjadřující vztah dědičnosti tříd. " - "Je seřazen přibližně (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 všech "; - if (!extractAll) result+="dokumentovaných "; - result+="souborů se stručnými 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("Následující seznam obsahuje identifikace datových " - "struktur a jejich stručné popisy:"); + return "NásledujĂ­cĂ­ seznam obsahuje identifikace datovĂ˝ch " + "struktur a jejich struÄŤnĂ© popisy:"; } else { - return decode("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:"); + 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 všech "; + QCString result= "Zde naleznete seznam všech "; if (!extractAll) { - result += "dokumentovaných "; + result += "dokumentovanĂ˝ch "; } if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - result += "položek struktur (struct) a unií (union) "; + result += "poloĹľek struktur (struct) a uniĂ­ (union) "; } else { - result += "členů tříd "; + 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 kterým příslušejí:"; + result += "dokumentaci struktur/uniĂ­, ke kterĂ˝m příslušejĂ­:"; } else { - result += "dokumentaci tříd, ke kterým příslušejí:"; + result += "dokumentaci tříd, ke kterĂ˝m příslušejĂ­:"; } } else { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - result+="struktury/unie, ke kterým příslušejí:"; + result+="struktury/unie, ke kterĂ˝m příslušejĂ­:"; } else { - result+="třídy, ke kterým příslušejí:"; + result+="třídy, ke kterĂ˝m příslušejĂ­:"; } } - return decode(result); + return result; } /*! This is an introduction to the page with all file members. */ virtual QCString trFileMembersDescription(bool extractAll) { - QCString result="Zde naleznete seznam všech "; - if (!extractAll) result+="dokumentovaných "; + QCString result="Zde naleznete seznam všech "; + if (!extractAll) result+="dokumentovanĂ˝ch "; if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - result+="funkcí, proměnných, maker, výčtů a definic typů (typedef) " + result+="funkcĂ­, promÄ›nnĂ˝ch, maker, výčtĹŻ a definic typĹŻ (typedef) " "s odkazy na "; } else { - result+="symbolů, které jsou definovány na úrovni svých souborů. " - "Pro každý 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 kterým příslušejí:"; + 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 všech příkladů:"); } + { return "Zde naleznete seznam všech příkladĹŻ:"; } /*! This is an introduction to the page with the list of related pages */ virtual QCString trRelatedPagesDescription() - { return decode("Následující seznam odkazuje na další stránky projektu:"); } + { return "NásledujĂ­cĂ­ seznam odkazuje na další stránky projektu:"; } /*! This is an introduction to the page with the list of class/file groups */ virtual QCString trModulesDescription() - { return decode("Zde naleznete seznam všech modulů:"); } + { return "Zde naleznete seznam všech modulĹŻ:"; } // index titles (the project name is prepended for these) /*! 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("Rejstřík 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("Rejstřík hierarchie tříd"); } + { 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("Rejstřík datových struktur"); + return "Rejstřík datovĂ˝ch struktur"; } else { - return decode("Rejstřík tříd"); + return "Rejstřík tříd"; } } @@ -434,13 +419,13 @@ class TranslatorCzech : public Translator * list of all files. */ virtual QCString trFileIndex() - { return decode("Rejstřík 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 datových struktur"); + return "Dokumentace datovĂ˝ch struktur"; } else { - return decode("Dokumentace tříd"); + 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 příkladů"); } + { 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 souvisejících stránek"); } + { return "Dokumentace souvisejĂ­cĂ­ch stránek"; } /*! This is used in LaTeX as the title of the document */ virtual QCString trReferenceManual() - { return decode("Referenční příručka"); } + { return "ReferenÄŤnĂ­ příruÄŤka"; } /*! This is used in the documentation of a file as a header before the * 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("Výčty"); } + { 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("Proměnné"); } + { 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 výčtu"); } + { 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 definicím 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 výčtových 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 proměnných"); } + { 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("Třídy"); + return "Třídy"; } } @@ -577,80 +562,82 @@ class TranslatorCzech : public Translator */ virtual QCString trGeneratedAt(const char *date,const char *projName) { - QCString result=(QCString)"Generováno "+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 dědičnosti pro třídu "+clName); + return QCString("Diagram dÄ›diÄŤnosti pro třídu ") + clName; } /*! this text is generated when the \\internal command is used. */ virtual QCString trForInternalUseOnly() - { return decode("Pouze pro vnitřní použití."); } + { return "Pouze pro vnitĹ™nĂ­ pouĹľitĂ­."; } /*! this text is generated when the \\warning command is used. */ 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("Návratová 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("Výjimky"); } + { return "VĂ˝jimky"; } /*! this text is used in the title page of a LaTeX document. */ virtual QCString trGeneratedBy() - { return decode("Generováno 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 všech "; - if (!extractAll) result+="dokumentovaných "; - result+="prostorů jmen se stručným 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+="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+="protocol "; break; // translate me! - case ClassDef::Category: result+="category "; break; // translate me! - case ClassDef::Exception: result+="výjimky "; 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("Veřejné metody"); } + { return "VeĹ™ejnĂ© metody"; } virtual QCString trPublicSlots() - { return decode("Veřejné sloty"); } + { return "VeĹ™ejnĂ© sloty"; } virtual QCString trSignals() - { return decode("Signály"); } + { return "Signály"; } virtual QCString trStaticPublicMembers() - { return decode("Statické veřejné metody"); } + { return "StatickĂ© veĹ™ejnĂ© metody"; } virtual QCString trProtectedMembers() - { return decode("Chráněné metody"); } + { return "ChránÄ›nĂ© metody"; } virtual QCString trProtectedSlots() - { return decode("Chráněné sloty"); } + { return "ChránÄ›nĂ© sloty"; } virtual QCString trStaticProtectedMembers() - { return decode("Statické chráněné metody"); } + { return "StatickĂ© chránÄ›nĂ© metody"; } virtual QCString trPrivateMembers() - { return decode("Privátní metody"); } + { return "PrivátnĂ­ metody"; } virtual QCString trPrivateSlots() - { return decode("Privátní sloty"); } + { return "PrivátnĂ­ sloty"; } virtual QCString trStaticPrivateMembers() - { return decode("Statické privátní metody"); } + { return "StatickĂ© privátnĂ­ metody"; } /*! this function is used to produce a comma-separated list of items. * 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("Dědí z "); - result += (numEntries == 1) ? "bázové třídy " : "bázových tříd "; - 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("Zděděna "); - result += (numEntries == 1) ? "třídou " : "třídami "; - 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("Reimplementováno 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 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 "; + 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 příslušného prostoru jmen:"; + result+="dokumentaci příslušnĂ©ho prostoru jmen:"; else - result+="příslušný 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("Rejstřík 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 třídu"; 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 výjimku"; 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 generována z "; - if (single) result+="následujícího souboru:"; - else result+="následujících 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("Rejstřík tříd"); } + { 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í stránka"); } + { 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 tříd 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 závislostí na vkládaných 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 tříd"); + return "GrafickĂ© zobrazenĂ­ hierarchie tříd"; } virtual QCString trGotoGraphicalHierarchy() { - return decode("Zobrazit grafickou podobu hierarchie tříd"); + return "Zobrazit grafickou podobu hierarchie tříd"; } virtual QCString trGotoTextualHierarchy() { - return decode("Zobrazit textovou podobu hierarchie tříd"); + return "Zobrazit textovou podobu hierarchie tříd"; } virtual QCString trPageIndex() { - return decode("Rejstřík stránek"); + return "Rejstřík stránek"; } ////////////////////////////////////////////////////////////////////////// @@ -986,50 +973,50 @@ class TranslatorCzech : public Translator virtual QCString trNote() { - return decode("Poznámka"); + return "Poznámka"; } virtual QCString trPublicTypes() { - return decode("Veřejné typy"); + return "VeĹ™ejnĂ© typy"; } virtual QCString trPublicAttribs() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return decode("Datové položky"); + return "DatovĂ© poloĹľky"; } else { - return decode("Veřejné atributy"); + return "VeĹ™ejnĂ© atributy"; } } virtual QCString trStaticPublicAttribs() { - return decode("Statické veřejné atributy"); + return "StatickĂ© veĹ™ejnĂ© atributy"; } virtual QCString trProtectedTypes() { - return decode("Chráněné typy"); + return "ChránÄ›nĂ© typy"; } virtual QCString trProtectedAttribs() { - return decode("Chráněné atributy"); + return "ChránÄ›nĂ© atributy"; } virtual QCString trStaticProtectedAttribs() { - return decode("Statické chráněné atributy"); + return "StatickĂ© chránÄ›nĂ© atributy"; } virtual QCString trPrivateTypes() { - return decode("Privátní typy"); + return "PrivátnĂ­ typy"; } virtual QCString trPrivateAttribs() { - return decode("Privátní atributy"); + return "PrivátnĂ­ atributy"; } virtual QCString trStaticPrivateAttribs() { - return decode("Statické privátní 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("Plánované úpravy"); + return "PlánovanĂ© Ăşpravy"; } /*! Used as the header of the todo list */ virtual QCString trTodoList() { - return decode("Seznam plánovaných úprav"); + return "Seznam plánovanĂ˝ch Ăşprav"; } ////////////////////////////////////////////////////////////////////////// @@ -1053,24 +1040,24 @@ class TranslatorCzech : public Translator virtual QCString trReferencedBy() { - return decode("Používá se v"); + return "Používá se v"; } virtual QCString trRemarks() { - return decode("Poznámky"); // ??? not checked in a context + return "Poznámky"; // ??? not checked in a context } virtual QCString trAttention() { - return decode("Upozornění"); // ??? not checked in a context + return "UpozornÄ›nĂ­"; // ??? not checked in a context } virtual QCString trInclByDepGraph() { - return decode("Následující graf ukazuje, které soubory přímo nebo " - "nepřímo vkládají 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("Vysvětlivky ke grafu"); + return "VysvÄ›tlivky ke grafu"; } /*! page explaining how the dot graph's should be interpreted */ virtual QCString trLegendDocs() { QCString result( - "Zde naleznete vysvětlení, jak mají být interpretovány grafy, " - "které byly generovány programem doxygen.

    \n" - "Uvažujte následující příklad:\n" + "Zde naleznete vysvÄ›tlenĂ­, jak majĂ­ bĂ˝t interpretovány grafy, " + "kterĂ© byly generovány programem doxygen.

    \n" + "UvaĹľujte následujĂ­cĂ­ příklad:\n" "\\code\n" - "/*! Neviditelná třída, která se v grafu nezobrazuje, protože " - "došlo k ořezání grafu. */\n" + "/*! Neviditelná třída, která se v grafu nezobrazuje, protoĹľe " + "došlo k oĹ™ezánĂ­ grafu. */\n" "class Invisible { };\n\n" - "/*! Třída, u které došlo k ořezání grafu. Vztah dědičnosti " + "/*! Třída, u kterĂ© došlo k oĹ™ezánĂ­ grafu. Vztah dÄ›diÄŤnosti " "je skryt. */\n" "class Truncated : public Invisible { };\n\n" - "/*! Bázová třída děděná veřejně (public inheritance). */\n" + "/*! Bázová třída dÄ›dÄ›ná veĹ™ejnÄ› (public inheritance). */\n" "class PublicBase : public Truncated { };\n\n" - "/*! Bázová třída, použitá pro chráněné dědění " + "/*! Bázová třída, pouĹľitá pro chránÄ›nĂ© dÄ›dÄ›nĂ­ " "(protected inheritance). */\n" "class ProtectedBase { };\n\n" - "/*! Bázová třída, využitá pro privátní dědění " + "/*! Bázová třída, vyuĹľitá pro privátnĂ­ dÄ›dÄ›nĂ­ " "(private inheritance). */\n" "class PrivateBase { };\n\n" - "/* Třída, která není dokumentována komentáři programu doxygen. */\n" + "/* Třída, která nenĂ­ dokumentována komentáři programu doxygen. */\n" "class Undocumented { };\n\n" - "/*! Šablona třídy. */\n" + "/*! Ĺ ablona třídy. */\n" "template class Templ { };\n\n" - "/*! Třída, která je využívána třídou Inherited. */\n" + "/*! Třída, která je využívána třídou Inherited. */\n" "class Used { };\n\n" - "/*! Odvozená třída, která různým způsobem dědí z více bázových " - "tříd. */\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 položka \\c MAX_DOT_GRAPH_HEIGHT konfiguračního souboru " - "nastavena na hodnotu 200, bude vygenerován následující 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:" "

    \n" "

    \n" - "Bloky (tj. uzly) v uvedeném grafu mají následující význam:\n" + "Bloky (tj. uzly) v uvedenĂ©m grafu majĂ­ následujĂ­cĂ­ vĂ˝znam:\n" "

      \n" - "
    • Černě vyplněný obdélník reprezentuje strukturu nebo třídu, " - "pro kterou byl graf generován.\n" - "
    • Obdélník s černým obrysem označuje dokumentovanou " - "strukturu nebo třídu.\n" - "
    • Obdélník s šedým obrysem označuje nedokumentovanou " - "strukturu nebo třídu.\n" - "
    • 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" + "
    • ÄŚernÄ› vyplnÄ›nĂ˝ obdĂ©lnĂ­k reprezentuje strukturu nebo třídu, " + "pro kterou byl graf generován.\n" + "
    • ObdĂ©lnĂ­k s ÄŤernĂ˝m obrysem oznaÄŤuje dokumentovanou " + "strukturu nebo třídu.\n" + "
    • ObdĂ©lnĂ­k s šedĂ˝m obrysem oznaÄŤuje nedokumentovanou " + "strukturu nebo třídu.\n" + "
    • 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" "
    \n" - "Šipky (tj. hrany grafu) mají následující význam:\n" + "Ĺ ipky (tj. hrany grafu) majĂ­ následujĂ­cĂ­ vĂ˝znam:\n" "
      \n" - "
    • Tmavě modrá šipka se používá pro označení vztahu veřejné " - "dědičnosti (public) mezi dvěma třídami.\n" - "
    • Tmavě zelená šipka označuje vztah chráněné dědičnosti " + "
    • TmavÄ› modrá šipka se používá pro oznaÄŤenĂ­ vztahu veĹ™ejnĂ© " + "dÄ›diÄŤnosti (public) mezi dvÄ›ma třídami.\n" + "
    • TmavÄ› zelená šipka oznaÄŤuje vztah chránÄ›nĂ© dÄ›diÄŤnosti " "(protected).\n" - "
    • Tmavě červená šipka označuje vztah privátní dědičnosti " + "
    • TmavÄ› ÄŤervená šipka oznaÄŤuje vztah privátnĂ­ dÄ›diÄŤnosti " "(private).\n" - "
    • 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" - "
    • Ž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" + "
    • 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" + "
    • Ĺ˝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" "
    \n"); - return decode(result); + return result; } /*! text for the link to the legend page */ virtual QCString trLegend() { - return decode("vysvětlivky"); + 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("Třídy"); + return "Třídy"; } /*! Used as the title of a Java package */ virtual QCString trPackage(const char *name) { - return decode((QCString)"Balík "+name); + return QCString("BalĂ­k ") + name; } /*! Title of the package index page */ virtual QCString trPackageList() { - return decode("Seznam balíků"); + return "Seznam balĂ­kĹŻ"; } /*! The description of the package index page */ virtual QCString trPackageListDescription() { - return decode("Zde naleznete seznam balíků se stručným 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("Balíky"); + 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("Rejstřík"); + 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 ? "Tříd" : "tříd")); - 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 ? "Stránk" : "stránk")); - 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("Implementováno 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 zastaralých prvků"); + return "Seznam zastaralĂ˝ch prvkĹŻ"; } ////////////////////////////////////////////////////////////////////////// @@ -1434,12 +1422,12 @@ class TranslatorCzech : public Translator */ virtual QCString trEvents() { - return decode("Události"); + return "Události"; } /*! Header used for the documentation section of a class' events. */ virtual QCString trEventDocumentation() { - return decode("Dokumentace událostí"); + return "Dokumentace událostĂ­"; } ////////////////////////////////////////////////////////////////////////// @@ -1450,35 +1438,35 @@ class TranslatorCzech : public Translator */ virtual QCString trPackageTypes() { - return decode("Typy v balíku"); + return "Typy v balĂ­ku"; } /*! Used as a heading for a list of Java class functions with package * scope. */ virtual QCString trPackageMembers() { - return decode("Funkce v balíku"); + return "Funkce v balĂ­ku"; } /*! Used as a heading for a list of static Java class functions with * package scope. */ virtual QCString trStaticPackageMembers() { - return decode("Statické funkce v balíku"); + return "StatickĂ© funkce v balĂ­ku"; } /*! Used as a heading for a list of Java class variables with package * scope. */ virtual QCString trPackageAttribs() { - return decode("Atributy balíku"); + return "Atributy balĂ­ku"; } /*! Used as a heading for a list of static Java class variables with * package scope. */ virtual QCString trStaticPackageAttribs() { - return decode("Statické atributy balíku"); + return "StatickĂ© atributy balĂ­ku"; } ////////////////////////////////////////////////////////////////////////// @@ -1490,12 +1478,12 @@ class TranslatorCzech : public Translator */ virtual QCString trAll() { - return decode("Vše"); + 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("Výsledky vyhledávání"); + 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. Vašemu dotazu neodpovídá žádný dokument."); + return "Lituji. Vašemu dotazu neodpovĂ­dá žádnĂ˝ dokument."; } else if (numDocuments==1) { - return decode("Nalezen jediný dokument, který vyhovuje vašemu dotazu."); + return "Nalezen jedinĂ˝ dokument, kterĂ˝ vyhovuje vašemu dotazu."; } else { - return decode("Nalezeno $num dokumentů, které vyhovují vašemu " - "dotazu. Nejlépe odpovídající dokumenty jsou zobrazeny " - "jako první."); + return "Nalezeno $num 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 adresářům"); } + { 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("Adresáře"); } + { 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("Následující 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 adresáři "; + 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 přetíženou (overloaded) metodu, " - "která má usnadnit používání. Od výše uvedené metody se liší " - "pouze jinak zadávanými 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 výčtových 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)); -- cgit v0.12