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

Release-1.5.2-20070506

parent 80f45b62
DOXYGEN Version 1.5.2
DOXYGEN Version 1.5.2-20070506
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (04 April 2007)
Dimitri van Heesch (06 May 2007)
DOXYGEN Version 1.5.2
DOXYGEN Version 1.5.2_20070506
Please read INSTALL for compilation instructions.
......@@ -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)
......@@ -25,7 +25,6 @@
* show some information about it.
*/
#include </usr/include/unistd.h> // ugly hack to get the right unistd.h (doxygen has one too)
#include <stdlib.h>
#include "doxygen.h"
#include "outputgen.h"
......
......@@ -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"`
......
......@@ -84,10 +84,10 @@
For non overloaded members the argument list may be omitted.
If a function is overloaded and no matching argument list is specified
(i.e. pattern 2 or 5 is used), a link will be created to the
(i.e. pattern 2 or 6 is used), a link will be created to the
documentation of one of the overloaded members.
For member functions the class scope (as used in patterns 4 to 6) may
For member functions the class scope (as used in patterns 4 to 7) may
be omitted, if:
<ol>
<li>The pattern points to a documented member that belongs to the same class
......@@ -101,7 +101,7 @@
All of these entities can be linked to in the same way as described in the
previous section. For sake of clarity it is advised to only use
patterns 3 and 6 in this case.
patterns 3 and 7 in this case.
\par Example:
\verbinclude autolink.cpp
......
......@@ -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
......@@ -863,6 +864,14 @@ is empty, \c TEST, \c DEV, or \c DEV \c TEST.
a deprecated entity. Can be used to describe alternatives,
expected life span, etc.
<hr>
\section cmddetails \\details {detailed decription}
\addindex \\details
Just like \ref cmdbrief "\\brief" starts a brief description, \\details
starts the detailed description. You can also start a new paragraph (blank line)
then the \\details command is not needed.
<hr>
\section cmdelse \\else
......
......@@ -85,6 +85,7 @@ followed by the descriptions of the tags grouped by category.
\refitem cfg_dot_path DOT_PATH
\refitem cfg_dot_transparent DOT_TRANSPARENT
\refitem cfg_dotfile_dirs DOTFILE_DIRS
\refitem cfg_doxyfile_encoding DOXYFILE_ENCODING
\refitem cfg_enable_preprocessing ENABLE_PREPROCESSING
\refitem cfg_enum_values_per_line ENUM_VALUES_PER_LINE
\refitem cfg_enabled_sections ENABLED_SECTIONS
......@@ -178,6 +179,7 @@ followed by the descriptions of the tags grouped by category.
\refitem cfg_predefined PREDEFINED
\refitem cfg_project_name PROJECT_NAME
\refitem cfg_project_number PROJECT_NUMBER
\refitem cfg_qt_autobrief QT_AUTOBRIEF
\refitem cfg_quiet QUIET
\refitem cfg_recursive RECURSIVE
\refitem cfg_referenced_by_relation REFERENCED_BY_RELATION
......@@ -226,9 +228,18 @@ followed by the descriptions of the tags grouped by category.
\endsecreflist
\section config_project Project related options
\anchor cfg_project_name
\anchor cfg_doxyfile_encoding
<dl>
<dt>\c DOXYFILE_ENCODING <dd>
\addindex DOXYFILE_ENCODING
This tag specifies the encoding used for all characters in the config file that
follow. The default is UTF-8 which is also the encoding used for all text before
the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into
libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of
possible encodings.
\anchor cfg_project_name
<dt>\c PROJECT_NAME <dd>
\addindex PROJECT_NAME
The \c PROJECT_NAME tag is a single word (or a sequence of words
......@@ -382,7 +393,17 @@ followed by the descriptions of the tags grouped by category.
If the \c JAVADOC_AUTOBRIEF is set to \c YES then doxygen
will interpret the first line (until the first dot) of a JavaDoc-style
comment as the brief description. If set to NO (the default), the
Javadoc-style will behave just like the Qt-style comments.
Javadoc-style will behave just like regular Qt-style comments
(thus requiring an explicit \@brief command for a brief description.)
\anchor cfg_qt_autobrief
<dt>\c QT_AUTOBRIEF <dd>
\addindex QT_AUTOBRIEF
If the \c QT_AUTOBRIEF is set to \c YES then doxygen
will interpret the first line (until the first dot) of a Qt-style
comment as the brief description. If set to NO (the default), the
Qt-style will behave just like regular Qt-style comments (thus
requiring an explicit \\brief command for a brief description.)
\anchor cfg_builtin_stl_support
<dt>\c BUILTIN_STL_SUPPORT <dd>
......@@ -753,6 +774,8 @@ function's detailed documentation block.
If this tag is empty the current directory is searched.
\anchor cfg_input_encoding
<dt>\c INPUT_ENCODING <dd>
\addindex INPUT_ENCODING
This tag can be used to specify the character encoding of the source files that
doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default
input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding.
......
......@@ -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
......
......@@ -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,
......
......@@ -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.
......
(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
-----------------
......
......@@ -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(),
......
......@@ -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)
{
......
......@@ -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
{
......
......@@ -502,7 +502,6 @@ static void readIncludeFile(const char *incName)
<Start>[a-z_A-Z][a-z_A-Z0-9]*[ \t]*"=" { QCString cmd=yytext;
cmd=cmd.left(cmd.length()-1).stripWhiteSpace();
ConfigOption *option = config->get(cmd);
option->setEncoding(encoding);
if (option==0) // oops not known
{
config_err("Warning: ignoring unsupported tag `%s' at line %d, file %s\n",
......@@ -511,6 +510,7 @@ static void readIncludeFile(const char *incName)
}
else // known tag
{
option->setEncoding(encoding);
switch(option->kind())
{
case ConfigOption::O_Info:
......@@ -1574,8 +1574,17 @@ void Config::create()
"If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen \n"
"will interpret the first line (until the first dot) of a JavaDoc-style \n"
"comment as the brief description. If set to NO, the JavaDoc \n"
"comments will behave just like the Qt-style comments (thus requiring an \n"
"explicit @brief command for a brief description. \n",
"comments will behave just like regular Qt-style comments \n"
"(thus requiring an explicit @brief command for a brief description.) \n",
FALSE
);
cb = addBool(
"QT_AUTOBRIEF",
"If the QT_AUTOBRIEF tag is set to YES then Doxygen will \n"
"interpret the first line (until the first dot) of a Qt-style \n"
"comment as the brief description. If set to NO, the comments \n"
"will behave just like regular Qt-style comments (thus requiring \n"
"an explicit \\brief command for a brief description.) \n",
FALSE
);
cb = addBool(
......@@ -2821,7 +2830,7 @@ void Config::create()
cb->addDependency("HAVE_DOT");
cb = addBool(
"CALL_GRAPH",
"If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will \n"
"If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will \n"
"generate a call dependency graph for every global function or class method. \n"
"Note that enabling this option will significantly increase the time of a run. \n"
"So in most cases it will be better to enable call graphs for selected \n"
......@@ -2831,7 +2840,7 @@ void Config::create()
cb->addDependency("HAVE_DOT");
cb = addBool(
"CALLER_GRAPH",
"If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will \n"
"If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will \n"
"generate a caller dependency graph for every global function or class method. \n"
"Note that enabling this option will significantly increase the time of a run. \n"
"So in most cases it will be better to enable caller graphs for selected \n"
......
......@@ -1422,7 +1422,7 @@ static void readTextFileByName(const QString &file,QString &text)
FileDef *fd;
if ((fd=findFileDef(Doxygen::exampleNameDict,file,ambig)))
{
text = fileToString(fd->absFilePath(),FALSE);
text = fileToString(fd->absFilePath(),Config_getBool("FILTER_SOURCE_FILES"));
}
else if (ambig)
{
......@@ -2092,6 +2092,8 @@ void DocRef::parse()
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unsupported symbol %s found",
g_token->name.data());
break;
case TK_HTMLTAG:
break;
default:
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unexpected token %s",
tokToString(tok));
......@@ -2111,7 +2113,7 @@ void DocRef::parse()
}
handlePendingStyleCommands(this,m_children);
DBG(("DocRef::parse() end\n"));
DocNode *n=g_nodeStack.pop();
ASSERT(n==this);
}
......@@ -2155,7 +2157,7 @@ DocLink::DocLink(DocNode *parent,const QString &target) :
}
QString DocLink::parse(bool isJavaLink)
QString DocLink::parse(bool isJavaLink,bool isXmlLink)
{
QString result;
g_nodeStack.push(this);
......@@ -2187,6 +2189,13 @@ QString DocLink::parse(bool isJavaLink)
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unsupported symbol %s found",
g_token->name.data());
break;
case TK_HTMLTAG:
if (g_token->name!="see" || !isXmlLink)
{
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unexpected xml/html command %s found",
g_token->name.data());
}
goto endlink;
case TK_LNKWORD:
case TK_WORD:
if (isJavaLink) // special case to detect closing }
......@@ -4847,11 +4856,31 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
// can we expect from Microsoft...)
{
QString cref;
//printf("XML_SEE: empty tag=%d\n",g_token->emptyTag);
if (findAttribute(tagHtmlAttribs,"cref",&cref))
{
DocRef *ref = new DocRef(this,cref);
m_children.append(ref);
ref->parse();
if (g_token->emptyTag) // <see cref="..."/> style
{
bool inSeeBlock = g_inSeeBlock;
g_token->name = cref;
g_inSeeBlock = TRUE;
handleLinkedWord(this,m_children);
g_inSeeBlock = inSeeBlock;
}
else // <see cref="...">...</see> style
{
//DocRef *ref = new DocRef(this,cref);
//m_children.append(ref);
//ref->parse();
doctokenizerYYsetStatePara();
DocLink *lnk = new DocLink(this,cref);
m_children.append(lnk);
QString leftOver = lnk->parse(FALSE,TRUE);
if (!leftOver.isEmpty())
{
m_children.append(new DocWord(this,leftOver));
}
}
}
else
{
......
......@@ -639,7 +639,7 @@ class DocLink : public CompAccept<DocLink>, public DocNode
{
public:
DocLink(DocNode *parent,const QString &target);
QString parse(bool);
QString parse(bool,bool isXmlLink=FALSE);
Kind kind() const { return Kind_Link; }
QString file() const { return m_file; }
QString relPath() const { return m_relPath; }
......
......@@ -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;
......
......@@ -132,6 +132,7 @@ ObjCache *Doxygen::symbolCache = 0;
Store *Doxygen::symbolStorage;
QCString Doxygen::objDBFileName;
QCString Doxygen::entryDBFileName;
bool Doxygen::gatherDefines = TRUE;
// locally accessible globals
static QDict<EntryNav> classEntries(1009);
......@@ -4687,8 +4688,9 @@ static void addMemberDocs(EntryNav *rootNav,
{
//printf("setInitializer\n");
md->setInitializer(root->initializer);
md->setMaxInitLines(root->initLines);
}
md->setMaxInitLines(root->initLines);
if (rfd)
{
......@@ -8178,7 +8180,7 @@ static int transcodeCharacterBuffer(BufStr &srcBuf,int size,
// reads a file into an array and filters out any 0x00 and 0x06 bytes,
// because these are special for the parser.
static void copyAndFilterFile(const char *fileName,BufStr &dest)
void copyAndFilterFile(const char *fileName,BufStr &dest)
{
// try to open file
int size=0;
......@@ -8349,7 +8351,7 @@ static void parseFiles(Entry *root,EntryNav *rootNav)
// The directory is read iff the recusiveFlag is set.
// The contents of all files is append to the input string
static int readDir(QFileInfo *fi,
int readDir(QFileInfo *fi,
FileNameList *fnList,
FileNameDict *fnDict,
StringDict *exclDict,
......@@ -8441,7 +8443,7 @@ static int readDir(QFileInfo *fi,
// read a file or all files in a directory and append their contents to the
// input string. The names of the files are appended to the `fiList' list.
static int readFileOrDirectory(const char *s,
int readFileOrDirectory(const char *s,
FileNameList *fnList,
FileNameDict *fnDict,
StringDict *exclDict,
......@@ -8450,8 +8452,8 @@ static int readFileOrDirectory(const char *s,
StringList *resultList,
StringDict *resultDict,
bool recursive,
bool errorIfNotExist=TRUE,
QDict<void> *killDict = 0
bool errorIfNotExist,
QDict<void> *killDict
)
{
//printf("killDict=%p count=%d\n",killDict,killDict->count());
......@@ -8526,7 +8528,7 @@ static int readFileOrDirectory(const char *s,
//----------------------------------------------------------------------------
static void readFormulaRepository()
void readFormulaRepository()
{
QFile f(Config_getString("HTML_OUTPUT")+"/formula.repository");
if (f.open(IO_ReadOnly)) // open repository
......@@ -8641,7 +8643,7 @@ static void escapeAliases()
//----------------------------------------------------------------------------
static void readAliases()
void readAliases()
{
// add aliases to a dictionary
Doxygen::aliasDict.setAutoDelete(TRUE);
......
......@@ -45,6 +45,8 @@ class DirDef;
class ParserManager;
class ObjCache;
class Store;
class QFileInfo;
class BufStr;
typedef QList<QCString> StringList;
typedef QDict<FileDef> FileDict;
......@@ -123,6 +125,7 @@ class Doxygen
static Store *symbolStorage;
static QCString objDBFileName;
static QCString entryDBFileName;
static bool gatherDefines;
};
void initDoxygen();
......@@ -130,6 +133,33 @@ void readConfiguration(int argc, char **argv);
void checkConfiguration();
void parseInput();
void generateOutput();
void readAliases();
void readFormulaRepository();
int readFileOrDirectory(const char *s,
FileNameList *fnList,
FileNameDict *fnDict,
StringDict *exclDict,
QStrList *patList,
QStrList *exclPatList,
StringList *resultList,
StringDict *resultDict,
bool recursive,
bool errorIfNotExist=TRUE,
QDict<void> *killDict = 0
);
int readDir(QFileInfo *fi,
FileNameList *fnList,
FileNameDict *fnDict,
StringDict *exclDict,
QStrList *patList,
QStrList *exclPatList,
StringList *resultList,
StringDict *resultDict,
bool errorIfNotExist,
bool recursive,
QDict<void> *killDict
);
void copyAndFilterFile(const char *fileName,BufStr &dest);
#define NEWMATCH
......
......@@ -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
......
......@@ -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()
......
......@@ -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:
......
......@@ -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
......
......@@ -10,6 +10,7 @@
#include "groupdef.h"
#include "example.h"
#define HEADER ('D'<<24)+('O'<<16)+('X'<<8)+'!'
void marshalInt(StorageIntf *s,int v)
{
......@@ -349,6 +350,72 @@ void marshalMemberLists(StorageIntf *s,SDict<MemberList> *mls)
}
}
void marshalEntry(StorageIntf *s,Entry *e)
{
marshalUInt(s,HEADER);
marshalQCString(s,e->name);
marshalQCString(s,e->type);
marshalInt(s,e->section);
marshalInt(s,(int)e->protection);
marshalInt(s,(int)e->mtype);
marshalInt(s,e->spec);
marshalInt(s,e->initLines);
marshalBool(s,e->stat);
marshalBool(s,e->explicitExternal);
marshalBool(s,e->proto);
marshalBool(s,e->subGrouping);
marshalBool(s,e->callGraph);
marshalBool(s,e->callerGraph);
marshalInt(s,(int)e->virt);
marshalQCString(s,e->args);
marshalQCString(s,e->bitfields);
marshalArgumentList(s,e->argList);
marshalArgumentLists(s,e->tArgLists);
marshalQGString(s,e->program);
marshalQGString(s,e->initializer);
marshalQCString(s,e->includeFile);
marshalQCString(s,e->includeName);
marshalQCString(s,e->doc);
marshalInt(s,e->docLine);
marshalQCString(s,e->docFile);
marshalQCString(s,e->brief);
marshalInt(s,e->briefLine);
marshalQCString(s,e->briefFile);
marshalQCString(s,e->inbodyDocs);
marshalInt(s,e->inbodyLine);
marshalQCString(s,e->inbodyFile);
marshalQCString(s,e->relates);
marshalBool(s,e->relatesDup);
marshalQCString(s,e->read);
marshalQCString(s,e->write);
marshalQCString(s,e->inside);
marshalQCString(s,e->exception);
marshalInt(s,e->bodyLine);
marshalInt(s,e->endBodyLine);
marshalInt(s,e->mGrpId);
marshalBaseInfoList(s,e->extends);
marshalGroupingList(s,e->groups);
marshalSectionInfoList(s,e->anchors);
marshalQCString(s,e->fileName);
marshalInt(s,e->startLine);
marshalItemInfoList(s,e->sli);
marshalBool(s,e->objc);
marshalBool(s,e->hidden);
marshalInt(s,(int)e->groupDocType);
}
void marshalEntryTree(StorageIntf *s,Entry *e)
{
marshalEntry(s,e);
marshalUInt(s,e->children()->count());
QListIterator<Entry> eli(*e->children());
Entry *child;
for (eli.toFirst();(child=eli.current());++eli)
{
marshalEntryTree(s,child);
}
}
//------------------------------------------------------------------
int unmarshalInt(StorageIntf *s)
......@@ -664,4 +731,75 @@ SDict<MemberList> *unmarshalMemberLists(StorageIntf *s)
return result;
}
Entry * unmarshalEntry(StorageIntf *s)
{
Entry *e = new Entry;
uint header=unmarshalUInt(s);
ASSERT(header==HEADER);
e->name = unmarshalQCString(s);
e->type = unmarshalQCString(s);
e->section = unmarshalInt(s);
e->protection = (Protection)unmarshalInt(s);
e->mtype = (MethodTypes)unmarshalInt(s);
e->spec = unmarshalInt(s);
e->initLines = unmarshalInt(s);
e->stat = unmarshalBool(s);
e->explicitExternal = unmarshalBool(s);
e->proto = unmarshalBool(s);
e->subGrouping = unmarshalBool(s);
e->callGraph = unmarshalBool(s);
e->callerGraph = unmarshalBool(s);
e->virt = (Specifier)unmarshalInt(s);
e->args = unmarshalQCString(s);
e->bitfields = unmarshalQCString(s);
delete e->argList;
e->argList = unmarshalArgumentList(s);
e->tArgLists = unmarshalArgumentLists(s);
e->program = unmarshalQGString(s);
e->initializer = unmarshalQGString(s);
e->includeFile = unmarshalQCString(s);
e->includeName = unmarshalQCString(s);
e->doc = unmarshalQCString(s);
e->docLine = unmarshalInt(s);
e->docFile = unmarshalQCString(s);
e->brief = unmarshalQCString(s);
e->briefLine = unmarshalInt(s);
e->briefFile = unmarshalQCString(s);
e->inbodyDocs = unmarshalQCString(s);
e->inbodyLine = unmarshalInt(s);
e->inbodyFile = unmarshalQCString(s);
e->relates = unmarshalQCString(s);
e->relatesDup = unmarshalBool(s);
e->read = unmarshalQCString(s);
e->write = unmarshalQCString(s);
e->inside = unmarshalQCString(s);
e->exception = unmarshalQCString(s);
e->bodyLine = unmarshalInt(s);
e->endBodyLine = unmarshalInt(s);
e->mGrpId = unmarshalInt(s);
delete e->extends;
e->extends = unmarshalBaseInfoList(s);
delete e->groups;
e->groups = unmarshalGroupingList(s);
delete e->anchors;
e->anchors = unmarshalSectionInfoList(s);
e->fileName = unmarshalQCString(s);
e->startLine = unmarshalInt(s);
e->sli = unmarshalItemInfoList(s);
e->objc = unmarshalBool(s);
e->hidden = unmarshalBool(s);
e->groupDocType = (Entry::GroupDocType)unmarshalInt(s);
return e;
}
Entry * unmarshalEntryTree(StorageIntf *s)
{
Entry *e = unmarshalEntry(s);
uint count = unmarshalUInt(s);
uint i;
for (i=0;i<count;i++)
{
e->addSubEntry(unmarshalEntryTree(s));
}
return e;
}
......@@ -21,6 +21,7 @@ struct DocInfo;
struct BriefInfo;
class MemberList;
class ExampleSDict;
class Entry;
#define NULL_LIST 0xffffffff
......@@ -33,6 +34,49 @@ class FileStorage : public QFile, public StorageIntf
int write(const char *buf,uint size) { return QFile::writeBlock(buf,size); }
};
class StreamStorage : public StorageIntf
{
public:
StreamStorage()
{
m_data=0;
m_offset=0;
m_len=0;
}
~StreamStorage()
{
delete m_data;
}
StreamStorage(char *data,uint len)
{
m_data=data;
m_offset=0;
m_len=len;
}
int read(char *buf,uint size)
{
int bytesLeft = QMIN((int)size,m_len-m_offset);
if (bytesLeft>0) memcpy(buf,m_data,bytesLeft);
m_offset+=bytesLeft;
return bytesLeft;
}
int write(const char *buf,uint size)
{
m_data=(char *)realloc(m_data,m_offset+size);
memcpy(m_data+m_offset,buf,size);
m_offset+=size;
m_len+=size;
return size;
}
void rewind() { m_offset=0; }
char *data() const { return m_data; }
int size() { return m_len; }
private:
char *m_data;
int m_offset;
int m_len;
};
//----- marshaling function: datatype -> byte stream --------------------
void marshalInt(StorageIntf *s,int v);
......@@ -56,6 +100,8 @@ void marshalGroupList(StorageIntf *s,GroupList *groupList);
void marshalMemberList(StorageIntf *s,MemberList *ml);
void marshalExampleSDict(StorageIntf *s,ExampleSDict *ed);
void marshalMemberLists(StorageIntf *s,SDict<MemberList> *mls);
void marshalEntry(StorageIntf *s,Entry *e);
void marshalEntryTree(StorageIntf *s,Entry *e);
//----- unmarshaling function: byte stream -> datatype ------------------
......@@ -80,5 +126,7 @@ GroupList * unmarshalGroupList(StorageIntf *s);
MemberList * unmarshalMemberList(StorageIntf *s);
ExampleSDict * unmarshalExampleSDict(StorageIntf *s);
SDict<MemberList> * unmarshalMemberLists(StorageIntf *s);
Entry * unmarshalEntry(StorageIntf *s);
Entry * unmarshalEntryTree(StorageIntf *s);
#endif
......@@ -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)
......
......@@ -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)
......
......@@ -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");
......
......@@ -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);
}
......@@ -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;
......
......@@ -829,6 +829,11 @@ STARTDOCSYMS ^{B}"##"/[^#]
current->name = current->name.stripWhiteSpace();
newFunction();
}
{B}":" { // function without arguments
g_specialBlock = TRUE; // expecting a docstring
bodyEntry = current;
BEGIN( FunctionBody );
}
{B}"(" {
BEGIN( FunctionParams );
......@@ -1110,7 +1115,7 @@ STARTDOCSYMS ^{B}"##"/[^#]
g_stringContext=VariableEnd;
BEGIN(TripleString);
}
"(" { // typle
"(" { // tuple
current->type = "tuple";
current->initializer+=*yytext;
g_atomStart='(';
......@@ -1168,6 +1173,12 @@ STARTDOCSYMS ^{B}"##"/[^#]
BEGIN(VariableEnd);
}
}
"\"" {
g_stringContext=YY_START;
current->initializer+="\"";
g_copyString=&current->initializer;
BEGIN( DoubleQuoteString );
}
{IDENTIFIER} {
current->initializer+=yytext;
}
......
......@@ -160,7 +160,7 @@ static int docBlockContext;
static QCString docBlock;
static QCString docBlockName;
static bool docBlockInBody;
static bool docBlockJavaStyle;
static bool docBlockAutoBrief;
static char docBlockTerm;
static QCString idlAttr;
......@@ -614,6 +614,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
%x SkipSharp
%x SkipRound
%x SkipSquare
%x SkipRemainder
%x TypedefName
%x TryFunctionBlock
%x TryFunctionBlockEnd
......@@ -1992,7 +1993,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
docBlockContext = YY_START;
docBlockInBody = FALSE;
docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF");
docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
docBlock.resize(0);
docBlockTerm = ';';
if (yytext[yyleng-3]=='/')
......@@ -2010,7 +2012,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
lineCount();
docBlockContext = YY_START;
docBlockInBody = FALSE;
docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF");
docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
docBlock.resize(0);
docBlockTerm = ',';
if (yytext[yyleng-3]=='/')
......@@ -2032,7 +2035,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
docBlockContext = YY_START;
docBlockInBody = FALSE;
docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF");
docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
docBlock.resize(0);
docBlockTerm = 0;
if (yytext[yyleng-3]=='/')
......@@ -2072,7 +2076,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
{
docBlockContext = YY_START;
docBlockInBody = FALSE;
docBlockJavaStyle = FALSE;
docBlockAutoBrief = FALSE;
docBlock.resize(0);
docBlockTerm = 0;
startCommentBlock(TRUE);
......@@ -2091,7 +2095,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
docBlockContext = YY_START;
docBlockInBody = FALSE;
docBlock.resize(0);
docBlockJavaStyle = yytext[2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF");
docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
docBlockTerm = 0;
startCommentBlock(FALSE);
BEGIN(DocBlock);
......@@ -2701,6 +2706,31 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
initBracketCount=0;
BEGIN(ReadInitializer);
}
<FindFields>";" {
if (insideJava) // last enum field in Java class
{
current->fileName = yyFileName;
current->startLine = yyLineNr;
current->type = "@"; // enum marker
current->args = current->args.simplifyWhiteSpace();
current->name = current->name.stripWhiteSpace();
current->section = Entry::VARIABLE_SEC;
current_root->addSubEntry(current);
current = new Entry ;
initEntry();
// TODO: skip until the end of the scope
BEGIN( SkipRemainder );
}
else
{
REJECT;
}
}
<SkipRemainder>\n {
yyLineNr++;
}
<SkipRemainder>[^\n]*
<FindFields>"," {
//printf("adding `%s' `%s' `%s' to enum `%s' (mGrpId=%d)\n",
// current->type.data(), current->name.data(),
......@@ -3884,7 +3914,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
docBlockContext = SkipCurlyEndDoc;
docBlockInBody = FALSE;
docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF");
docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
docBlock.resize(0);
docBlockTerm = '}';
if (yytext[yyleng-3]=='/')
......@@ -3902,7 +3933,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
<SkipCurlyEndDoc>"}"{BN}*("/*!"|"/**"|"//!"|"///")"<" { // desc is followed by another one
docBlockContext = SkipCurlyEndDoc;
docBlockInBody = FALSE;
docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF");
docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
docBlock.resize(0);
docBlockTerm = '}';
if (yytext[yyleng-3]=='/')
......@@ -4493,8 +4525,21 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
docBlockContext = YY_START;
docBlockInBody = YY_START==SkipCurly;
docBlockJavaStyle = FALSE;
docBlockAutoBrief = Config_getBool("QT_AUTOBRIEF");
docBlock.resize(0);
if (docBlockAutoBrief)
{
current->briefLine = yyLineNr;
current->briefFile = yyFileName;
}
if (!docBlockInBody)
{
current->doc.resize(0);
if (docBlockAutoBrief)
{
current->brief.resize(0);
}
}
startCommentBlock(FALSE);
BEGIN( DocBlock );
}
......@@ -4514,9 +4559,9 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
current->docFile = yyFileName;
docBlockContext = YY_START;
docBlockInBody = YY_START==SkipCurly;
docBlockJavaStyle = Config_getBool("JAVADOC_AUTOBRIEF");
docBlockAutoBrief = Config_getBool("JAVADOC_AUTOBRIEF");
docBlock.resize(0);
if (docBlockJavaStyle)
if (docBlockAutoBrief)
{
current->briefLine = yyLineNr;
current->briefFile = yyFileName;
......@@ -4524,7 +4569,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
if (!docBlockInBody)
{
current->doc.resize(0);
if (docBlockJavaStyle)
if (docBlockAutoBrief)
{
current->brief.resize(0);
}
......@@ -4551,7 +4596,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
docBlockContext = YY_START;
docBlockInBody = YY_START==SkipCurly;
docBlockJavaStyle = FALSE;
docBlockAutoBrief = FALSE;
docBlock.resize(0);
startCommentBlock(TRUE);
BEGIN( DocLine );
......@@ -4575,7 +4620,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
docBlockContext = YY_START;
docBlockInBody = YY_START==SkipCurly;
docBlockJavaStyle = FALSE;
docBlockAutoBrief = FALSE;
docBlock.resize(0);
startCommentBlock(TRUE);
BEGIN( DocLine );
......@@ -4932,7 +4977,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
yyFileName, // file
brief ? current->briefLine : current->docLine, // line of block start
docBlockInBody ? FALSE : brief,
docBlockInBody ? FALSE : docBlockJavaStyle,
docBlockInBody ? FALSE : docBlockAutoBrief,
docBlockInBody,
protection,
position,
......
......@@ -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.<p>\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.<p>\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 T> class Templ { };\n\n"
"/*! Tøída, která je využívána tøídou Inherited. */\n"
"/*! Třída, která je využívána třídou Inherited. */\n"
"class Used { };\n\n"
"/*! 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:"
"<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n"
"Bloky (tj. uzly) v uvedeném grafu mají následující význam:\n"
"Bloky (tj. uzly) v uvedeném grafu mají následující význam:\n"
"<ul>\n"
"<li>Èernì vyplnìný obdélník reprezentuje strukturu nebo tøídu, "
"pro kterou byl graf generován.\n"
"<li>Obdélník s èerným obrysem oznaèuje dokumentovanou "
"strukturu nebo tøídu.\n"
"<li>Obdélník s šedým obrysem oznaèuje nedokumentovanou "
"strukturu nebo tøídu.\n"
"<li>Obdélník s èerveným obrysem oznaèuje dokumentovanou "
"strukturu nebo tøídu, pro kterou\n"
"nejsou zobrazeny všechny vztahy dìdiènosti nebo obsažení. "
"Graf je oøezán v pøípadì, kdy jej\n"
"není možné umístit do vymezeného prostoru.\n"
"<li>Černě vyplněný obdélník reprezentuje strukturu nebo třídu, "
"pro kterou byl graf generován.\n"
"<li>Obdélník s černým obrysem označuje dokumentovanou "
"strukturu nebo třídu.\n"
"<li>Obdélník s šedým obrysem označuje nedokumentovanou "
"strukturu nebo třídu.\n"
"<li>Obdélník s červeným obrysem označuje dokumentovanou "
"strukturu nebo třídu, pro kterou\n"
"nejsou zobrazeny všechny vztahy dědičnosti nebo obsažení. "
"Graf je ořezán v případě, kdy jej\n"
"není možné umístit do vymezeného prostoru.\n"
"</ul>\n"
"Šipky (tj. hrany grafu) mají následující význam:\n"
"Šipky (tj. hrany grafu) mají následující význam:\n"
"<ul>\n"
"<li>Tmavì modrá šipka se používá pro oznaèení vztahu veøejné "
"dìdiènosti (public) mezi dvìma tøídami.\n"
"<li>Tmavì zelená šipka oznaèuje vztah chránìné dìdiènosti "
"<li>Tmavě modrá šipka se používá pro označení vztahu veřejné "
"dědičnosti (public) mezi dvěma třídami.\n"
"<li>Tmavě zelená šipka označuje vztah chráněné dědičnosti "
"(protected).\n"
"<li>Tmavì èervená šipka oznaèuje vztah privátní dìdiènosti "
"<li>Tmavě červená šipka označuje vztah privátní dědičnosti "
"(private).\n"
"<li>Purpurová šipka kreslená èárkovanì se používá v pøípadì, "
"kdy je tøída obsažena v jiné tøídì,\n"
"nebo kdy je používána jinou tøídou. Je oznaèena identifikátorem "
"jedné nebo více promìných, pøes které\n"
"je tøída nebo struktura zpøístupnìna.\n"
"<li>Žlutá šipka kreslená èárkovanì vyjadøuje vztah mezi instancí šablony "
"a šablonou tøídy, na základì které byla\n"
"instance šablony vytvoøena. V popisu šipky jsou uvedeny pøíslušné"
" parametry šablony.\n"
"<li>Purpurová šipka kreslená čárkovaně se používá v případě, "
"kdy je třída obsažena v jiné třídě,\n"
"nebo kdy je používána jinou třídou. Je označena identifikátorem "
"jedné nebo více proměných, přes které\n"
"je třída nebo struktura zpřístupněna.\n"
"<li>Žlutá šipka kreslená čárkovaně vyjadřuje vztah mezi instancí šablony "
"a šablonou třídy, na základě které byla\n"
"instance šablony vytvořena. V popisu šipky jsou uvedeny příslušné"
" parametry šablony.\n"
"</ul>\n");
return decode(result);
return result;
}
/*! text for the link to the legend page */
virtual QCString trLegend()
{
return decode("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 <b>$num</b> dokumentù, které vyhovují vašemu "
"dotazu. Nejlépe odpovídající dokumenty jsou zobrazeny "
"jako první.");
return "Nalezeno <b>$num</b> dokumentů, které vyhovují vašemu "
"dotazu. Nejlépe odpovídající dokumenty jsou zobrazeny "
"jako první.";
}
}
/*! This string is put before the list of matched words, for each search
......@@ -1546,7 +1534,7 @@ class TranslatorCzech : public Translator
*/
virtual QCString trSearchMatches()
{
return decode("Nalezená slova:");
return "Nalezená slova:";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1557,7 +1545,7 @@ class TranslatorCzech : public Translator
*/
virtual QCString trSourceFile(QCString& filename)
{
return decode("Zdrojový soubor ") + filename;
return QCString("Zdrojový soubor ") + filename;
}
......@@ -1570,27 +1558,27 @@ class TranslatorCzech : public Translator
* hierarchy.
*/
virtual QCString trDirIndex()
{ return decode("Hierarchie adresáøù"); }
{ return "Hierarchie adresářů"; }
/*! This is used as the name of the chapter containing the documentation
* of the directories.
*/
virtual QCString trDirDocumentation()
{ return decode("Dokumentace k 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";
}
};
......
......@@ -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));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment