summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2008-02-10 12:31:40 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2008-02-10 12:31:40 (GMT)
commitb8ff687873e37d7cf0f4e7df0fd7da3660f1999c (patch)
treeb6882cdef0c60182168c8c11e298dcd76cc02bbc
parent0e922bf35ccff96ec03f22df607f3b44303206eb (diff)
downloadDoxygen-b8ff687873e37d7cf0f4e7df0fd7da3660f1999c.zip
Doxygen-b8ff687873e37d7cf0f4e7df0fd7da3660f1999c.tar.gz
Doxygen-b8ff687873e37d7cf0f4e7df0fd7da3660f1999c.tar.bz2
Release-1.5.5
-rw-r--r--INSTALL4
-rw-r--r--README4
-rw-r--r--addon/doxywizard/doxywizard.cpp43
-rw-r--r--addon/doxywizard/doxywizard.h4
-rwxr-xr-xconfigure4
-rw-r--r--doc/config.doc28
-rw-r--r--doc/maintainers.txt4
-rw-r--r--doc/xmlcmds.doc5
-rw-r--r--src/classdef.cpp5
-rw-r--r--src/classdef.h1
-rw-r--r--src/cmdmapper.cpp43
-rw-r--r--src/cmdmapper.h46
-rw-r--r--src/code.l8
-rw-r--r--src/commentscan.l97
-rw-r--r--src/compound.xsd1
-rw-r--r--src/compound_xsd.h1
-rw-r--r--src/config.l34
-rw-r--r--src/defargs.l14
-rw-r--r--src/definition.cpp29
-rw-r--r--src/definition.h2
-rw-r--r--src/dirdef.cpp140
-rw-r--r--src/dirdef.h1
-rw-r--r--src/docparser.cpp31
-rw-r--r--src/docparser.h2
-rw-r--r--src/dot.cpp197
-rw-r--r--src/dot.h1
-rw-r--r--src/doxygen.cpp54
-rw-r--r--src/entry.h2
-rw-r--r--src/filedef.cpp2
-rw-r--r--src/fortrancode.l2
-rw-r--r--src/groupdef.h9
-rw-r--r--src/htmldocvisitor.cpp5
-rw-r--r--src/index.cpp6
-rw-r--r--src/language.cpp2
-rw-r--r--src/latexdocvisitor.cpp5
-rw-r--r--src/mandocvisitor.cpp5
-rw-r--r--src/perlmodgen.cpp1
-rw-r--r--src/printdocvisitor.h1
-rw-r--r--src/rtfdocvisitor.cpp5
-rw-r--r--src/scanner.l3
-rw-r--r--src/search.php2
-rw-r--r--src/search_php.h2
-rw-r--r--src/sortdict.h12
-rw-r--r--src/translator_br.h8
-rw-r--r--src/translator_cn.h253
-rw-r--r--src/translator_de.h205
-rw-r--r--src/translator_es.h382
-rw-r--r--src/translator_fa.h358
-rw-r--r--src/translator_fr.h2
-rw-r--r--src/translator_kr.h13
-rw-r--r--src/translator_tw.h263
-rw-r--r--src/translatordecoder.h16
-rw-r--r--src/vhdlscanner.l2
-rw-r--r--src/xmldocvisitor.cpp2
54 files changed, 1772 insertions, 599 deletions
diff --git a/INSTALL b/INSTALL
index ddcac48..4ee04e9 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
-DOXYGEN Version 1.5.4-20080123
+DOXYGEN Version 1.5.5
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
-Dimitri van Heesch (23 January 2008)
+Dimitri van Heesch (10 February 2008)
diff --git a/README b/README
index f3dbb49..5f443e0 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-DOXYGEN Version 1.5.4_20080123
+DOXYGEN Version 1.5.5
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) (23 January 2008)
+Dimitri van Heesch (dimitri@stack.nl) (10 February 2008)
diff --git a/addon/doxywizard/doxywizard.cpp b/addon/doxywizard/doxywizard.cpp
index 35755ce..3ef67bf 100644
--- a/addon/doxywizard/doxywizard.cpp
+++ b/addon/doxywizard/doxywizard.cpp
@@ -221,9 +221,6 @@ Step2::Step2(QWidget *parent) : QWidget(parent,"Step2")
layout->addWidget(m_optimizeLang);
layout->addStretch(1);
-
- connect(m_crossRef,SIGNAL(stateChanged(int)),
- parent,SLOT(changeCrossRefState(int)));
}
bool Step2::crossReferencingEnabled() const
@@ -621,44 +618,6 @@ Wizard::Wizard(QWidget *parent=0) : QTabDialog(parent)
setCancelButton();
}
-void Wizard::changeCallGraphState(int state)
-{
- if (state==QButton::On && !m_step2->crossReferencingEnabled())
- {
- if (QMessageBox::question(this,"This option depends on another option",
- "The call graph option requires that cross-referencing "
- "of source code is enabled.\nDo you want to enable this "
- "option?",QMessageBox::Yes,QMessageBox::No)==QMessageBox::Yes)
- {
- m_step2->enableCrossReferencing();
- }
- else
- {
- m_step4->disableCallGraphs();
- }
- }
-}
-
-void Wizard::changeCrossRefState(int state)
-{
- if (state==QButton::Off && m_step4->callGraphEnabled())
- {
- if (QMessageBox::question(this,"Another option depends on this one",
- "The call graph option requires that cross-referencing "
- "of source code is enabled.\nDo you want to disable the call "
- "graph option?",QMessageBox::Yes,QMessageBox::No
- )==QMessageBox::Yes
- )
- {
- m_step4->disableCallGraphs();
- }
- else
- {
- m_step2->enableCrossReferencing();
- }
- }
-}
-
//==========================================================================
MainWidget::MainWidget(QWidget *parent)
@@ -1339,7 +1298,7 @@ void MainWidget::about()
QTextStream t(&msg,IO_WriteOnly);
t << QString("<qt><center>A tool to configure and run doxygen version ")+versionString+
" on your source files.</center><p><br>"
- "<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-2006</center><p>"
+ "<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-2008</center><p>"
"</qt>";
QMessageBox::about(this,"Doxygen GUI",msg);
}
diff --git a/addon/doxywizard/doxywizard.h b/addon/doxywizard/doxywizard.h
index 115a70b..0e46a53 100644
--- a/addon/doxywizard/doxywizard.h
+++ b/addon/doxywizard/doxywizard.h
@@ -225,10 +225,6 @@ class Wizard : public QTabDialog
void setInheritanceGraph(bool enable) { m_step4->setInheritanceGraph(enable); }
void setCallGraph(bool enable) { m_step4->setCallGraph(enable); }
- public slots:
- void changeCallGraphState(int state);
- void changeCrossRefState(int state);
-
private:
Step1 *m_step1;
Step2 *m_step2;
diff --git a/configure b/configure
index bcbd4a8..baac773 100755
--- a/configure
+++ b/configure
@@ -17,10 +17,10 @@
doxygen_version_major=1
doxygen_version_minor=5
-doxygen_version_revision=4
+doxygen_version_revision=5
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
-doxygen_version_mmn=20080123
+doxygen_version_mmn=NO
bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
diff --git a/doc/config.doc b/doc/config.doc
index 3c8a6b2..6a89490 100644
--- a/doc/config.doc
+++ b/doc/config.doc
@@ -208,6 +208,8 @@ followed by the descriptions of the tags grouped by category.
\refitem cfg_sip_support SIP_SUPPORT
\refitem cfg_skip_function_macros SKIP_FUNCTION_MACROS
\refitem cfg_sort_brief_docs SORT_BRIEF_DOCS
+\refitem cfg_sort_by_scope_name SORT_BY_SCOPE_NAME
+\refitem cfg_sort_group_names SORT_GROUP_NAMES
\refitem cfg_sort_member_docs SORT_MEMBER_DOCS
\refitem cfg_source_browser SOURCE_BROWSER
\refitem cfg_strip_code_comments STRIP_CODE_COMMENTS
@@ -682,6 +684,26 @@ function's detailed documentation block.
by member name. If set to \c NO (the default) the members will appear in
declaration order.
+
+\anchor cfg_sort_group_names
+<dt>\c SORT_GROUP_NAMES <dd>
+ \addindex SORT_GROUP_NAMES
+ If the \c SORT_GROUP_NAMES tag is set to \c YES then doxygen will sort the
+ hierarchy of group names into alphabetical order. If set to \c NO (the default)
+ the group names will appear in their defined order.
+
+\anchor cfg_sort_by_scope_name
+<dt>\c SORT_BY_SCOPE_NAME <dd>
+ \addindex SORT_BY_SCOPE_NAME
+ If the \c SORT_BY_SCOPE_NAME tag is set to \c YES, the class list will be
+ sorted by fully-qualified names, including namespaces. If set to
+ NO (the default), the class list will be sorted only by class name,
+ not including the namespace part.
+ @note This option is not very useful if \c HIDE_SCOPE_NAMES is set to \c YES.
+ @note This option applies only to the class list, not to the
+ alphabetical list.
+
+
\anchor cfg_generate_deprecatedlist
<dt>\c GENERATE_DEPRECATEDLIST <dd>
\addindex GENERATE_DEPRECATEDLIST
@@ -977,8 +999,10 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
<dt>\c SOURCE_BROWSER <dd>
\addindex SOURCE_BROWSER
- If the \c SOURCE_BROWSER tag is set to \c YES then a list of source files will
- be generated. Documented entities will be cross-referenced with these sources.
+ If the \c SOURCE_BROWSER tag is set to \c YES then a list of source files will \n"
+ be generated. Documented entities will be cross-referenced with these sources. \n"
+ Note: To get rid of all source code in the generated output, make sure also \n"
+ \c VERBATIM_HEADERS is set to NO. \n"
\anchor cfg_inline_sources
<dt>\c INLINE_SOURCES <dd>
diff --git a/doc/maintainers.txt b/doc/maintainers.txt
index 4f622e6..379b9d9 100644
--- a/doc/maintainers.txt
+++ b/doc/maintainers.txt
@@ -27,7 +27,7 @@ Li Daobing: lidaobing@gmail.com
Wei Liu: liuwei@asiainfo.com
TranslatorChinesetraditional
-Daniel YC Lin: dlin@taifex.com.tw
+Daniel YC Lin: dlin.tw@gmail.com
Gary Lee: garywlee@gmail.com
TranslatorCroatian
@@ -90,7 +90,7 @@ TranslatorMacedonian
Slave Jovanovski: slavejovanovski@yahoo.com
TranslatorPersian
-Ali Nadalizadeh: nadalisoft@yahoo.com
+Ali Nadalizadeh: nadalizadeh@gmail.com
TranslatorPolish
Piotr Kaminski: Piotr.Kaminski@ctm.gdynia.pl
diff --git a/doc/xmlcmds.doc b/doc/xmlcmds.doc
index 5399ff8..7fdf034 100644
--- a/doc/xmlcmds.doc
+++ b/doc/xmlcmds.doc
@@ -61,6 +61,11 @@ Here is the list of tags supported by doxygen:
<li><tt>\<summary\></tt> Identifies the brief description.
Similar to using \ref cmdbrief "\\brief".
<li><tt>\<term\></tt> Part of a <tt>\<list\></tt> command.
+<li><tt>\<typeparam name="paramName"\></tt> Marks a piece of text as the documentation
+ for type parameter "paramName". Similar to
+ using \ref cmdparam "\\param".
+<li><tt>\<typeparamref name="paramName"\></tt> Refers to a parameter with name
+ "paramName". Similar to using \ref cmda "\\a".
<li><tt>\<value\></tt> Identifies a property. Ignored by doxygen.
</ul>
diff --git a/src/classdef.cpp b/src/classdef.cpp
index f52b083..f2edcda 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -3058,6 +3058,11 @@ QCString ClassDef::className() const
return m_impl->className;
};
+void ClassDef::setClassName(const char *name)
+{
+ m_impl->className = name;
+}
+
void ClassDef::addListReferences()
{
bool fortranOpt=Config_getBool("OPTIMIZE_FOR_FORTRAN");
diff --git a/src/classdef.h b/src/classdef.h
index 20d4df7..fbac227 100644
--- a/src/classdef.h
+++ b/src/classdef.h
@@ -284,6 +284,7 @@ class ClassDef : public Definition
void setIsStatic(bool b);
void setIsObjectiveC(bool b);
void setCompoundType(CompoundType t);
+ void setClassName(const char *name);
void setTemplateArguments(ArgumentList *al);
void setTemplateBaseClassNames(QDict<int> *templateNames);
diff --git a/src/cmdmapper.cpp b/src/cmdmapper.cpp
index bca36df..4ad3b38 100644
--- a/src/cmdmapper.cpp
+++ b/src/cmdmapper.cpp
@@ -91,6 +91,7 @@ CommandMap cmdMap[] =
{ "version", CMD_VERSION },
{ "warning", CMD_WARNING },
{ "throws", CMD_EXCEPTION },
+ { "tparam", CMD_TPARAM },
{ "\\", CMD_BSLASH },
{ "@", CMD_AT },
{ "<", CMD_LESS },
@@ -154,27 +155,29 @@ CommandMap htmlTagMap[] =
{ "span", HTML_SPAN },
{ "div", HTML_DIV },
- { "c", XML_C },
+ { "c", XML_C },
// { "code", XML_CODE }, <= ambigious <code> is also a HTML tag
- { "description",XML_DESCRIPTION },
- { "example", XML_EXAMPLE },
- { "exception", XML_EXCEPTION },
- { "include", XML_INCLUDE },
- { "item", XML_ITEM },
- { "list", XML_LIST }, // type="table|bullet|number"
- { "listheader", XML_LISTHEADER },
- { "para", XML_PARA },
- { "param", XML_PARAM },
- { "paramref", XML_PARAMREF },
- { "permission", XML_PERMISSION },
- { "remarks", XML_REMARKS },
- { "returns", XML_RETURNS },
- { "see", XML_SEE },
- { "seealso", XML_SEEALSO },
- { "summary", XML_SUMMARY },
- { "term", XML_TERM },
- { "value", XML_VALUE },
- { 0, 0 }
+ { "description", XML_DESCRIPTION },
+ { "example", XML_EXAMPLE },
+ { "exception", XML_EXCEPTION },
+ { "include", XML_INCLUDE },
+ { "item", XML_ITEM },
+ { "list", XML_LIST }, // type="table|bullet|number"
+ { "listheader", XML_LISTHEADER },
+ { "para", XML_PARA },
+ { "param", XML_PARAM },
+ { "paramref", XML_PARAMREF },
+ { "typeparam", XML_TYPEPARAM },
+ { "typeparamref", XML_TYPEPARAMREF },
+ { "permission", XML_PERMISSION },
+ { "remarks", XML_REMARKS },
+ { "returns", XML_RETURNS },
+ { "see", XML_SEE },
+ { "seealso", XML_SEEALSO },
+ { "summary", XML_SUMMARY },
+ { "term", XML_TERM },
+ { "value", XML_VALUE },
+ { 0, 0 }
};
//----------------------------------------------------------------------------
diff --git a/src/cmdmapper.h b/src/cmdmapper.h
index 796284f..95ba3e1 100644
--- a/src/cmdmapper.h
+++ b/src/cmdmapper.h
@@ -109,7 +109,8 @@ enum CommandType
CMD_MANONLY = 75,
CMD_ENDMANONLY = 76,
CMD_INCWITHLINES = 77,
- CMD_INHERITDOC = 78
+ CMD_INHERITDOC = 78,
+ CMD_TPARAM = 79 | SIMPLESECT_BIT
};
enum HtmlTagType
@@ -150,27 +151,28 @@ enum HtmlTagType
XML_CmdMask = 0x100,
- XML_C = XML_CmdMask + 0,
- XML_CODE = XML_CmdMask + 1,
- XML_DESCRIPTION= XML_CmdMask + 2,
- XML_EXAMPLE = XML_CmdMask + 3,
- XML_EXCEPTION = XML_CmdMask + 4,
- XML_INCLUDE = XML_CmdMask + 5,
- XML_ITEM = XML_CmdMask + 6,
- XML_LIST = XML_CmdMask + 7,
- XML_LISTHEADER = XML_CmdMask + 8,
- XML_PARA = XML_CmdMask + 9,
- XML_PARAM = XML_CmdMask + 10,
- XML_PARAMREF = XML_CmdMask + 11,
- XML_PERMISSION = XML_CmdMask + 12,
- XML_REMARKS = XML_CmdMask + 13,
- XML_RETURNS = XML_CmdMask + 14,
- XML_SEE = XML_CmdMask + 15,
- XML_SEEALSO = XML_CmdMask + 16,
- XML_SUMMARY = XML_CmdMask + 17,
- XML_TERM = XML_CmdMask + 18,
- XML_VALUE = XML_CmdMask + 19
-
+ XML_C = XML_CmdMask + 0,
+ XML_CODE = XML_CmdMask + 1,
+ XML_DESCRIPTION = XML_CmdMask + 2,
+ XML_EXAMPLE = XML_CmdMask + 3,
+ XML_EXCEPTION = XML_CmdMask + 4,
+ XML_INCLUDE = XML_CmdMask + 5,
+ XML_ITEM = XML_CmdMask + 6,
+ XML_LIST = XML_CmdMask + 7,
+ XML_LISTHEADER = XML_CmdMask + 8,
+ XML_PARA = XML_CmdMask + 9,
+ XML_PARAM = XML_CmdMask + 10,
+ XML_PARAMREF = XML_CmdMask + 11,
+ XML_PERMISSION = XML_CmdMask + 12,
+ XML_REMARKS = XML_CmdMask + 13,
+ XML_RETURNS = XML_CmdMask + 14,
+ XML_SEE = XML_CmdMask + 15,
+ XML_SEEALSO = XML_CmdMask + 16,
+ XML_SUMMARY = XML_CmdMask + 17,
+ XML_TERM = XML_CmdMask + 18,
+ XML_TYPEPARAM = XML_CmdMask + 19,
+ XML_TYPEPARAMREF = XML_CmdMask + 20,
+ XML_VALUE = XML_CmdMask + 21
};
class Mapper
diff --git a/src/code.l b/src/code.l
index aa1b9c7..20a5fa4 100644
--- a/src/code.l
+++ b/src/code.l
@@ -766,9 +766,9 @@ static void addDocCrossReference(MemberDef *src,MemberDef *dst)
static bool callerGraph = Config_getBool("CALLER_GRAPH");
static bool callGraph = Config_getBool("CALL_GRAPH");
+ //printf("--> addDocCrossReference src=%s,dst=%s\n",src->name().data(),dst->name().data());
if (dst->isTypedef() || dst->isEnumerate()) return; // don't add types
- //printf("addDocCrossReference src=%s,dst=%s\n",src->name().data(),dst->name().data());
- if ((referencedByRelation || callerGraph) &&
+ if ((referencedByRelation || callerGraph || dst->hasCallerGraph()) &&
(src->isFunction() || src->isSlot())
)
{
@@ -784,7 +784,7 @@ static void addDocCrossReference(MemberDef *src,MemberDef *dst)
mdDecl->addSourceReferencedBy(src);
}
}
- if ((referencesRelation || callGraph) &&
+ if ((referencesRelation || callGraph || src->hasCallGraph()) &&
(src->isFunction() || src->isSlot())
)
{
@@ -2407,7 +2407,7 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
g_code->codify(yytext);
endFontClass();
}
-<Body>"$"?"this->" { g_code->codify(yytext); }
+<Body,FuncCall>"$"?"this->" { g_code->codify(yytext); }
<Body>"."|"->" {
g_code->codify(yytext);
g_memCallContext = YY_START;
diff --git a/src/commentscan.l b/src/commentscan.l
index 115aac4..18bb9a5 100644
--- a/src/commentscan.l
+++ b/src/commentscan.l
@@ -122,33 +122,33 @@ static DocCmdMap docCmdMap[] =
// command name handler function ends brief description
{ "brief", &handleBrief, FALSE },
{ "short", &handleBrief, FALSE },
- { "fn", &handleFn, TRUE },
- { "var", &handleFn, TRUE },
- { "typedef", &handleFn, TRUE },
- { "property", &handleFn, TRUE },
- { "def", &handleDef, TRUE },
- { "overload", &handleOverload, TRUE },
- { "enum", &handleEnum, TRUE },
- { "defgroup", &handleDefGroup, TRUE },
- { "addtogroup", &handleAddToGroup, TRUE },
- { "weakgroup", &handleWeakGroup, TRUE },
- { "namespace", &handleNamespace, TRUE },
- { "package", &handlePackage, TRUE },
- { "class", &handleClass, TRUE },
- { "headerfile", &handleHeaderFile, TRUE },
- { "protocol", &handleProtocol, TRUE },
- { "category", &handleCategory, TRUE },
- { "union", &handleUnion, TRUE },
- { "struct", &handleStruct, TRUE },
- { "interface", &handleInterface, TRUE },
- { "idlexcept", &handleIdlException, TRUE },
- { "page", &handlePage, TRUE },
- { "mainpage", &handleMainpage, TRUE },
- { "file", &handleFile, TRUE },
- { "dir", &handleDir, TRUE },
- { "example", &handleExample, TRUE },
+ { "fn", &handleFn, FALSE },
+ { "var", &handleFn, FALSE },
+ { "typedef", &handleFn, FALSE },
+ { "property", &handleFn, FALSE },
+ { "def", &handleDef, FALSE },
+ { "overload", &handleOverload, FALSE },
+ { "enum", &handleEnum, FALSE },
+ { "defgroup", &handleDefGroup, FALSE },
+ { "addtogroup", &handleAddToGroup, FALSE },
+ { "weakgroup", &handleWeakGroup, FALSE },
+ { "namespace", &handleNamespace, FALSE },
+ { "package", &handlePackage, FALSE },
+ { "class", &handleClass, FALSE },
+ { "headerfile", &handleHeaderFile, FALSE },
+ { "protocol", &handleProtocol, FALSE },
+ { "category", &handleCategory, FALSE },
+ { "union", &handleUnion, FALSE },
+ { "struct", &handleStruct, FALSE },
+ { "interface", &handleInterface, FALSE },
+ { "idlexcept", &handleIdlException, FALSE },
+ { "page", &handlePage, FALSE },
+ { "mainpage", &handleMainpage, FALSE },
+ { "file", &handleFile, FALSE },
+ { "dir", &handleDir, FALSE },
+ { "example", &handleExample, FALSE },
{ "details", &handleDetails, TRUE },
- { "name", &handleName, TRUE },
+ { "name", &handleName, FALSE },
{ "todo", &handleTodo, TRUE },
{ "test", &handleTest, TRUE },
{ "bug", &handleBug, TRUE },
@@ -174,28 +174,28 @@ static DocCmdMap docCmdMap[] =
{ "dot", &handleFormatBlock, TRUE },
{ "msc", &handleFormatBlock, TRUE },
{ "code", &handleFormatBlock, TRUE },
- { "addindex", &handleAddIndex, TRUE },
+ { "addindex", &handleAddIndex, FALSE },
{ "if", &handleIf, FALSE },
{ "ifnot", &handleIfNot, FALSE },
{ "elseif", &handleElseIf, FALSE },
{ "else", &handleElse, FALSE },
{ "endif", &handleEndIf, FALSE },
- { "ingroup", &handleIngroup, TRUE },
- { "nosubgrouping", &handleNoSubGrouping, TRUE },
- { "showinitializer", &handleShowInitializer, TRUE },
- { "hideinitializer", &handleHideInitializer, TRUE },
- { "callgraph", &handleCallgraph, TRUE },
- { "callergraph", &handleCallergraph, TRUE },
+ { "ingroup", &handleIngroup, FALSE },
+ { "nosubgrouping", &handleNoSubGrouping, FALSE },
+ { "showinitializer", &handleShowInitializer, FALSE },
+ { "hideinitializer", &handleHideInitializer, FALSE },
+ { "callgraph", &handleCallgraph, FALSE },
+ { "callergraph", &handleCallergraph, FALSE },
{ "internal", &handleInternal, TRUE },
{ "_linebr", &handleLineBr, FALSE },
- { "static", &handleStatic, TRUE },
- { "pure", &handlePure, TRUE },
- { "private", &handlePrivate, TRUE },
- { "privatesection", &handlePrivateSection, TRUE },
- { "protected", &handleProtected, TRUE },
- { "protectedsection",&handleProtectedSection, TRUE },
- { "public", &handlePublic, TRUE },
- { "publicsection", &handlePublicSection, TRUE },
+ { "static", &handleStatic, FALSE },
+ { "pure", &handlePure, FALSE },
+ { "private", &handlePrivate, FALSE },
+ { "privatesection", &handlePrivateSection, FALSE },
+ { "protected", &handleProtected, FALSE },
+ { "protectedsection",&handleProtectedSection, FALSE },
+ { "public", &handlePublic, FALSE },
+ { "publicsection", &handlePublicSection, FALSE },
{ "inherit", &handleInherit, TRUE },
{ "arg", 0, TRUE },
{ "attention", 0, TRUE },
@@ -213,6 +213,7 @@ static DocCmdMap docCmdMap[] =
{ "note", 0, TRUE },
{ "par", 0, TRUE },
{ "param", 0, TRUE },
+ { "tparam", 0, TRUE },
{ "post", 0, TRUE },
{ "pre", 0, TRUE },
{ "remark", 0, TRUE },
@@ -728,14 +729,14 @@ static inline void addOutput(char c)
*pOutputString+=c;
}
-static void endBrief()
+static void endBrief(bool addToOutput=TRUE)
{
if (!current->brief.stripWhiteSpace().isEmpty())
{ // only go to the detailed description if we have
// found some brief description and not just whitespace
briefEndsAtDot=FALSE;
setOutput(OutputDoc);
- addOutput(yytext);
+ if (addToOutput) addOutput(yytext);
}
}
@@ -1009,13 +1010,13 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
<Comment>(\n|\\_linebr)({B}*(\n|\\_linebr))+ { // at least one blank line (or blank line command)
if (inContext!=OutputBrief)
{
- addOutput(yytext);
+ addOutput("\n\n");
setOutput(OutputDoc);
}
else
{ // only go to the detailed description if we have
// found some brief description and not just whitespace
- endBrief();
+ endBrief(FALSE);
}
lineCount();
}
@@ -2216,6 +2217,12 @@ static bool handleInternal(const QCString &)
{
if (!Config_getBool("INTERNAL_DOCS"))
{
+ // make sure some whitespace before a \internal command
+ // is not treated as "documentation"
+ if (current->doc.stripWhiteSpace().isEmpty())
+ {
+ current->doc.resize(0);
+ }
BEGIN( SkipInternal );
}
else
diff --git a/src/compound.xsd b/src/compound.xsd
index a407210..a200f8b 100644
--- a/src/compound.xsd
+++ b/src/compound.xsd
@@ -775,6 +775,7 @@
<xsd:enumeration value="param" />
<xsd:enumeration value="retval" />
<xsd:enumeration value="exception" />
+ <xsd:enumeration value="templateparam" />
</xsd:restriction>
</xsd:simpleType>
diff --git a/src/compound_xsd.h b/src/compound_xsd.h
index ded516c..47de4d3 100644
--- a/src/compound_xsd.h
+++ b/src/compound_xsd.h
@@ -775,6 +775,7 @@
" <xsd:enumeration value=\"param\" />\n"
" <xsd:enumeration value=\"retval\" />\n"
" <xsd:enumeration value=\"exception\" />\n"
+" <xsd:enumeration value=\"templateparam\" />\n"
" </xsd:restriction>\n"
" </xsd:simpleType>\n"
"\n"
diff --git a/src/config.l b/src/config.l
index b328d50..c12426a 100644
--- a/src/config.l
+++ b/src/config.l
@@ -1291,6 +1291,7 @@ void Config::check()
annotationFromBrief.append("the");
}
+#if 0
if (Config_getBool("CALL_GRAPH") &&
(!Config_getBool("SOURCE_BROWSER") || !Config_getBool("REFERENCES_RELATION"))
)
@@ -1311,6 +1312,7 @@ void Config::check()
Config_getBool("SOURCE_BROWSER")=TRUE;
Config_getBool("REFERENCED_BY_RELATION")=TRUE;
}
+#endif
// some default settings for vhdl
if (Config_getBool("OPTIMIZE_OUTPUT_VHDL") &&
(Config_getBool("INLINE_INHERITED_MEMB") ||
@@ -1413,10 +1415,11 @@ void Config::create()
"information to generate all constant output in the proper language. \n"
"The default language is English, other supported languages are: \n"
"Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, \n"
- "Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, \n"
- "Italian, Japanese, Japanese-en (Japanese with English messages), Korean, \n"
- "Korean-en, Lithuanian, Norwegian, Macedonian, Polish, Portuguese, Romanian, \n"
- "Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.\n",
+ "Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, \n"
+ "Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), \n"
+ "Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, \n"
+ "Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, \n"
+ "and Ukrainian.\n",
"English"
);
#ifdef LANG_ZA
@@ -1486,6 +1489,7 @@ void Config::create()
ce->addValue("Macedonian");
#endif
#ifdef LANG_FA
+ ce->addValue("Farsi");
ce->addValue("Persian");
#endif
#ifdef LANG_PL
@@ -1892,6 +1896,13 @@ void Config::create()
FALSE
);
cb = addBool(
+ "SORT_GROUP_NAMES",
+ "If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the \n"
+ "hierarchy of group names into alphabetical order. If set to NO (the default) \n"
+ "the group names will appear in their defined order. \n",
+ FALSE
+ );
+ cb = addBool(
"SORT_BY_SCOPE_NAME",
"If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be \n"
"sorted by fully-qualified names, including namespaces. If set to \n"
@@ -2159,9 +2170,7 @@ void Config::create()
"If the SOURCE_BROWSER tag is set to YES then a list of source files will \n"
"be generated. Documented entities will be cross-referenced with these sources. \n"
"Note: To get rid of all source code in the generated output, make sure also \n"
- "VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH \n"
- "then you must also enable this option. If you don't then doxygen will produce \n"
- "a warning and turn it on anyway \n",
+ "VERBATIM_HEADERS is set to NO. \n",
FALSE
);
cb = addBool(
@@ -2181,16 +2190,14 @@ void Config::create()
"If the REFERENCED_BY_RELATION tag is set to YES (the default) \n"
"then for each documented function all documented \n"
"functions referencing it will be listed. \n",
- TRUE
+ FALSE
);
- cb->addDependency("SOURCE_BROWSER");
cb = addBool( "REFERENCES_RELATION",
"If the REFERENCES_RELATION tag is set to YES (the default) \n"
"then for each documented function all documented entities \n"
"called/used by that function will be listed. \n",
- TRUE
+ FALSE
);
- cb->addDependency("SOURCE_BROWSER");
cb = addBool( "REFERENCES_LINK_SOURCE",
"If the REFERENCES_LINK_SOURCE tag is set to YES (the default)\n"
"and SOURCE_BROWSER tag is set to YES, then the hyperlinks from\n"
@@ -2198,7 +2205,6 @@ void Config::create()
"link to the source code. Otherwise they will link to the documentstion.\n",
TRUE
);
- cb->addDependency("SOURCE_BROWSER");
cb = addBool(
"USE_HTAGS",
"If the USE_HTAGS tag is set to YES then the references to source code \n"
@@ -2961,7 +2967,7 @@ void Config::create()
cb->addDependency("HAVE_DOT");
cb = addBool(
"CALL_GRAPH",
- "If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then \n"
+ "If the CALL_GRAPH and HAVE_DOT options are set to YES then \n"
"doxygen will generate a call dependency graph for every global function \n"
"or class method. Note that enabling this option will significantly increase \n"
"the time of a run. So in most cases it will be better to enable call graphs \n"
@@ -2971,7 +2977,7 @@ void Config::create()
cb->addDependency("HAVE_DOT");
cb = addBool(
"CALLER_GRAPH",
- "If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then \n"
+ "If the CALLER_GRAPH and HAVE_DOT tags are set to YES then \n"
"doxygen will generate a caller dependency graph for every global function \n"
"or class method. Note that enabling this option will significantly increase \n"
"the time of a run. So in most cases it will be better to enable caller \n"
diff --git a/src/defargs.l b/src/defargs.l
index ea37c45..81832a9 100644
--- a/src/defargs.l
+++ b/src/defargs.l
@@ -159,6 +159,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
}
<ReadFuncArgPtr>")"/{B}*"[" { // pointer to fixed size array
g_curArgTypeName+=yytext;
+ g_curArgTypeName+=g_curArgName;
//g_curArgTypeName=g_curArgTypeName.simplifyWhiteSpace();
BEGIN( ReadFuncArgType );
}
@@ -307,6 +308,19 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
a->type = removeRedundantWhiteSpace(g_curArgTypeName);
}
a->array += removeRedundantWhiteSpace(g_curArgArray);
+ //printf("array=%s\n",a->array.data());
+ int alen = a->array.length();
+ if (alen>2 && a->array.at(0)=='(' &&
+ a->array.at(alen-1)==')') // fix-up for int *(a[10])
+ {
+ int i=a->array.find('[')-1;
+ a->array = a->array.mid(1,alen-2);
+ if (i>0 && a->name.isEmpty())
+ {
+ a->name = a->array.left(i);
+ a->array = a->array.mid(i);
+ }
+ }
a->defval = g_curArgDefValue.copy();
//printf("a->type=%s a->name=%s a->defval=\"%s\"\n",a->type.data(),a->name.data(),a->defval.data());
a->docs = g_curArgDocs.stripWhiteSpace();
diff --git a/src/definition.cpp b/src/definition.cpp
index 3d742ef..2eab6a9 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -301,6 +301,32 @@ Definition::~Definition()
}
}
+void Definition::setName(const char *name)
+{
+ if (name==0) return;
+ m_name = name;
+#if 0
+ makeResident();
+ if (m_isSymbol)
+ {
+ removeFromMap(this);
+ }
+ if (m_name!="<globalScope>")
+ {
+ //extractNamespaceName(m_name,m_localName,ns);
+ m_impl->localName=stripScope(m_name);
+ }
+ else
+ {
+ m_impl->localName=m_name;
+ }
+ if (m_isSymbol)
+ {
+ addToMap(m_name,this);
+ }
+#endif
+}
+
void Definition::addSectionsToDefinition(QList<SectionInfo> *anchorList)
{
if (!anchorList) return;
@@ -765,7 +791,7 @@ void Definition::_writeSourceRefList(OutputList &ol,const char *scopeName,
const QCString &text,MemberSDict *members,bool /*funcOnly*/)
{
ol.pushGeneratorState();
- if (Config_getBool("SOURCE_BROWSER") && members)
+ if (/*Config_getBool("SOURCE_BROWSER") &&*/ members)
{
ol.startParagraph();
ol.parseText(text);
@@ -938,7 +964,6 @@ void Definition::addSourceReferences(MemberDef *md)
}
if (m_impl->sourceRefsDict->find(name)==0)
{
- //printf("Adding reference %s->%s\n",md->name().data(),name.data());
m_impl->sourceRefsDict->inSort(name,md);
}
}
diff --git a/src/definition.h b/src/definition.h
index afaf34f..765118d 100644
--- a/src/definition.h
+++ b/src/definition.h
@@ -245,7 +245,7 @@ class Definition : public DefinitionIntf, public LockableObj
//-----------------------------------------------------------------------------------
/*! Sets a new \a name for the definition */
- void setName(const char *name) { m_name = name; }
+ void setName(const char *name);
/*! Sets the documentation of this definition to \a d. */
void setDocumentation(const char *d,const char *docFile,int docLine,bool stripWhiteSpace=TRUE);
diff --git a/src/dirdef.cpp b/src/dirdef.cpp
index 415a2fa..9107627 100644
--- a/src/dirdef.cpp
+++ b/src/dirdef.cpp
@@ -558,145 +558,7 @@ DirDef *DirDef::mergeDirectoryInTree(const QCString &path)
void DirDef::writeDepGraph(QTextStream &t)
{
- t << "digraph G {\n";
- if (Config_getBool("DOT_TRANSPARENT"))
- {
- t << " bgcolor=transparent;\n";
- }
- t << " compound=true\n";
- t << " node [ fontsize=10, fontname=\"FreeSans.ttf\"];\n";
- t << " edge [ labelfontsize=9, labelfontname=\"FreeSans.ttf\"];\n";
-
- QDict<DirDef> dirsInGraph(257);
-
- dirsInGraph.insert(getOutputFileBase(),this);
- if (parent())
- {
- t << " subgraph cluster" << parent()->getOutputFileBase() << " {\n";
- t << " graph [ bgcolor=\"#ddddee\", pencolor=\"black\", label=\""
- << parent()->shortName()
- << "\" fontname=\"FreeSans.ttf\", fontsize=10, URL=\"";
- t << parent()->getOutputFileBase() << Doxygen::htmlFileExtension;
- t << "\"]\n";
- }
- if (isCluster())
- {
- t << " subgraph cluster" << getOutputFileBase() << " {\n";
- t << " graph [ bgcolor=\"#eeeeff\", pencolor=\"black\", label=\"\""
- << " URL=\"" << getOutputFileBase() << Doxygen::htmlFileExtension
- << "\"];\n";
- t << " " << getOutputFileBase() << " [shape=plaintext label=\""
- << shortName() << "\"];\n";
-
- // add nodes for sub directories
- QListIterator<DirDef> sdi(m_subdirs);
- DirDef *sdir;
- for (sdi.toFirst();(sdir=sdi.current());++sdi)
- {
- t << " " << sdir->getOutputFileBase() << " [shape=box label=\""
- << sdir->shortName() << "\"";
- if (sdir->isCluster())
- {
- t << " color=\"red\"";
- }
- else
- {
- t << " color=\"black\"";
- }
- t << " fillcolor=\"white\" style=\"filled\"";
- t << " URL=\"" << sdir->getOutputFileBase()
- << Doxygen::htmlFileExtension << "\"";
- t << "];\n";
- dirsInGraph.insert(sdir->getOutputFileBase(),sdir);
- }
- t << " }\n";
- }
- else
- {
- t << " " << getOutputFileBase() << " [shape=box, label=\""
- << shortName() << "\", style=\"filled\", fillcolor=\"#eeeeff\","
- << " pencolor=\"black\", URL=\"" << getOutputFileBase()
- << Doxygen::htmlFileExtension << "\"];\n";
- }
- if (parent())
- {
- t << " }\n";
- }
-
- // add nodes for other used directories
- QDictIterator<UsedDir> udi(*m_usedDirs);
- UsedDir *udir;
- //printf("*** For dir %s\n",shortName().data());
- for (udi.toFirst();(udir=udi.current());++udi)
- // for each used dir (=directly used or a parent of a directly used dir)
- {
- const DirDef *usedDir=udir->dir();
- DirDef *dir=this;
- while (dir)
- {
- //printf("*** check relation %s->%s same_parent=%d !%s->isParentOf(%s)=%d\n",
- // dir->shortName().data(),usedDir->shortName().data(),
- // dir->parent()==usedDir->parent(),
- // usedDir->shortName().data(),
- // shortName().data(),
- // !usedDir->isParentOf(this)
- // );
- if (dir!=usedDir && dir->parent()==usedDir->parent() && !usedDir->isParentOf(this))
- // include if both have the same parent (or no parent)
- {
- t << " " << usedDir->getOutputFileBase() << " [shape=box label=\""
- << usedDir->shortName() << "\"";
- if (usedDir->isCluster())
- {
- if (!Config_getBool("DOT_TRANSPARENT"))
- {
- t << " fillcolor=\"white\" style=\"filled\"";
- }
- t << " color=\"red\"";
- }
- t << " URL=\"" << usedDir->getOutputFileBase()
- << Doxygen::htmlFileExtension << "\"];\n";
- dirsInGraph.insert(usedDir->getOutputFileBase(),usedDir);
- break;
- }
- dir=dir->parent();
- }
- }
-
- // add relations between all selected directories
- DirDef *dir;
- QDictIterator<DirDef> di(dirsInGraph);
- for (di.toFirst();(dir=di.current());++di) // foreach dir in the graph
- {
- QDictIterator<UsedDir> udi(*dir->usedDirs());
- UsedDir *udir;
- for (udi.toFirst();(udir=udi.current());++udi) // foreach used dir
- {
- const DirDef *usedDir=udir->dir();
- if ((dir!=this || !udir->inherited()) && // only show direct dependendies for this dir
- (usedDir!=this || !udir->inherited()) && // only show direct dependendies for this dir
- !usedDir->isParentOf(dir) && // don't point to own parent
- dirsInGraph.find(usedDir->getOutputFileBase())) // only point to nodes that are in the graph
- {
- QCString relationName;
- relationName.sprintf("dir_%06d_%06d",dir->m_dirCount,usedDir->m_dirCount);
- if (Doxygen::dirRelations.find(relationName)==0)
- {
- // new relation
- Doxygen::dirRelations.append(relationName,
- new DirRelation(relationName,dir,udir));
- }
- int nrefs = udir->filePairs().count();
- t << " " << dir->getOutputFileBase() << "->"
- << usedDir->getOutputFileBase();
- t << " [headlabel=\"" << nrefs << "\", labeldistance=1.5";
- t << " headhref=\"" << relationName << Doxygen::htmlFileExtension
- << "\"];\n";
- }
- }
- }
-
- t << "}\n";
+ writeDotDirDepGraph(t,this);
}
//----------------------------------------------------------------------
diff --git a/src/dirdef.h b/src/dirdef.h
index c88ffa9..49dca57 100644
--- a/src/dirdef.h
+++ b/src/dirdef.h
@@ -62,6 +62,7 @@ class DirDef : public Definition
bool isCluster() const { return m_subdirs.count()>0; }
int level() const { return m_level; }
DirDef *parent() const { return m_parent; }
+ int dirCount() const { return m_dirCount; }
const QDict<UsedDir> *usedDirs() const { return m_usedDirs; }
bool isParentOf(DirDef *dir) const;
bool depGraphIsTrivial() const;
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 529d0e7..63ff330 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -162,7 +162,7 @@ static void docParserPushContext()
g_parserStack.push(ctx);
}
-static void docParserPopContext()
+static void docParserPopContext(bool keepParamInfo=FALSE)
{
DocParserContext *ctx = g_parserStack.pop();
g_context = ctx->context;
@@ -175,10 +175,13 @@ static void docParserPopContext()
g_fileName = ctx->fileName;
g_relPath = ctx->relPath;
- g_hasParamCommand = ctx->hasParamCommand;
- g_hasReturnCommand = ctx->hasReturnCommand;
+ if (!keepParamInfo)
+ {
+ g_hasParamCommand = ctx->hasParamCommand;
+ g_hasReturnCommand = ctx->hasReturnCommand;
+ g_paramsFound = ctx->paramsFound;
+ }
g_memberDef = ctx->memberDef;
- g_paramsFound = ctx->paramsFound;
g_isExample = ctx->isExample;
g_exampleName = ctx->exampleName;
g_sectionDict = ctx->sectionDict;
@@ -1754,6 +1757,8 @@ void DocCopy::parse()
g_copyStack.append(def);
// make sure the descriptions end with a newline, so the parser will correctly
// handle them in all cases.
+ //printf("doc='%s'\n",doc.data());
+ //printf("brief='%s'\n",brief.data());
brief+='\n';
doc+='\n';
internalValidatingParseDoc(this,m_children,brief);
@@ -1761,7 +1766,7 @@ void DocCopy::parse()
g_copyStack.remove(def);
ASSERT(g_styleStack.isEmpty());
ASSERT(g_nodeStack.isEmpty());
- docParserPopContext();
+ docParserPopContext(TRUE);
}
else // oops, recursion
{
@@ -4001,6 +4006,7 @@ int DocParamList::parseXml(const QString &paramName)
} while (retval==RetVal_CloseXml &&
Mappers::htmlTagMapper->map(g_token->name)!=XML_PARAM &&
+ Mappers::htmlTagMapper->map(g_token->name)!=XML_TYPEPARAM &&
Mappers::htmlTagMapper->map(g_token->name)!=XML_EXCEPTION);
@@ -4419,7 +4425,7 @@ void DocPara::handleInheritDoc()
internalValidatingParseDoc(this,m_children,reMd->briefDescription());
internalValidatingParseDoc(this,m_children,reMd->documentation());
g_copyStack.remove(reMd);
- docParserPopContext();
+ docParserPopContext(TRUE);
g_memberDef = thisMd;
}
}
@@ -4641,6 +4647,9 @@ int DocPara::handleCommand(const QString &cmdName)
case CMD_PARAM:
retval = handleParamSection(cmdName,DocParamSect::Param,FALSE,g_token->paramDir);
break;
+ case CMD_TPARAM:
+ retval = handleParamSection(cmdName,DocParamSect::TemplateParam,FALSE,g_token->paramDir);
+ break;
case CMD_RETVAL:
retval = handleParamSection(cmdName,DocParamSect::RetVal);
break;
@@ -5012,11 +5021,14 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
handleStyleEnter(this,m_children,DocStyleChange::Code,&g_token->attribs);
break;
case XML_PARAM:
+ case XML_TYPEPARAM:
{
QString paramName;
if (findAttribute(tagHtmlAttribs,"name",&paramName))
{
- retval = handleParamSection(paramName,DocParamSect::Param,TRUE);
+ retval = handleParamSection(paramName,
+ tagId==XML_PARAM ? DocParamSect::Param : DocParamSect::TemplateParam,
+ TRUE);
}
else
{
@@ -5025,6 +5037,7 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
}
break;
case XML_PARAMREF:
+ case XML_TYPEPARAMREF:
{
QString paramName;
if (findAttribute(tagHtmlAttribs,"name",&paramName))
@@ -5037,7 +5050,7 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
}
else
{
- warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Missing 'name' attribute from <paramref> tag.");
+ warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Missing 'name' attribute from <param%sref> tag.",tagId==XML_PARAMREF?"":"type");
}
}
break;
@@ -5330,6 +5343,7 @@ int DocPara::handleHtmlEndTag(const QString &tagName)
case XML_LIST:
case XML_EXAMPLE:
case XML_PARAM:
+ case XML_TYPEPARAM:
case XML_RETURNS:
case XML_SEEALSO:
case XML_EXCEPTION:
@@ -5344,6 +5358,7 @@ int DocPara::handleHtmlEndTag(const QString &tagName)
case XML_PERMISSION:
case XML_DESCRIPTION:
case XML_PARAMREF:
+ case XML_TYPEPARAMREF:
// These tags are defined in .Net but are currently unsupported
break;
case HTML_UNKNOWN:
diff --git a/src/docparser.h b/src/docparser.h
index 93a6a76..478f1b9 100644
--- a/src/docparser.h
+++ b/src/docparser.h
@@ -939,7 +939,7 @@ class DocParamSect : public CompAccept<DocParamSect>, public DocNode
public:
enum Type
{
- Unknown, Param, RetVal, Exception
+ Unknown, Param, RetVal, Exception, TemplateParam
};
enum Direction
{
diff --git a/src/dot.cpp b/src/dot.cpp
index 83c9eec..c745ef6 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -34,6 +34,7 @@
#include "debug.h"
#include "pagedef.h"
#include "portable.h"
+#include "dirdef.h"
#include <qdir.h>
#include <qfile.h>
@@ -42,6 +43,8 @@
#define MAP_CMD "cmap"
+#define FONTNAME "FreeSans"
+
//--------------------------------------------------------------------
static const int maxCmdLine = 40960;
@@ -81,9 +84,9 @@ static void writeGraphHeader(QTextStream &t)
{
t << " bgcolor=\"transparent\";" << endl;
}
- t << " edge [fontname=\"FreeSans.ttf\",fontsize=10,"
- "labelfontname=\"FreeSans.ttf\",labelfontsize=10];\n";
- t << " node [fontname=\"FreeSans.ttf\",fontsize=10,shape=record];\n";
+ t << " edge [fontname=\"" << FONTNAME << "\",fontsize=10,"
+ "labelfontname=\"" << FONTNAME << "\",labelfontsize=10];\n";
+ t << " node [fontname=\"" << FONTNAME << "\",fontsize=10,shape=record];\n";
}
static void writeGraphFooter(QTextStream &t)
@@ -528,6 +531,8 @@ static QCString convertLabel(const QCString &l)
case '<': result+="\\<"; break;
case '>': result+="\\>"; break;
case '|': result+="\\|"; break;
+ case '{': result+="\\{"; break;
+ case '}': result+="\\}"; break;
case '"': result+="\\\""; break;
default: result+=c; break;
}
@@ -715,7 +720,7 @@ void DotNode::writeArrow(QTextStream &t,
t << ",arrowhead=\"" << arrowStyle[ei->m_color] << "\"";
}
- if (format==BITMAP) t << ",fontname=\"FreeSans.ttf\"";
+ if (format==BITMAP) t << ",fontname=\"" << FONTNAME << "\"";
t << "];" << endl;
}
@@ -2717,23 +2722,23 @@ void generateGraphLegend(const char *path)
}
QTextStream dotText(&dotFile);
writeGraphHeader(dotText);
- dotText << " Node9 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",fillcolor=\"grey75\",style=\"filled\" fontcolor=\"black\"];\n";
- dotText << " Node10 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"FreeSans.ttf\"];\n";
- dotText << " Node10 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"black\",URL=\"$classPublicBase" << Doxygen::htmlFileExtension << "\"];\n";
- dotText << " Node11 -> Node10 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"FreeSans.ttf\"];\n";
- dotText << " Node11 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"red\",URL=\"$classTruncated" << Doxygen::htmlFileExtension << "\"];\n";
- dotText << " Node13 -> Node9 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"FreeSans.ttf\"];\n";
- dotText << " Node13 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"black\",URL=\"$classProtectedBase" << Doxygen::htmlFileExtension << "\"];\n";
- dotText << " Node14 -> Node9 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"FreeSans.ttf\"];\n";
- dotText << " Node14 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"black\",URL=\"$classPrivateBase" << Doxygen::htmlFileExtension << "\"];\n";
- dotText << " Node15 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"FreeSans.ttf\"];\n";
- dotText << " Node15 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"grey75\"];\n";
- dotText << " Node16 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"FreeSans.ttf\"];\n";
- dotText << " Node16 [shape=\"box\",label=\"Templ< int >\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"black\",URL=\"$classTempl" << Doxygen::htmlFileExtension << "\"];\n";
- dotText << " Node17 -> Node16 [dir=back,color=\"orange\",fontsize=10,style=\"dashed\",label=\"< int >\",fontname=\"FreeSans.ttf\"];\n";
- dotText << " Node17 [shape=\"box\",label=\"Templ< T >\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"black\",URL=\"$classTempl" << Doxygen::htmlFileExtension << "\"];\n";
- dotText << " Node18 -> Node9 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"FreeSans.ttf\"];\n";
- dotText << " Node18 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"black\",URL=\"$classUsed" << Doxygen::htmlFileExtension << "\"];\n";
+ dotText << " Node9 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",fillcolor=\"grey75\",style=\"filled\" fontcolor=\"black\"];\n";
+ dotText << " Node10 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
+ dotText << " Node10 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classPublicBase" << Doxygen::htmlFileExtension << "\"];\n";
+ dotText << " Node11 -> Node10 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
+ dotText << " Node11 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"red\",URL=\"$classTruncated" << Doxygen::htmlFileExtension << "\"];\n";
+ dotText << " Node13 -> Node9 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
+ dotText << " Node13 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classProtectedBase" << Doxygen::htmlFileExtension << "\"];\n";
+ dotText << " Node14 -> Node9 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
+ dotText << " Node14 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classPrivateBase" << Doxygen::htmlFileExtension << "\"];\n";
+ dotText << " Node15 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
+ dotText << " Node15 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"grey75\"];\n";
+ dotText << " Node16 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
+ dotText << " Node16 [shape=\"box\",label=\"Templ< int >\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classTempl" << Doxygen::htmlFileExtension << "\"];\n";
+ dotText << " Node17 -> Node16 [dir=back,color=\"orange\",fontsize=10,style=\"dashed\",label=\"< int >\",fontname=\"" << FONTNAME << "\"];\n";
+ dotText << " Node17 [shape=\"box\",label=\"Templ< T >\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classTempl" << Doxygen::htmlFileExtension << "\"];\n";
+ dotText << " Node18 -> Node9 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"" << FONTNAME << "\"];\n";
+ dotText << " Node18 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classUsed" << Doxygen::htmlFileExtension << "\"];\n";
writeGraphFooter(dotText);
dotFile.close();
@@ -3273,8 +3278,152 @@ void DotGroupCollaboration::writeGraphHeader(QTextStream &t) const
{
t << " bgcolor=\"transparent\";" << endl;
}
- t << " edge [fontname=\"FreeSans.ttf\",fontsize=8,"
- "labelfontname=\"FreeSans.ttf\",labelfontsize=8];\n";
- t << " node [fontname=\"FreeSans.ttf\",fontsize=10,shape=record];\n";
+ t << " edge [fontname=\"" << FONTNAME << "\",fontsize=8,"
+ "labelfontname=\"" << FONTNAME << "\",labelfontsize=8];\n";
+ t << " node [fontname=\"" << FONTNAME << "\",fontsize=10,shape=record];\n";
t << " rankdir=LR;\n";
}
+
+void writeDotDirDepGraph(QTextStream &t,DirDef *dd)
+{
+ t << "digraph G {\n";
+ if (Config_getBool("DOT_TRANSPARENT"))
+ {
+ t << " bgcolor=transparent;\n";
+ }
+ t << " compound=true\n";
+ t << " node [ fontsize=10, fontname=\"" << FONTNAME << "\"];\n";
+ t << " edge [ labelfontsize=9, labelfontname=\"" << FONTNAME << "\"];\n";
+
+ QDict<DirDef> dirsInGraph(257);
+
+ dirsInGraph.insert(dd->getOutputFileBase(),dd);
+ if (dd->parent())
+ {
+ t << " subgraph cluster" << dd->parent()->getOutputFileBase() << " {\n";
+ t << " graph [ bgcolor=\"#ddddee\", pencolor=\"black\", label=\""
+ << dd->parent()->shortName()
+ << "\" fontname=\"" << FONTNAME << "\", fontsize=10, URL=\"";
+ t << dd->parent()->getOutputFileBase() << Doxygen::htmlFileExtension;
+ t << "\"]\n";
+ }
+ if (dd->isCluster())
+ {
+ t << " subgraph cluster" << dd->getOutputFileBase() << " {\n";
+ t << " graph [ bgcolor=\"#eeeeff\", pencolor=\"black\", label=\"\""
+ << " URL=\"" << dd->getOutputFileBase() << Doxygen::htmlFileExtension
+ << "\"];\n";
+ t << " " << dd->getOutputFileBase() << " [shape=plaintext label=\""
+ << dd->shortName() << "\"];\n";
+
+ // add nodes for sub directories
+ QListIterator<DirDef> sdi(dd->subDirs());
+ DirDef *sdir;
+ for (sdi.toFirst();(sdir=sdi.current());++sdi)
+ {
+ t << " " << sdir->getOutputFileBase() << " [shape=box label=\""
+ << sdir->shortName() << "\"";
+ if (sdir->isCluster())
+ {
+ t << " color=\"red\"";
+ }
+ else
+ {
+ t << " color=\"black\"";
+ }
+ t << " fillcolor=\"white\" style=\"filled\"";
+ t << " URL=\"" << sdir->getOutputFileBase()
+ << Doxygen::htmlFileExtension << "\"";
+ t << "];\n";
+ dirsInGraph.insert(sdir->getOutputFileBase(),sdir);
+ }
+ t << " }\n";
+ }
+ else
+ {
+ t << " " << dd->getOutputFileBase() << " [shape=box, label=\""
+ << dd->shortName() << "\", style=\"filled\", fillcolor=\"#eeeeff\","
+ << " pencolor=\"black\", URL=\"" << dd->getOutputFileBase()
+ << Doxygen::htmlFileExtension << "\"];\n";
+ }
+ if (dd->parent())
+ {
+ t << " }\n";
+ }
+
+ // add nodes for other used directories
+ QDictIterator<UsedDir> udi(*dd->usedDirs());
+ UsedDir *udir;
+ //printf("*** For dir %s\n",shortName().data());
+ for (udi.toFirst();(udir=udi.current());++udi)
+ // for each used dir (=directly used or a parent of a directly used dir)
+ {
+ const DirDef *usedDir=udir->dir();
+ DirDef *dir=dd;
+ while (dir)
+ {
+ //printf("*** check relation %s->%s same_parent=%d !%s->isParentOf(%s)=%d\n",
+ // dir->shortName().data(),usedDir->shortName().data(),
+ // dir->parent()==usedDir->parent(),
+ // usedDir->shortName().data(),
+ // shortName().data(),
+ // !usedDir->isParentOf(this)
+ // );
+ if (dir!=usedDir && dir->parent()==usedDir->parent() &&
+ !usedDir->isParentOf(dd))
+ // include if both have the same parent (or no parent)
+ {
+ t << " " << usedDir->getOutputFileBase() << " [shape=box label=\""
+ << usedDir->shortName() << "\"";
+ if (usedDir->isCluster())
+ {
+ if (!Config_getBool("DOT_TRANSPARENT"))
+ {
+ t << " fillcolor=\"white\" style=\"filled\"";
+ }
+ t << " color=\"red\"";
+ }
+ t << " URL=\"" << usedDir->getOutputFileBase()
+ << Doxygen::htmlFileExtension << "\"];\n";
+ dirsInGraph.insert(usedDir->getOutputFileBase(),usedDir);
+ break;
+ }
+ dir=dir->parent();
+ }
+ }
+
+ // add relations between all selected directories
+ DirDef *dir;
+ QDictIterator<DirDef> di(dirsInGraph);
+ for (di.toFirst();(dir=di.current());++di) // foreach dir in the graph
+ {
+ QDictIterator<UsedDir> udi(*dir->usedDirs());
+ UsedDir *udir;
+ for (udi.toFirst();(udir=udi.current());++udi) // foreach used dir
+ {
+ const DirDef *usedDir=udir->dir();
+ if ((dir!=dd || !udir->inherited()) && // only show direct dependendies for this dir
+ (usedDir!=dd || !udir->inherited()) && // only show direct dependendies for this dir
+ !usedDir->isParentOf(dir) && // don't point to own parent
+ dirsInGraph.find(usedDir->getOutputFileBase())) // only point to nodes that are in the graph
+ {
+ QCString relationName;
+ relationName.sprintf("dir_%06d_%06d",dir->dirCount(),usedDir->dirCount());
+ if (Doxygen::dirRelations.find(relationName)==0)
+ {
+ // new relation
+ Doxygen::dirRelations.append(relationName,
+ new DirRelation(relationName,dir,udir));
+ }
+ int nrefs = udir->filePairs().count();
+ t << " " << dir->getOutputFileBase() << "->"
+ << usedDir->getOutputFileBase();
+ t << " [headlabel=\"" << nrefs << "\", labeldistance=1.5";
+ t << " headhref=\"" << relationName << Doxygen::htmlFileExtension
+ << "\"];\n";
+ }
+ }
+ }
+
+ t << "}\n";
+}
diff --git a/src/dot.h b/src/dot.h
index d076b71..2a59a82 100644
--- a/src/dot.h
+++ b/src/dot.h
@@ -337,5 +337,6 @@ void writeDotGraphFromFile(const char *inFile,const char *outDir,
QString getDotImageMapFromFile(const QString& inFile, const QString& outDir,
const QCString& relPath,const QString &context);
+void writeDotDirDepGraph(QTextStream &t,DirDef *dd);
#endif
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 0d163cd..f66be45 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -2482,6 +2482,44 @@ static void buildVarList(EntryNav *rootNav)
else
mtype=MemberDef::Variable;
+#if 0 // does not work correctly
+ //static bool typedefHidesStruct = Config_getBool("TYPEDEF_HIDES_STRUCT");
+ if (typedefHidesStruct) // substitute names with typedef'ed names
+ {
+ QCString baseType = type;
+ baseType.stripPrefix("typedef ");
+ if (baseType.stripPrefix("enum "))
+ {
+ MemberName *mn=Doxygen::functionNameSDict->find(baseType.stripWhiteSpace());
+ MemberNameIterator mni(*mn);
+ MemberDef *md;
+ for (mni.toFirst();(md=mni.current());++mni)
+ {
+ if (md->isEnumerate())
+ {
+ md->setName(name);
+ md->setDefinition(name);
+ goto nextMember;
+ }
+ }
+ }
+ else
+ {
+ baseType.stripPrefix("struct ");
+ baseType.stripPrefix("union ");
+ {
+ ClassDef *typedefClass = Doxygen::classSDict->find(baseType);
+ if (typedefClass)
+ {
+ typedefClass->setName(name);
+ typedefClass->setClassName(name);
+ goto nextMember;
+ }
+ }
+ }
+ }
+#endif
+
if (!root->relates.isEmpty()) // related variable
{
isRelated=TRUE;
@@ -7019,7 +7057,8 @@ static void addSourceReferences()
if (fd &&
md->getStartBodyLine()!=-1 &&
md->isLinkableInProject() &&
- fd->generateSourceFile())
+ (fd->generateSourceFile() || Doxygen::parseSourcesNeeded)
+ )
{
//printf("Found member `%s' in file `%s' at line `%d' def=%s\n",
// md->name().data(),fd->name().data(),md->getStartBodyLine(),md->getOuterScope()->name().data());
@@ -7035,12 +7074,15 @@ static void addSourceReferences()
for (mni.toFirst();(md=mni.current());++mni)
{
FileDef *fd=md->getBodyDef();
- //printf("member %s body=[%d,%d] fd=%p\n",md->name().data(),
- // md->getStartBodyLine(),md->getEndBodyLine(),fd);
+ //printf("member %s body=[%d,%d] fd=%p link=%d parseSources=%d\n",
+ // md->name().data(),
+ // md->getStartBodyLine(),md->getEndBodyLine(),fd,
+ // md->isLinkableInProject(),
+ // Doxygen::parseSourcesNeeded);
if (fd &&
md->getStartBodyLine()!=-1 &&
md->isLinkableInProject() &&
- fd->generateSourceFile()
+ (fd->generateSourceFile() || Doxygen::parseSourcesNeeded)
)
{
//printf("Found member `%s' in file `%s' at line `%d' def=%s\n",
@@ -9267,7 +9309,9 @@ void checkConfiguration()
Doxygen::xrefLists->setAutoDelete(TRUE);
Doxygen::parseSourcesNeeded = Config_getBool("CALL_GRAPH") ||
- Config_getBool("CALLER_GRAPH");
+ Config_getBool("CALLER_GRAPH") ||
+ Config_getBool("REFERENCES_RELATION") ||
+ Config_getBool("REFERENCED_BY_RELATION");
}
diff --git a/src/entry.h b/src/entry.h
index 04db9ac..f87182c 100644
--- a/src/entry.h
+++ b/src/entry.h
@@ -266,7 +266,7 @@ class Entry
NonAtomic = 0x040000,
Copy = 0x080000,
Retain = 0x100000,
- Assign = 0x200000,
+ Assign = 0x200000
};
enum ClassSpecifier
{
diff --git a/src/filedef.cpp b/src/filedef.cpp
index 9123976..47304c2 100644
--- a/src/filedef.cpp
+++ b/src/filedef.cpp
@@ -835,7 +835,7 @@ void FileDef::addSourceRef(int line,Definition *d,MemberDef *md)
srcDefDict->insert(line,d);
if (md) srcMemberDict->insert(line,md);
//printf("Adding member %s with anchor %s at line %d to file %s\n",
- // d->name().data(),anchor,line,name().data());
+ // md->name().data(),md->anchor().data(),line,name().data());
}
}
diff --git a/src/fortrancode.l b/src/fortrancode.l
index a2a3ad8..5ca162e 100644
--- a/src/fortrancode.l
+++ b/src/fortrancode.l
@@ -630,7 +630,7 @@ IGNORE (IMPLICIT{BS}NONE|CONTAINS|WRITE|READ|ALLOCATE|DEALLOCATE|SIZE)
codifyLines(yytext);
endFontClass();
}
-<Start>"end"({BS_}{COMMANDS})?/[ \t\n].* {
+<Start>"end"({BS_}{COMMANDS})?/[ \t\n] {
startFontClass("keyword");
codifyLines(yytext);
endFontClass();
diff --git a/src/groupdef.h b/src/groupdef.h
index dcbe1e4..7a4070f 100644
--- a/src/groupdef.h
+++ b/src/groupdef.h
@@ -142,10 +142,19 @@ class GroupSDict : public SDict<GroupDef>
public:
GroupSDict(uint size) : SDict<GroupDef>(size) {}
virtual ~GroupSDict() {}
+ int compareItems(GCI item1,GCI item2)
+ {
+ return strcmp(((GroupDef*)item1)->groupTitle(),((GroupDef*)item2)->groupTitle());
+ }
};
class GroupList : public QList<GroupDef>
{
+ public:
+ int compareItems(GCI item1,GCI item2)
+ {
+ return strcmp(((GroupDef*)item1)->groupTitle(),((GroupDef*)item2)->groupTitle());
+ }
};
class GroupListIterator : public QListIterator<GroupDef>
diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp
index b3739fe..fcd8157 100644
--- a/src/htmldocvisitor.cpp
+++ b/src/htmldocvisitor.cpp
@@ -935,6 +935,11 @@ void HtmlDocVisitor::visitPre(DocParamSect *s)
m_t << theTranslator->trReturnValues(); break;
case DocParamSect::Exception:
m_t << theTranslator->trExceptions(); break;
+ case DocParamSect::TemplateParam:
+ /* TODO: add this
+ m_t << theTranslator->trTemplateParam(); break;
+ */
+ m_t << "Template Parameters"; break;
default:
ASSERT(0);
}
diff --git a/src/index.cpp b/src/index.cpp
index a762ecf..beb0477 100644
--- a/src/index.cpp
+++ b/src/index.cpp
@@ -152,7 +152,7 @@ QCString abbreviate(const char *s,const char *name)
{
QCString scopelessName=name;
int i=scopelessName.findRev("::");
- if (i!=-1) scopelessName=scopelessName.mid(i);
+ if (i!=-1) scopelessName=scopelessName.mid(i+2);
QCString result=s;
result=result.stripWhiteSpace();
// strip trailing .
@@ -2433,6 +2433,8 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
if (hasSubGroups)
{
startIndexHierarchy(ol,level+1);
+ if (Config_getBool("SORT_GROUP_NAMES"))
+ gd->groupList->sort();
QListIterator<GroupDef> gli(*gd->groupList);
GroupDef *subgd = 0;
for (gli.toFirst();(subgd=gli.current());++gli)
@@ -2544,6 +2546,8 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
void writeGroupHierarchy(OutputList &ol)
{
startIndexHierarchy(ol,0);
+ if (Config_getBool("SORT_GROUP_NAMES"))
+ Doxygen::groupSDict->sort();
GroupSDict::Iterator gli(*Doxygen::groupSDict);
GroupDef *gd;
for (gli.toFirst();(gd=gli.current());++gli)
diff --git a/src/language.cpp b/src/language.cpp
index 39c9e66..727eea9 100644
--- a/src/language.cpp
+++ b/src/language.cpp
@@ -355,7 +355,7 @@ bool setTranslator(const char *langName)
}
#endif
#ifdef LANG_FA
- else if (L_EQUAL("persian"))
+ else if (L_EQUAL("persian") || L_EQUAL("farsi"))
{
theTranslator=new TranslatorDecoder(new TranslatorPersian);
}
diff --git a/src/latexdocvisitor.cpp b/src/latexdocvisitor.cpp
index 3d7b8c7..0516e37 100644
--- a/src/latexdocvisitor.cpp
+++ b/src/latexdocvisitor.cpp
@@ -927,6 +927,11 @@ void LatexDocVisitor::visitPre(DocParamSect *s)
filter(theTranslator->trReturnValues()); break;
case DocParamSect::Exception:
filter(theTranslator->trExceptions()); break;
+ case DocParamSect::TemplateParam:
+ /* TODO: add this
+ filter(theTranslator->trTemplateParam()); break;
+ */
+ filter("Template Parameters"); break;
default:
ASSERT(0);
}
diff --git a/src/mandocvisitor.cpp b/src/mandocvisitor.cpp
index 61e8d0e..4dd8010 100644
--- a/src/mandocvisitor.cpp
+++ b/src/mandocvisitor.cpp
@@ -807,6 +807,11 @@ void ManDocVisitor::visitPre(DocParamSect *s)
m_t << theTranslator->trReturnValues(); break;
case DocParamSect::Exception:
m_t << theTranslator->trExceptions(); break;
+ case DocParamSect::TemplateParam:
+ /* TODO: add this
+ m_t << theTranslator->trTemplateParam(); break;
+ */
+ m_t << "Template Parameters"; break;
default:
ASSERT(0);
}
diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp
index 95034dd..9c7f033 100644
--- a/src/perlmodgen.cpp
+++ b/src/perlmodgen.cpp
@@ -1161,6 +1161,7 @@ void PerlModDocVisitor::visitPre(DocParamSect *s)
case DocParamSect::Param: type = "params"; break;
case DocParamSect::RetVal: type = "retvals"; break;
case DocParamSect::Exception: type = "exceptions"; break;
+ case DocParamSect::TemplateParam: type = "templateparam"; break;
case DocParamSect::Unknown:
err("Error: unknown parameter section found\n");
break;
diff --git a/src/printdocvisitor.h b/src/printdocvisitor.h
index eca9943..30e919e 100644
--- a/src/printdocvisitor.h
+++ b/src/printdocvisitor.h
@@ -589,6 +589,7 @@ class PrintDocVisitor : public DocVisitor
case DocParamSect::Param: printf("param"); break;
case DocParamSect::RetVal: printf("retval"); break;
case DocParamSect::Exception: printf("exception"); break;
+ case DocParamSect::TemplateParam: printf("templateparam"); break;
case DocParamSect::Unknown: printf("unknown"); break;
}
printf(">\n");
diff --git a/src/rtfdocvisitor.cpp b/src/rtfdocvisitor.cpp
index 3eb5ae8..4ed7c16 100644
--- a/src/rtfdocvisitor.cpp
+++ b/src/rtfdocvisitor.cpp
@@ -1174,6 +1174,11 @@ void RTFDocVisitor::visitPre(DocParamSect *s)
m_t << theTranslator->trReturnValues(); break;
case DocParamSect::Exception:
m_t << theTranslator->trExceptions(); break;
+ case DocParamSect::TemplateParam:
+ /* TODO: add this
+ m_t << theTranslator->trTemplateParam(); break;
+ */
+ m_t << "Template Parameters"; break;
default:
ASSERT(0);
}
diff --git a/src/scanner.l b/src/scanner.l
index 50edea9..8125b9c 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -2773,7 +2773,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
initEntry();
BEGIN( FindMembers );
}
-<IDLProp>. {
+<IDLProp>. { // spaces, *, or other stuff
+ idlProp+=yytext;
}
<Array>"]" { current->args += *yytext ;
if (--squareCount<=0)
diff --git a/src/search.php b/src/search.php
index 6253e67..f86184c 100644
--- a/src/search.php
+++ b/src/search.php
@@ -288,7 +288,7 @@ function main()
{
$query=$_GET["query"];
}
- end_form($query);
+ end_form(ereg_replace("[^[:alnum:]:\\.\\t ]", " ", $query ));
echo "&nbsp;\n<div class=\"searchresults\">\n";
$results = array();
$requiredWords = array();
diff --git a/src/search_php.h b/src/search_php.h
index f155f5f..afbfc74 100644
--- a/src/search_php.h
+++ b/src/search_php.h
@@ -288,7 +288,7 @@
" {\n"
" $query=$_GET[\"query\"];\n"
" }\n"
-" end_form($query);\n"
+" end_form(ereg_replace(\"[^[:alnum:]:\\\\.\\\\t ]\", \" \", $query ));\n"
" echo \"&nbsp;\\n<div class=\\\"searchresults\\\">\\n\";\n"
" $results = array();\n"
" $requiredWords = array();\n"
diff --git a/src/sortdict.h b/src/sortdict.h
index b9f6f7c..bc0488d 100644
--- a/src/sortdict.h
+++ b/src/sortdict.h
@@ -168,6 +168,18 @@ class SDict
return item ? m_list->remove(item) : FALSE;
}
+ /*! Take an item out of the dictionary without deleting it */
+ T *take(const char *key)
+ {
+ T *item = m_dict->take(key);
+ if (item)
+ {
+ int i = m_list->find(item);
+ m_list->take(i);
+ }
+ return item;
+ }
+
/*! Sorts the members of the dictionary. First appending a number
* of members and then sorting them is faster (O(NlogN) than using
* inSort() for each member (O(N^2)).
diff --git a/src/translator_br.h b/src/translator_br.h
index e61ef48..56708cf 100644
--- a/src/translator_br.h
+++ b/src/translator_br.h
@@ -15,8 +15,10 @@
* Thanks to Jorge Ramos and others for their contributions.
*
* History:
+ * 20080206:
+ * - Method trTypeContraints() renamed to trTypeConstraints().
* 20071216:
- * - New methods since 1.5.4 updated.
+ * - New methods since 1.5.4 updated.
* 20070914
* - "Translate me" fixed
* - Revision number changed from doxygen version to a date string.
@@ -30,7 +32,7 @@
#ifndef TRANSLATOR_BR_H
#define TRANSLATOR_BR_H
-class TranslatorBrazilian : public TranslatorAdapter_1_5_4
+class TranslatorBrazilian : public Translator
{
public:
@@ -1768,7 +1770,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_5_4
}
/*! C# Type Contraint list */
- virtual QCString trTypeContraints()
+ virtual QCString trTypeConstraints()
{
return "Restrições do Tipo";
}
diff --git a/src/translator_cn.h b/src/translator_cn.h
index 80d7720..0648c6a 100644
--- a/src/translator_cn.h
+++ b/src/translator_cn.h
@@ -24,7 +24,7 @@
*/
#define CN_SPC
-class TranslatorChinese : public TranslatorAdapter_1_5_4
+class TranslatorChinese : public Translator
{
public:
/*! Used for identification of the language. The identification
@@ -1535,7 +1535,258 @@ class TranslatorChinese : public TranslatorAdapter_1_5_4
return "öٱĵ";
}
+//////////////////////////////////////////////////////////////////////////
+// new since 1.5.4 (mainly for Fortran)
+//////////////////////////////////////////////////////////////////////////
+
+ /*! header that is put before the list of member subprograms (Fortran). */
+ virtual QCString trMemberFunctionDocumentationFortran()
+ // { return "Member Function/Subroutine Documentation"; }
+ { return "Աĵ"; }
+
+ /*! This is put above each page as a link to the list of annotated data types (Fortran). */
+ virtual QCString trCompoundListFortran()
+ // { return "Data Types List"; }
+ { return "б"; }
+
+ /*! This is put above each page as a link to all members of compounds (Fortran). */
+ virtual QCString trCompoundMembersFortran()
+ // { return "Data Fields"; }
+ { return ""; }
+
+ /*! This is an introduction to the annotated compound list (Fortran). */
+ virtual QCString trCompoundListDescriptionFortran()
+ // { return "Here are the data types with brief descriptions:"; }
+ { return "Ҫб:"; }
+
+ /*! This is an introduction to the page with all data types (Fortran). */
+ virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
+ {
+ // QCString result="Here is a list of all ";
+ // if (!extractAll)
+ // {
+ // result+="documented ";
+ // }
+ // result+="data types members";
+ // result+=" with links to ";
+ // if (!extractAll)
+ // {
+ // result+="the data structure documentation for each member";
+ // }
+ // else
+ // {
+ // result+="the data types they belong to:";
+ // }
+ // return result;
+ if(!extractAll) {
+ return "ĵͳԱбеÿԱݽṹĵ";
+ } else {
+ return "ͳԱбеԱ͵:";
+ }
+
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * annotated compound index (Fortran).
+ */
+ virtual QCString trCompoundIndexFortran()
+ // { return "Data Type Index"; }
+ { return ""; }
+
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all data types (Fortran).
+ */
+ virtual QCString trTypeDocumentation()
+ // { return "Data Type Documentation"; }
+ { return "ĵ"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) subprograms (Fortran).
+ */
+ virtual QCString trSubprograms()
+ //{ return "Functions/Subroutines"; }
+ { return "/"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for subprograms (Fortran)
+ */
+ virtual QCString trSubprogramDocumentation()
+ //{ return "Function/Subroutine Documentation"; }
+ { return "/ĵ"; }
+
+ /*! This is used in the documentation of a file/namespace/group before
+ * the list of links to documented compounds (Fortran)
+ */
+ virtual QCString trDataTypes()
+ // { return "Data Types"; }
+ { return ""; }
+
+ /*! used as the title of page containing all the index of all modules (Fortran). */
+ virtual QCString trModulesList()
+ // { return "Modules List"; }
+ { return "ģб"; }
+
+ /*! used as an introduction to the modules list (Fortran) */
+ virtual QCString trModulesListDescription(bool extractAll)
+ {
+ // QCString result="Here is a list of all ";
+ // if (!extractAll) result+="documented ";
+ // result+="modules with brief descriptions:";
+ // return result;
+ if(!extractAll) {
+ return "Ҫĵģб:";
+ } else {
+ return "Ҫģб:";
+ }
+ }
+
+ /*! used as the title of the HTML page of a module/type (Fortran) */
+ virtual QCString trCompoundReferenceFortran(const char *clName,
+ ClassDef::CompoundType compType,
+ bool isTemplate)
+ {
+ // QCString result=(QCString)clName;
+ // switch(compType)
+ // {
+ // case ClassDef::Class: result+=" Module"; break;
+ // case ClassDef::Struct: result+=" Type"; break;
+ // case ClassDef::Union: result+=" Union"; break;
+ // case ClassDef::Interface: result+=" Interface"; break;
+ // case ClassDef::Protocol: result+=" Protocol"; break;
+ // case ClassDef::Category: result+=" Category"; break;
+ // case ClassDef::Exception: result+=" Exception"; break;
+ // }
+ // if (isTemplate) result+=" Template";
+ // result+=" Reference";
+ // return result;
+ QCString result=(QCString)clName;
+ switch(compType)
+ {
+ case ClassDef::Class: result+=CN_SPC"ģ"; break;
+ case ClassDef::Struct: result+=CN_SPC""; break;
+ case ClassDef::Union: result+=CN_SPC""; break;
+ case ClassDef::Interface: result+=CN_SPC""; break;
+ case ClassDef::Protocol: result+=CN_SPC"ӿ"; break;
+ case ClassDef::Category: result+=CN_SPC"Ŀ¼"; break;
+ case ClassDef::Exception: result+=CN_SPC"쳣"; break;
+ }
+ if (isTemplate) result+="ģ";
+ result+="οֲ";
+ return result;
+ }
+ /*! used as the title of the HTML page of a module (Fortran) */
+ virtual QCString trModuleReference(const char *namespaceName)
+ {
+ QCString result=namespaceName;
+ // result+=" Module Reference";
+ result += CN_SPC"ģοֲ";
+ return result;
+ }
+
+ /*! This is put above each page as a link to all members of modules. (Fortran) */
+ virtual QCString trModulesMembers()
+ // { return "Module Members"; }
+ { return "ģԱ"; }
+
+ /*! This is an introduction to the page with all modules members (Fortran) */
+ virtual QCString trModulesMemberDescription(bool extractAll)
+ {
+ // QCString result="Here is a list of all ";
+ // if (!extractAll) result+="documented ";
+ // result+="module members with links to ";
+ // if (extractAll)
+ // {
+ // result+="the module documentation for each member:";
+ // }
+ // else
+ // {
+ // result+="the modules they belong to:";
+ // }
+ // return result;
+ if(!extractAll) {
+ return "ĵģԱбеÿԱģĵ";
+ } else {
+ return "ģԱбеԱģ:";
+ }
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * index of all modules (Fortran).
+ */
+ virtual QCString trModulesIndex()
+ // { return "Modules Index"; }
+ { return "ģ"; }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trModule(bool, bool)
+ {
+ // QCString result((first_capital ? "Module" : "module"));
+ // if (!singular) result+="s";
+ // return result;
+ return "ģ";
+ }
+ /*! This is put at the bottom of a module documentation page and is
+ * followed by a list of files that were used to generate the page.
+ */
+ virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
+ bool)
+ { // here s is one of " Module", " Struct" or " Union"
+ // single is true implies a single file
+ // QCString result=(QCString)"The documentation for this ";
+ // switch(compType)
+ // {
+ // case ClassDef::Class: result+="module"; break;
+ // case ClassDef::Struct: result+="type"; break;
+ // case ClassDef::Union: result+="union"; break;
+ // case ClassDef::Interface: result+="interface"; break;
+ // case ClassDef::Protocol: result+="protocol"; break;
+ // case ClassDef::Category: result+="category"; break;
+ // case ClassDef::Exception: result+="exception"; break;
+ // }
+ // result+=" was generated from the following file";
+ // if (single) result+=":"; else result+="s:";
+ // return result;
+ QCString result="";
+ switch(compType)
+ {
+ case ClassDef::Class: result+=CN_SPC"ģ"; break;
+ case ClassDef::Struct: result+=CN_SPC""; break;
+ case ClassDef::Union: result+=CN_SPC""; break;
+ case ClassDef::Interface: result+=CN_SPC""; break;
+ case ClassDef::Protocol: result+=CN_SPC"ӿ"; break;
+ case ClassDef::Category: result+=CN_SPC"Ŀ¼"; break;
+ case ClassDef::Exception: result+=CN_SPC"쳣"; break;
+ }
+ result+="ĵļ:";
+ return result;
+ }
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trType(bool, bool)
+ {
+ return "";
+ }
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trSubprogram(bool, bool)
+ {
+ return "ӳ";
+ }
+
+ /*! C# Type Constraint list */
+ virtual QCString trTypeConstraints()
+ {
+ return "";
+ }
};
#endif
diff --git a/src/translator_de.h b/src/translator_de.h
index 1bbe711..99e4e2d 100644
--- a/src/translator_de.h
+++ b/src/translator_de.h
@@ -111,13 +111,16 @@
// 2006/06/12 Jens Seidel (jensseidel@users.sourceforge.net)
// - Updated for "new since 1.4.6" version
//
+// 2008/02/04 Jens Seidel (jensseidel@users.sourceforge.net)
+// - Updated for "new since 1.5.4" version
+//
// Todo:
// - see FIXME
#ifndef TRANSLATOR_DE_H
#define TRANSLATOR_DE_H
-class TranslatorGerman : public TranslatorAdapter_1_5_4
+class TranslatorGerman : public Translator
{
public:
@@ -1663,6 +1666,206 @@ class TranslatorGerman : public TranslatorAdapter_1_5_4
virtual QCString trEnumerationValueDocumentation()
{ return "Enumerator-Dokumentation"; }
+//////////////////////////////////////////////////////////////////////////
+// new since 1.5.4 (mainly for Fortran)
+//////////////////////////////////////////////////////////////////////////
+
+ /*! header that is put before the list of member subprograms (Fortran). */
+ virtual QCString trMemberFunctionDocumentationFortran()
+ { return "Elementfunktionen/Unterroutinen-Dokumentation"; }
+
+ /*! This is put above each page as a link to the list of annotated data types (Fortran). */
+ virtual QCString trCompoundListFortran()
+ { return "Datentyp-Liste"; }
+
+ /*! This is put above each page as a link to all members of compounds (Fortran). */
+ virtual QCString trCompoundMembersFortran()
+ { return "Datenfelder"; }
+
+ /*! This is an introduction to the annotated compound list (Fortran). */
+ virtual QCString trCompoundListDescriptionFortran()
+ { return "Hier folgen die Datentypen mit Kurzbeschreibungen:"; }
+
+ /*! This is an introduction to the page with all data types (Fortran). */
+ virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
+ {
+ QCString result="Hier folgt eine Liste aller ";
+ if (!extractAll)
+ {
+ result+="dokumentierten ";
+ }
+ result+="Datentypelemente";
+ result+=" mit Links ";
+ if (!extractAll)
+ {
+ result+="zur Datenstruktur-Dokumentation fr jedes Element";
+ }
+ else
+ {
+ result+="zu den Datentypen, zu denen sie gehren:";
+ }
+ return result;
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * annotated compound index (Fortran).
+ */
+ virtual QCString trCompoundIndexFortran()
+ { return "Datentyp-Index"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all data types (Fortran).
+ */
+ virtual QCString trTypeDocumentation()
+ { return "Datentyp-Dokumentation"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) subprograms (Fortran).
+ */
+ virtual QCString trSubprograms()
+ { return "Funktionen/Unterroutinen"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for subprograms (Fortran)
+ */
+ virtual QCString trSubprogramDocumentation()
+ { return "Funktionen/Unterroutinen-Dokumentation"; }
+
+ /*! This is used in the documentation of a file/namespace/group before
+ * the list of links to documented compounds (Fortran)
+ */
+ virtual QCString trDataTypes()
+ { return "Datentypen"; }
+
+ /*! used as the title of page containing all the index of all modules (Fortran). */
+ virtual QCString trModulesList()
+ { return "Modulliste"; }
+
+ /*! used as an introduction to the modules list (Fortran) */
+ virtual QCString trModulesListDescription(bool extractAll)
+ {
+ QCString result="Hier folgt eine Liste aller ";
+ if (!extractAll) result+="dokumentierten ";
+ result+="Module mit ihren Kurzbeschreibungen:";
+ return result;
+ }
+
+ /*! used as the title of the HTML page of a module/type (Fortran) */
+ virtual QCString trCompoundReferenceFortran(const char *clName,
+ ClassDef::CompoundType compType,
+ bool isTemplate)
+ {
+ QCString result=(QCString)clName;
+ result += "-";
+ switch(compType)
+ {
+ case ClassDef::Class: result+="Modul"; break;
+ case ClassDef::Struct: result+="Typ"; break;
+ case ClassDef::Union: result+="Union"; break;
+ case ClassDef::Interface: result+="Interface"; break;
+ case ClassDef::Protocol: result+="Protokoll"; break;
+ case ClassDef::Category: result+="Kategorie"; break;
+ case ClassDef::Exception: result+="Ausnahmen"; break;
+ }
+ if (isTemplate) result+="-Template";
+ result+="-Referenz";
+ return result;
+ }
+ /*! used as the title of the HTML page of a module (Fortran) */
+ virtual QCString trModuleReference(const char *namespaceName)
+ {
+ QCString result=namespaceName;
+ result+="-Modul-Referenz";
+ return result;
+ }
+
+ /*! This is put above each page as a link to all members of modules. (Fortran) */
+ virtual QCString trModulesMembers()
+ { return "Modul-Elemente"; }
+
+ /*! This is an introduction to the page with all modules members (Fortran) */
+ virtual QCString trModulesMemberDescription(bool extractAll)
+ {
+ QCString result="Hier folgt eine Liste aller ";
+ if (!extractAll) result+="dokumentierten ";
+ result+="Modulelemente mit Links ";
+ if (extractAll)
+ {
+ result+="zur Moduldokumentation fr jedes Element:";
+ }
+ else
+ {
+ result+="zu den Modulen, zu denen sie gehren:";
+ }
+ return result;
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * index of all modules (Fortran).
+ */
+ virtual QCString trModulesIndex()
+ { return "Modul-Index"; }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trModule(bool /*first_capital*/, bool singular)
+ {
+ QCString result("Modul");
+ if (!singular) result+="e";
+ return result;
+ }
+ /*! This is put at the bottom of a module documentation page and is
+ * followed by a list of files that were used to generate the page.
+ */
+ virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
+ bool single)
+ {
+ // single is true implies a single file
+ QCString result=(QCString)"Die Dokumentation fr ";
+ switch(compType)
+ {
+ case ClassDef::Class: result+="dieses Modul"; break;
+ case ClassDef::Struct: result+="diesen Typ"; break;
+ case ClassDef::Union: result+="diese Union"; break;
+ case ClassDef::Interface: result+="dieses Interface"; break;
+ case ClassDef::Protocol: result+="dieses Protokoll"; break;
+ case ClassDef::Category: result+="diese Kategorie"; break;
+ case ClassDef::Exception: result+="diese Ausnahme"; break;
+ }
+ if (single)
+ result+=" wurde aus der folgenden Datei erzeugt:";
+ else
+ result+=" wurde aus den folgenden Dateien erzeugt:";
+ return result;
+ }
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trType(bool /*first_capital*/, bool singular)
+ {
+ QCString result("Typ");
+ if (!singular) result+="en";
+ return result;
+ }
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trSubprogram(bool /*first_capital*/, bool singular)
+ {
+ QCString result("Unterprogramm");
+ if (!singular) result+="e";
+ return result;
+ }
+
+ /*! C# Type Constraint list */
+ virtual QCString trTypeConstraints()
+ {
+ return "Type Constraints";
+ }
};
diff --git a/src/translator_es.h b/src/translator_es.h
index 7ae0072..6d146ab 100644
--- a/src/translator_es.h
+++ b/src/translator_es.h
@@ -22,6 +22,7 @@
* some words haven't got translate in spanish.
* Updated from 1.3.8 to 1.4.6 by Guillermo Ballester Valor (May-05-2006)
* Updated fron 1.4.6 to 1.5.1 by Bartomeu Creus Navarro (22-enero-2007)
+ * Updated fron 1.5.1 to 1.5.5 by Bartomeu Creus Navarro (5-febrero-2008)
*/
#ifndef TRANSLATOR_ES_H
@@ -181,7 +182,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
/*! This is put above each page as a link to all members of compounds. */
virtual QCString trCompoundMembers()
{
- if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Campos de datos";
}
@@ -189,7 +190,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "Miembros de las clases";
}
- }
+ }
/*! This is put above each page as a link to all members of files. */
virtual QCString trFileMembers()
@@ -219,7 +220,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
/*! This is an introduction to the class hierarchy. */
virtual QCString trClassHierarchyDescription()
{ return "Esta lista de herencias esta ordenada "
- "aproximadamente por orden alfabtico:";
+ "aproximadamente por orden alfabtico:";
}
/*! This is an introduction to the list with all files. */
@@ -233,8 +234,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
/*! This is an introduction to the annotated compound list. */
virtual QCString trCompoundListDescription()
- {
-
+ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Lista de estructuras con una breve descripcin:";
@@ -506,6 +506,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
result+=(QCString)" por";
return result;
}
+
/*! This is part of the sentence used in the standard footer of each page.
*/
virtual QCString trWrittenBy()
@@ -550,7 +551,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
/*! this text is generated when the \\exception command is used. */
virtual QCString trExceptions()
{ return "Excepciones"; }
-
+
/*! this text is used in the title page of a LaTeX document. */
virtual QCString trGeneratedBy()
{ return "Generado por"; }
@@ -558,7 +559,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990307
//////////////////////////////////////////////////////////////////////////
-
+
/*! used as the title of page containing all the index of all namespaces. */
virtual QCString trNamespaceList()
{ return "Lista de namespace"; }
@@ -577,38 +578,38 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
*/
virtual QCString trFriends()
{ return "Amigas"; }
-
+
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
//////////////////////////////////////////////////////////////////////////
-
+
/*! used in the class documentation as a header before the list of all
* related classes
*/
virtual QCString trRelatedFunctionDocumentation()
{ return "Documentacin de las funciones relacionadas y clases amigas"; }
-
+
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
//////////////////////////////////////////////////////////////////////////
/*! used as the title of the HTML page of a class/struct/union */
virtual QCString trCompoundReference(const char *clName,
- ClassDef::CompoundType compType,
- bool isTemplate)
+ ClassDef::CompoundType compType,
+ bool isTemplate)
{
- QCString result="Referencia de ";
+ QCString result="Referencia de";
+ if (isTemplate) result+=" la plantilla de";
switch(compType)
{
- case ClassDef::Class: result+="la Clase "; break;
- case ClassDef::Struct: result+="la Estructura "; break;
- case ClassDef::Union: result+="la Unin "; break;
- case ClassDef::Interface: result+="la Interfaz "; break;
- case ClassDef::Protocol: result+="el Protocolo "; break;
- case ClassDef::Category: result+="la Categoria "; break;
- case ClassDef::Exception: result+="la Excepcin "; break;
+ case ClassDef::Class: result+=" la Clase "; break;
+ case ClassDef::Struct: result+=" la Estructura "; break;
+ case ClassDef::Union: result+=" la Unin "; break;
+ case ClassDef::Interface: result+=" la Interfaz "; break;
+ case ClassDef::Protocol: result+="l Protocolo "; break;
+ case ClassDef::Category: result+=" la Categoria "; break;
+ case ClassDef::Exception: result+=" la Excepcin "; break;
}
- if (isTemplate) result+=" <template>";
result+=(QCString)clName;
return result;
}
@@ -628,28 +629,37 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
result+=namespaceName;
return result;
}
-
+
virtual QCString trPublicMembers()
{ return "Mtodos pblicos"; }
+
virtual QCString trPublicSlots()
{ return "Slots pblicos"; }
+
virtual QCString trSignals()
{ return "Seales"; }
+
virtual QCString trStaticPublicMembers()
{ return "Mtodos pblicos estticos"; }
+
virtual QCString trProtectedMembers()
{ return "Mtodos protegidos"; }
+
virtual QCString trProtectedSlots()
{ return "Slots protegidos"; }
+
virtual QCString trStaticProtectedMembers()
{ return "Mtodos protegidos estticos"; }
+
virtual QCString trPrivateMembers()
{ return "Mtodos privados"; }
+
virtual QCString trPrivateSlots()
{ return "Slots privados"; }
+
virtual QCString trStaticPrivateMembers()
{ return "Mtodos privados estticos"; }
-
+
/*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put.
*/
@@ -674,7 +684,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
}
return result;
}
-
+
/*! used in class documentation to produce a list of base classes,
* if class diagrams are disabled.
*/
@@ -727,13 +737,13 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
* index of all namespaces.
*/
virtual QCString trNamespaceIndex()
- { return "Indice de namespace"; }
+ { return "Indice de namespaces"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all namespaces.
*/
virtual QCString trNamespaceDocumentation()
- { return "Documentacin de namespace"; }
+ { return "Documentacin de namespaces"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990522
@@ -767,9 +777,9 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
case ClassDef::Category: result+="a categora"; break;
case ClassDef::Exception: result+="a excepcin"; break;
}
- result+=" fu generada a partir de";
+ result+=" fue generada a partir de";
if (single) result+="l siguiente fichero:";
- else result+=" los siguientes ficheros:";
+ else result+=" los siguientes ficheros:";
return result;
}
@@ -817,7 +827,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
virtual QCString trDeprecated()
{
- return "Obsoleto";
+ return "Obsoleto";
}
//////////////////////////////////////////////////////////////////////////
@@ -829,63 +839,76 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return (QCString)"Diagrama de colaboracin para "+clName+":";
}
+
/*! this text is put before an include dependency graph */
virtual QCString trInclDepGraph(const char *fName)
{
return (QCString)"Dependencia grfica adjunta para "+fName+":";
}
+
/*! header that is put before the list of constructor/destructors. */
virtual QCString trConstructorDocumentation()
{
return "Documentacin del constructor y destructor";
}
+
/*! Used in the file documentation to point to the corresponding sources. */
virtual QCString trGotoSourceCode()
{
return "Ir al cdigo fuente de este archivo.";
}
+
/*! Used in the file sources to point to the corresponding documentation. */
virtual QCString trGotoDocumentation()
{
return "Ir a la documentacin de este archivo.";
}
+
/*! Text for the \\pre command */
virtual QCString trPrecondition()
{
return "Precondicin";
}
+
/*! Text for the \\post command */
virtual QCString trPostcondition()
{
return "Postcondicin";
}
+
/*! Text for the \\invariant command */
virtual QCString trInvariant()
{
return "Invariante";
}
+
/*! Text shown before a multi-line variable/enum initialization */
virtual QCString trInitialValue()
{
return "Valor inicial:";
}
+
/*! Text used the source code in the file index */
virtual QCString trCode()
{
return "cdigo";
}
+
virtual QCString trGraphicalHierarchy()
{
return "Representacin grfica de la clase";
}
+
virtual QCString trGotoGraphicalHierarchy()
{
return "Ir a la representacin grfica de la jerarqua de la clase";
}
+
virtual QCString trGotoTextualHierarchy()
{
return "Ir a la jerarqua textual de la clase";
}
+
virtual QCString trPageIndex()
{
return "Pgina indice";
@@ -894,15 +917,17 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
//////////////////////////////////////////////////////////////////////////
// new since 1.1.0
//////////////////////////////////////////////////////////////////////////
-
+
virtual QCString trNote()
{
return "Nota";
}
+
virtual QCString trPublicTypes()
{
return "Tipos pblicos";
}
+
virtual QCString trPublicAttribs()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
@@ -914,30 +939,37 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
return "Atributos pblicos";
}
}
+
virtual QCString trStaticPublicAttribs()
{
return "Atributos pblicos estticos";
}
+
virtual QCString trProtectedTypes()
{
return "Tipos protegidos";
}
+
virtual QCString trProtectedAttribs()
{
return "Atributos protegidos";
}
+
virtual QCString trStaticProtectedAttribs()
{
return "Atributos protegidos estticos";
}
+
virtual QCString trPrivateTypes()
{
return "Tipos privados";
}
+
virtual QCString trPrivateAttribs()
{
return "Atributos privados";
}
+
virtual QCString trStaticPrivateAttribs()
{
return "Atributos privados estticos";
@@ -952,6 +984,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "Tareas Pendientes";
}
+
/*! Used as the header of the todo list */
virtual QCString trTodoList()
{
@@ -966,24 +999,28 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "Referenciado por";
}
+
virtual QCString trRemarks()
{
return "Comentarios";
}
+
virtual QCString trAttention()
{
return "Atencin";
}
+
virtual QCString trInclByDepGraph()
{
- return "Este grfico muestra que archivos directa o "
- "indirectamente incluyen a este archivo:";
+ return "Grfico de los archivos que directa o "
+ "indirectamente incluyen a este archivo:";
}
+
virtual QCString trSince()
{
return "Desde";
}
-
+
//////////////////////////////////////////////////////////////////////////
// new since 1.1.5
//////////////////////////////////////////////////////////////////////////
@@ -993,6 +1030,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "Leyenda del Grfico";
}
+
/*! page explaining how the dot graph's should be interpreted
* The %A in the text below are to prevent link to classes called "A".
*/
@@ -1000,10 +1038,10 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return
"Esta pgina explica como interpretar los grficos que son generados "
- "por doxygen.<p>\n"
- "Considere el siguiente ejemplo:\n"
+ "por doxygen.<p>\n"
+ "Considere el siguiente ejemplo:\n"
"\\code\n"
- "/*! Clase invisible por truncamiento */\n"
+ "/*! Clase invisible por truncamiento */\n"
"class Invisible { };\n\n"
"/*! Clase truncada, relacin de herencia escondida */\n"
"class Truncated : public Invisible { };\n\n"
@@ -1013,7 +1051,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
"class PublicBase : public Truncated { };\n\n"
"/*! Clase plantilla */\n"
"template<class T> class Templ { };\n\n"
- "/*! Clase que es heredera usando herencia protegida */\n"
+ "/*! Clase que es heredera usando herencia protegida */\n"
"class ProtectedBase { };\n\n"
"/*! Clase que es heredera usando herencia privada */\n"
"class PrivateBase { };\n\n"
@@ -1037,13 +1075,13 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
"Las cajas en el grfico arriba tienen el significado que sigue:\n"
"<ul>\n"
"<li>Una caja llena negra representa la estructura o clase para la cul"
- "se gener el grfico.\n"
+ "se gener el grfico.\n"
"<li>Una caja con borde negro seala una estructura o clase documentada.\n"
"<li>Una caja con borde griz seala una estructura o clase no documentada.\n"
"<li>una caja con borde rojo seala una estructura o clase documentada"
- " de la cul no toda las relaciones de jerarqua/contenido son "
- "mostradas. El grfico sera truncado si este no calza dentro de los "
- "lmites especificados."
+ " de la cul no toda las relaciones de jerarqua/contenido son "
+ "mostradas. El grfico sera truncado si este no calza dentro de los "
+ "lmites especificados."
"</ul>\n"
"Las flechas tienen el siguiente significado:\n"
"<ul>\n"
@@ -1051,12 +1089,13 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
"<li>Una flecha verde oscura es usada para herencia protegida.\n"
"<li>Una flecha rojo oscura es usada para herencia privada.\n"
"<li>Una flecha segmentada prpura se usa si la clase es contenida o "
- "usada por otra clase. La flecha est etiquetada por la variable "
- "con que se accede a la clase o estructura apuntada. \n"
- "<li>Una flecha segmentada amarilla indica la relacin entre una instancia template y la clase template de la que se ha instanciado."
- " La flecha se etiqueta con los parmetros con que se llama al template.\n"
+ "usada por otra clase. La flecha est etiquetada por la variable "
+ "con que se accede a la clase o estructura apuntada. \n"
+ "<li>Una flecha segmentada amarilla indica la relacin entre una instancia template y la clase template de la que se ha instanciado."
+ " La flecha se etiqueta con los parmetros con que se llama al template.\n"
"</ul>\n";
}
+
/*! text for the link to the legend page */
virtual QCString trLegend()
{
@@ -1066,12 +1105,13 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
//////////////////////////////////////////////////////////////////////////
// new since 1.2.0
//////////////////////////////////////////////////////////////////////////
-
+
/*! Used as a marker that is put before a test item */
virtual QCString trTest()
{
return "Prueba";
}
+
/*! Used as the header of the test list */
virtual QCString trTestList()
{
@@ -1097,6 +1137,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "Propiedades";
}
+
/*! Used as a section header for IDL property documentation */
virtual QCString trPropertyDocumentation()
{
@@ -1119,41 +1160,47 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
return "Clases";
}
}
+
/*! Used as the title of a Java package */
virtual QCString trPackage(const char *name)
{
return (QCString)"Paquetes "+name;
}
+
/*! Title of the package index page */
virtual QCString trPackageList()
{
return "Lista de Paquetes ";
}
+
/*! The description of the package index page */
virtual QCString trPackageListDescription()
{
return "Aqu van los paquetes con una breve descripcin (si et disponible):";
}
+
/*! The link name in the Quick links header for each page */
virtual QCString trPackages()
{
return "Paquetes";
}
+
/*! Text shown before a multi-line define */
virtual QCString trDefineValue()
{
return "Valor:";
}
-
+
//////////////////////////////////////////////////////////////////////////
// new since 1.2.5
//////////////////////////////////////////////////////////////////////////
-
+
/*! Used as a marker that is put before a \\bug item */
virtual QCString trBug()
{
return "Bug";
}
+
/*! Used as the header of the bug list */
virtual QCString trBugList()
{
@@ -1208,7 +1255,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "ndice";
}
-
+
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
@@ -1365,6 +1412,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "Eventos";
}
+
/*! Header used for the documentation section of a class' events. */
virtual QCString trEventDocumentation()
{
@@ -1381,6 +1429,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "Tipos del Paquete";
}
+
/*! Used as a heading for a list of Java class functions with package
* scope.
*/
@@ -1388,6 +1437,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "Funciones del Paquete";
}
+
/*! Used as a heading for a list of static Java class functions with
* package scope.
*/
@@ -1395,6 +1445,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "Funciones Estticas del Paquete";
}
+
/*! Used as a heading for a list of Java class variables with package
* scope.
*/
@@ -1402,6 +1453,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "Atributos del Paquete";
}
+
/*! Used as a heading for a list of static Java class variables with
* package scope.
*/
@@ -1409,7 +1461,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "Atributos Estticos del Paquete";
}
-
+
//////////////////////////////////////////////////////////////////////////
// new since 1.3.1
//////////////////////////////////////////////////////////////////////////
@@ -1421,6 +1473,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "Todo";
}
+
/*! Put in front of the call graph for a function. */
virtual QCString trCallGraph()
{
@@ -1439,6 +1492,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "Buscar";
}
+
/*! This string is used as the title for the page listing the search
* results.
*/
@@ -1446,6 +1500,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
{
return "Resultados de la Bsqueda";
}
+
/*! This string is put just before listing the search results. The
* text can be different depending on the number of documents found.
* Inside the text you can put the special marker $num to insert
@@ -1467,9 +1522,10 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
else
{
return "Se encontraron <b>$num</b> documentos que coinciden con su bsqueda. "
- "Se muestran los mejores resultados primero.";
+ "Se muestran los mejores resultados primero.";
}
}
+
/*! This string is put before the list of matched words, for each search
* result. What follows is the list of words that matched the query.
*/
@@ -1516,22 +1572,26 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
*/
virtual QCString trDirDescription()
{ return "La jeraqua de este directorio est ordenada"
- " alfabticamente, de manera aproximada:";
+ " alfabticamente, de manera aproximada:";
}
/*! This returns the title of a directory page. The name of the
* directory is passed via \a dirName.
*/
virtual QCString trDirReference(const char *dirName)
- { QCString result="Referencia del Directorio "; result+=dirName; return result; }
+ {
+ QCString result="Referencia del Directorio ";
+ result+=dirName;
+ return result;
+ }
/*! This returns the word directory with or without starting capital
* (\a first_capital) and in sigular or plural form (\a singular).
*/
virtual QCString trDir(bool first_capital, bool singular)
{
- QCString result((first_capital ? "Directori" : "directori"));
- if (singular) result+="o"; else result+="os";
+ QCString result((first_capital ? "Directorio" : "directorio"));
+ if (!singular) result+="s";
return result;
}
@@ -1545,8 +1605,8 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
virtual QCString trOverloadText()
{
return "Esta es una funcin miembro sobrecargada que se "
- "suministra por conveniencia. Difiere de la anterior "
- "funcin solamente en los argumentos que acepta.";
+ "suministra por conveniencia. Difiere de la anterior "
+ "funcin solamente en los argumentos que acepta.";
}
//////////////////////////////////////////////////////////////////////////
@@ -1565,6 +1625,214 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4
virtual QCString trEnumerationValueDocumentation()
{ return "Documentacin de los valores de la enumeracin"; }
+//////////////////////////////////////////////////////////////////////////
+// new since 1.5.4 (mainly for Fortran)
+//////////////////////////////////////////////////////////////////////////
+ // De parte de Bartomeu:
+ // No conozco el Fortran, salvo un par de ejercicios en la universidad
+ // hace muchos aos. Por lo tanto, las traducciones son del ingls
+ // al espaol, no de un usuario de Fortran que puede que haya cosas que no
+ // traduzca o traduzca de otra forma. Que los usuarios de Fortran disculpen
+ // y espero se animen a mejorar mi traduccin.
+
+ /*! header that is put before the list of member subprograms (Fortran). */
+ virtual QCString trMemberFunctionDocumentationFortran()
+ { return "Documetacin de miembros Function/Subroutine"; }
+
+ /*! This is put above each page as a link to the list of annotated data types (Fortran). */
+ virtual QCString trCompoundListFortran()
+ { return "Lista de tipos de datos"; }
+
+ /*! This is put above each page as a link to all members of compounds (Fortran). */
+ virtual QCString trCompoundMembersFortran()
+ { return "Etiquetas de datos"; }
+
+ /*! This is an introduction to the annotated compound list (Fortran). */
+ virtual QCString trCompoundListDescriptionFortran()
+ { return "Aqu estn los tipos de datos con una breve descripcin:"; }
+
+ /*! This is an introduction to the page with all data types (Fortran). */
+ virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
+ {
+ QCString result="Aqu est una lista de todos ";
+ result+="los miembros de los tipos de datos ";
+ if (!extractAll)
+ {
+ result+="documentados ";
+ }
+ result+="con enlaces a ";
+ if (!extractAll)
+ {
+ result+="la documentacin de la estructura de datos para cada miembro";
+ }
+ else
+ {
+ result+="los tipos de dato a que pertenece:";
+ }
+ return result;
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * annotated compound index (Fortran).
+ */
+ virtual QCString trCompoundIndexFortran()
+ { return "ndice de tipos de datos"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all data types (Fortran).
+ */
+ virtual QCString trTypeDocumentation()
+ { return "Documentacin de tipos de datos"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) subprograms (Fortran).
+ */
+ virtual QCString trSubprograms()
+ { return "Funciones/Subprogramas"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for subprograms (Fortran)
+ */
+ virtual QCString trSubprogramDocumentation()
+ { return "Documentacin de Funciones/Subprogramas"; }
+
+ /*! This is used in the documentation of a file/namespace/group before
+ * the list of links to documented compounds (Fortran)
+ */
+ virtual QCString trDataTypes()
+ { return "Tipos de datos"; }
+
+ /*! used as the title of page containing all the index of all modules (Fortran). */
+ virtual QCString trModulesList()
+ { return "Lista de mdulos"; }
+
+ /*! used as an introduction to the modules list (Fortran) */
+ virtual QCString trModulesListDescription(bool extractAll)
+ {
+ QCString result="Lista de todos los mdulos ";
+ if (!extractAll) result+="documentados ";
+ result+="con una breve descripcin:";
+ return result;
+ }
+
+ /*! used as the title of the HTML page of a module/type (Fortran) */
+ virtual QCString trCompoundReferenceFortran(const char *clName,
+ ClassDef::CompoundType compType,
+ bool isTemplate)
+ {
+ QCString result="Referencia de";
+ if (isTemplate) result+=" la plantilla de";
+ switch(compType)
+ {
+ case ClassDef::Class: result+="l mdulo"; break;
+ case ClassDef::Struct: result+="l tipo"; break;
+ case ClassDef::Union: result+=" la unin"; break;
+ case ClassDef::Interface: result+=" la interfaz"; break;
+ case ClassDef::Protocol: result+="l protocolo"; break;
+ case ClassDef::Category: result+=" la categora"; break;
+ case ClassDef::Exception: result+=" la excepcin"; break;
+ }
+ result+=(QCString)clName;
+ return result;
+ }
+
+ /*! used as the title of the HTML page of a module (Fortran) */
+ virtual QCString trModuleReference(const char *namespaceName)
+ {
+ QCString result="Referencia mdulo ";
+ result+=namespaceName;
+ return result;
+ }
+
+ /*! This is put above each page as a link to all members of modules. (Fortran) */
+ virtual QCString trModulesMembers()
+ { return "Miembros mdulo"; }
+
+ /*! This is an introduction to the page with all modules members (Fortran) */
+ virtual QCString trModulesMemberDescription(bool extractAll)
+ {
+ QCString result="Lista de todos los miembros del mdulo ";
+ if (!extractAll) result+="documentados ";
+ result+="con enlaces ";
+ if (extractAll)
+ {
+ result+="a la documentacin del mdulo para cada uno:";
+ }
+ else
+ {
+ result+="al mdulo al que pertenecen:";
+ }
+ return result;
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * index of all modules (Fortran).
+ */
+ virtual QCString trModulesIndex()
+ { return "ndice de mdulos"; }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trModule(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Mdulo" : "mdulo"));
+ if (!singular) result+="s";
+ return result;
+ }
+
+ /*! This is put at the bottom of a module documentation page and is
+ * followed by a list of files that were used to generate the page.
+ */
+ virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
+ bool single)
+ { // here s is one of " Module", " Struct" or " Union"
+ // single is true implies a single file
+ QCString result=(QCString)"La documentacin para est";
+ switch(compType)
+ {
+ case ClassDef::Class: result+="e mdulo"; break;
+ case ClassDef::Struct: result+="e tipo"; break;
+ case ClassDef::Union: result+="a unin"; break;
+ case ClassDef::Interface: result+="e interfaz"; break;
+ case ClassDef::Protocol: result+="e protocolo"; break;
+ case ClassDef::Category: result+="a categora"; break;
+ case ClassDef::Exception: result+="a excepcin"; break;
+ }
+ result+=" fue generada de";
+ if (single) result+="l siguiente fichero:";
+ else result+=" los siguientes ficheros:";
+ return result;
+ }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trType(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Tipo" : "tipo"));
+ if (!singular) result+="s";
+ return result;
+ }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trSubprogram(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Subprograma" : "subprograma"));
+ if (!singular) result+="s";
+ return result;
+ }
+
+ /*! C# Type Constraint list */
+ virtual QCString trTypeConstraints()
+ {
+ return "Restriciones de tipo";
+ }
};
diff --git a/src/translator_fa.h b/src/translator_fa.h
index 1a245b2..588b5d4 100644
--- a/src/translator_fa.h
+++ b/src/translator_fa.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2008 by Dimitri van Heesch.
+ * Copyright (C) 1997-2007 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -15,10 +15,12 @@
*
*
* Description : Doxygen Persian Translator
- * Author : Ali Nadalizadeh < nadalisoft @ yahoo . com >
+ * Author : Ali Nadalizadeh < nadalizadeh @ gmail dot com >
* ChangeLog :
- * Thu 06 Jul 2006 11:54:09 PM IRDT <nadalisoft@yahoo.com>
+ * Thu 06 Jul 2006 11:54:09 PM IRDT <nadalizadeh at gmail dot com>
* >> First version of persian language support has been completed.
+ * Mon Feb 4 11:52:09 IRST 2008 <nadalizadeh at gmail dot com>
+ * >> Obsolete methods removed. Translated more string(s) to persian. Upgraded to 1_5_4 adapter.
*
*/
@@ -30,7 +32,7 @@
#define HtmlDivEnd QCString("</div>")
-class TranslatorPersian : public TranslatorAdapter_1_4_6
+class TranslatorPersian : public Translator
{
public:
@@ -133,23 +135,23 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
* parameter s is name of the project name.
*/
virtual QCString trGeneratedAutomatically(const char *s)
- { QCString result="Generated automatically by Doxygen";
- if (s) result+=(QCString)" for "+s;
- result+=" from the source code.";
+ { QCString result="تولید شده توسط نرم افزار دی اکسیژن ";
+ if (s) result+=(QCString)" برای "+s;
+ result+=" از کد برنامه ";
return result;
}
/*! put after an enum name in the list of all members */
virtual QCString trEnumName()
- { return "enum name"; }
+ { return "enum نام"; }
/*! put after an enum value in the list of all members */
virtual QCString trEnumValue()
- { return "enum value"; }
+ { return "enum مقدار"; }
/*! put after an undocumented member in the list of all members */
virtual QCString trDefinedIn()
- { return "defined in"; }
+ { return "تعریف شده در"; }
// quick reference sections
@@ -180,16 +182,12 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
virtual QCString trFileList()
{ return "ليست فايل ها"; }
- /*! This is put above each page as a link to the list of all verbatim headers */
- virtual QCString trHeaderFiles()
- { return "Header Files"; }
-
/*! 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 "Data Fields";
+ return "فضاهای داده ها";
}
else
{
@@ -230,9 +228,9 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
/*! This is an introduction to the list with all files. */
virtual QCString trFileListDescription(bool extractAll)
{
- QCString result="هم اکنون ليست همه ي پرونده ها ";
+ QCString result="ليست همه ي پرونده های ";
if (!extractAll) result+="(مستند شده) ";
- result+="را مشاهده می کنيد :";
+ result+=" :";
return result;
}
@@ -260,8 +258,9 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
}
else
{
- result+="همه ی اعضاء ٫";
+ result+="همه ی اعضاء ";
}
+ result+=" به همراه ارتباطشان با ";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="ساختارهای داده ";
@@ -270,29 +269,14 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
{
result+="كلاس ها ";
}
- result+=" با ارتباطشان با ";
- if (!extractAll)
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
- result+="the struct/union documentation for each field:";
- }
- else
- {
- result+="the class documentation for each member:";
- }
+ result+="و مستندات ساختار داده برای هر عضو ";
}
- else
- {
- if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
- result+="ساختارهای داده ای که به آنها مربوط هستند";
- }
else
- {
- result+="کلاس هايي که به آنها مربوط هستند";
- }
+ {
+ result+="و مستندات کلاس برای هر عضو ";
}
result+="را مشاهده ميکنيد :";
return result;
@@ -301,39 +285,26 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
/*! This is an introduction to the page with all file members. */
virtual QCString trFileMembersDescription(bool extractAll)
{
- QCString result="هم اکنون ليست همه ی توابع ٫ متغيير ها ٫ تعاريف و ... ";
+ QCString result="ليست همه ی توابع ، متغيير ها، تعاريف و ... ";
if (!extractAll) result+="(مستند شده) ";
- result+=" با ارتباط های آنها ";
- if (extractAll)
- result+="به پرونده هايی که به آن مربوط اند را مشاهده می کنيد :";
- else
- result+="به مستنداتشان را می بينيد :";
+ result+=" به همراه ارتباط آنها ";
+ result+="با پرونده هايی که به آن مربوط اند :";
return result;
}
- /*! This is an introduction to the page with the list of all header files. */
- virtual QCString trHeaderFilesDescription()
- { return "Here are the header files that make up the API:"; }
-
/*! This is an introduction to the page with the list of all examples */
virtual QCString trExamplesDescription()
{ return "ليست همه ی مثال ها :"; }
/*! This is an introduction to the page with the list of related pages */
virtual QCString trRelatedPagesDescription()
- { return "Here is a list of all related documentation pages:"; }
+ { return "لیست تمام صفحات و مستندات مربوطه :"; }
/*! This is an introduction to the page with the list of class/file groups */
virtual QCString trModulesDescription()
- { return "Here is a list of all modules:"; }
+ { return "لیست تمام ماژول ها:"; }
- /*! This sentences is used in the annotated class/file lists if no brief
- * description is given.
- */
- virtual QCString trNoDescriptionAvailable()
- { return "هيچ توضيحی موجود نمي باشد"; }
-
// index titles (the project name is prepended for these)
@@ -345,13 +316,13 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
* index of all groups.
*/
virtual QCString trModuleIndex()
- { return "Module Index"; }
+ { return "فهرست ماژول ها"; }
/*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
*/
virtual QCString trHierarchicalIndex()
- { return "Hierarchical Index"; }
+ { return "فهرست سلسله مراتب"; }
/*! This is used in LaTeX as the title of the chapter with the
* annotated compound index.
@@ -360,7 +331,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return "Data Structure Index";
+ return "فهرست ساختار داده ها";
}
else
{
@@ -378,7 +349,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
* the documentation of all groups.
*/
virtual QCString trModuleDocumentation()
- { return "Module Documentation"; }
+ { return "مستندات ماژول"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all classes, structs and unions.
@@ -387,11 +358,11 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return "Data Structure Documentation";
+ return "مستندات ساختار داده ها";
}
else
{
- return "Class Documentation";
+ return "مستندات کلاس ها";
}
}
@@ -399,23 +370,23 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
* the documentation of all files.
*/
virtual QCString trFileDocumentation()
- { return "File Documentation"; }
+ { return "مستندات فایل"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all examples.
*/
virtual QCString trExampleDocumentation()
- { return "Example Documentation"; }
+ { return "مستندات مثال"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all related pages.
*/
virtual QCString trPageDocumentation()
- { return "Page Documentation"; }
+ { return "مستندات صفحه"; }
/*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual()
- { return "Reference Manual"; }
+ { return "راهنمای مرجع"; }
/*! This is used in the documentation of a file as a header before the
* list of defines
@@ -427,7 +398,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
* list of function prototypes
*/
virtual QCString trFuncProtos()
- { return "Function Prototypes"; }
+ { return "پیش تعریف های توابع"; }
/*! This is used in the documentation of a file as a header before the
* list of typedefs
@@ -469,7 +440,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
* of documentation blocks for function prototypes
*/
virtual QCString trFunctionPrototypeDocumentation()
- { return "Function Prototype Documentation"; }
+ { return "مستندات تعاریف اولیه توابع"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs
@@ -543,18 +514,10 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
virtual QCString trForInternalUseOnly()
{ return ".فقط برای استعمال داخلی"; }
- /*! this text is generated when the \\reimp command is used. */
- virtual QCString trReimplementedForInternalReasons()
- { return "Reimplemented for internal reasons; the API is not affected."; }
-
/*! this text is generated when the \\warning command is used. */
virtual QCString trWarning()
{ return "اخطار"; }
- /*! this text is generated when the \\bug command is used. */
- virtual QCString trBugsAndLimitations()
- { return "Bugs and limitations"; }
-
/*! this text is generated when the \\version command is used. */
virtual QCString trVersion()
{ return "نسخه"; }
@@ -565,7 +528,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
/*! this text is generated when the \\return command is used. */
virtual QCString trReturns()
- { return "Returns"; }
+ { return "خروجی"; }
/*! this text is generated when the \\sa command is used. */
virtual QCString trSeeAlso()
@@ -614,7 +577,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
* related classes
*/
virtual QCString trRelatedFunctionDocumentation()
- { return "Friends And Related Function Documentation"; }
+ { return "مستندات توابع مربوط و دوست"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
@@ -634,7 +597,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
case ClassDef::Interface: result=" Interface"; break;
case ClassDef::Protocol: result=" Protocol"; break;
case ClassDef::Category: result=" Category"; break;
- case ClassDef::Exception: result=" Exception"; break;
+ case ClassDef::Exception: result=" استثناء"; break;
}
if (isTemplate) result+=" قالب";
result=QCString(clName) + " مرجع" +result ;
@@ -732,7 +695,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
*/
virtual QCString trReimplementedInList(int numEntries)
{
- return "Reimplemented in "+trWriteList(numEntries)+".";
+ return "تعریف شده است "+trWriteList(numEntries)+"دوباره در ";
}
/*! This is put above each page as a link to all members of namespaces. */
@@ -826,11 +789,6 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991003
//////////////////////////////////////////////////////////////////////////
-
- virtual QCString trSources()
- {
- return "Sources";
- }
virtual QCString trDefinedAtLineInSourceFile()
{
return ".در خط @0 از پرونده @1 تعريف شده است";
@@ -881,12 +839,12 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
/*! Text for the \\pre command */
virtual QCString trPrecondition()
{
- return "Precondition";
+ return "پیش شرط";
}
/*! Text for the \\post command */
virtual QCString trPostcondition()
{
- return "Postcondition";
+ return "پس شرط";
}
/*! Text for the \\invariant command */
virtual QCString trInvariant()
@@ -936,7 +894,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return "Data Fields";
+ return "فضاهای داده ها";
}
else
{
@@ -1005,8 +963,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
}
virtual QCString trInclByDepGraph()
{
- return "This graph shows which files directly or "
- "indirectly include this file:";
+ return "این نمودار فایل هایی را که این فایل را به طور مستقیم یا غیر مستقیم استفاده کرده اند نشان می دهد";
}
virtual QCString trSince()
{
@@ -1125,23 +1082,18 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
/*! Used as a section header for IDL properties */
virtual QCString trProperties()
{
- return "Properties";
+ return "خاصیت ها";
}
/*! Used as a section header for IDL property documentation */
virtual QCString trPropertyDocumentation()
{
- return "Property Documentation";
+ return "مستندات خاصیت";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.4
//////////////////////////////////////////////////////////////////////////
- /*! Used for Java interfaces in the summary section of Java packages */
- virtual QCString trInterfaces()
- {
- return "Interfaces";
- }
/*! Used for Java classes in the summary section of Java packages */
virtual QCString trClasses()
{
@@ -1162,7 +1114,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
/*! Title of the package index page */
virtual QCString trPackageList()
{
- return "Package List";
+ return "لیست بسته ها";
}
/*! The description of the package index page */
virtual QCString trPackageListDescription()
@@ -1172,12 +1124,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
/*! The link name in the Quick links header for each page */
virtual QCString trPackages()
{
- return "Packages";
- }
- /*! Used as a chapter title for Latex & RTF output */
- virtual QCString trPackageDocumentation()
- {
- return "Package Documentation";
+ return "بسته ها";
}
/*! Text shown before a multi-line define */
virtual QCString trDefineValue()
@@ -1319,17 +1266,6 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
* be followed by a single name or by a list of names
* of the category.
*/
- virtual QCString trField(bool first_capital, bool singular)
- {
- QCString result((first_capital ? "Field" : "field"));
- if (!singular) result+="s";
- return result;
- }
-
- /*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
- * of the category.
- */
virtual QCString trGlobal(bool first_capital, bool singular)
{
QCString result((first_capital ? "Global" : "global"));
@@ -1390,7 +1326,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
*/
virtual QCString trRTFTableOfContents()
{
- return "Table of Contents";
+ return "فهرست";
}
//////////////////////////////////////////////////////////////////////////
@@ -1402,7 +1338,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
*/
virtual QCString trDeprecatedList()
{
- return "Deprecated List";
+ return "لیست آیتم های از رده خارج";
}
//////////////////////////////////////////////////////////////////////////
@@ -1430,14 +1366,14 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
*/
virtual QCString trPackageTypes()
{
- return "Package Types";
+ return "انواع بسته ها";
}
/*! Used as a heading for a list of Java class functions with package
* scope.
*/
virtual QCString trPackageMembers()
{
- return "Package Functions";
+ return "توابع بسته ها";
}
/*! Used as a heading for a list of static Java class functions with
* package scope.
@@ -1451,7 +1387,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
*/
virtual QCString trPackageAttribs()
{
- return "Package Attributes";
+ return "خواص بسته ها";
}
/*! Used as a heading for a list of static Java class variables with
* package scope.
@@ -1475,7 +1411,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
/*! Put in front of the call graph for a function. */
virtual QCString trCallGraph()
{
- return "Here is the call graph for this function:";
+ return "نمودار صدا زدن برای این تابع :";
}
//////////////////////////////////////////////////////////////////////////
@@ -1509,7 +1445,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
{
if (numDocuments==0)
{
- return "Sorry, no documents matching your query.";
+ return "متاسفانه هیچ صفحه ای برای جستجو ی شما یافت نشد.";
}
else if (numDocuments==1)
{
@@ -1598,6 +1534,186 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6
"provided for convenience. It differs from the above "
"function only in what argument(s) it accepts.";
}
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.4.6
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This is used to introduce a caller (or called-by) graph */
+ virtual QCString trCallerGraph()
+ {
+ return "نمودار صدا زننده های این تابع:";
+ }
+//////////////////////////////////////////////////////////////////////////
+// new since 1.5.4 (mainly for Fortran)
+//////////////////////////////////////////////////////////////////////////
+
+ /*! header that is put before the list of member subprograms (Fortran). */
+ virtual QCString trMemberFunctionDocumentationFortran()
+ { return "مستندات توابع عضو"; }
+
+ /*! This is put above each page as a link to the list of annotated data types (Fortran). */
+ virtual QCString trCompoundListFortran()
+ { return "لیست ساختار های داده"; }
+
+ /*! This is put above each page as a link to all members of compounds (Fortran). */
+ virtual QCString trCompoundMembersFortran()
+ { return "فیلدهای اطلاعات"; }
+
+ /*! This is an introduction to the annotated compound list (Fortran). */
+ virtual QCString trCompoundListDescriptionFortran()
+ { return "ساختارهای داده به همراه توضیح کوتاه :"; }
+
+ /*! This is an introduction to the page with all data types (Fortran). */
+ virtual QCString trCompoundMembersDescriptionFortran(bool)
+ {
+ return "توضیحات اعضا ساختارها به همراه مستندات ساختار داده ی مربوطه";
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * annotated compound index (Fortran).
+ */
+ virtual QCString trCompoundIndexFortran()
+ { return "Data Type Index"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all data types (Fortran).
+ */
+ virtual QCString trTypeDocumentation()
+ { return "Data Type Documentation"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) subprograms (Fortran).
+ */
+ virtual QCString trSubprograms()
+ { return "توابع و زیربرنامه ها"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for subprograms (Fortran)
+ */
+ virtual QCString trSubprogramDocumentation()
+ { return "مستندات توابع و زیربرنامه ها"; }
+
+ /*! This is used in the documentation of a file/namespace/group before
+ * the list of links to documented compounds (Fortran)
+ */
+ virtual QCString trDataTypes()
+ { return "ساختار های داده"; }
+
+ /*! used as the title of page containing all the index of all modules (Fortran). */
+ virtual QCString trModulesList()
+ { return "لیست ماژول ها"; }
+
+ /*! used as an introduction to the modules list (Fortran) */
+ virtual QCString trModulesListDescription(bool)
+ {
+ QCString result="لیست ماژول ها به همراه توضیحات کوتاه";
+ return result;
+ }
+
+ /*! used as the title of the HTML page of a module/type (Fortran) */
+ virtual QCString trCompoundReferenceFortran(const char *clName,
+ ClassDef::CompoundType compType,
+ bool isTemplate)
+ {
+ QCString result=(QCString)clName;
+ switch(compType)
+ {
+ case ClassDef::Class: result+=" Module"; break;
+ case ClassDef::Struct: result+=" Type"; break;
+ case ClassDef::Union: result+=" Union"; break;
+ case ClassDef::Interface: result+=" Interface"; break;
+ case ClassDef::Protocol: result+=" Protocol"; break;
+ case ClassDef::Category: result+=" Category"; break;
+ case ClassDef::Exception: result+=" Exception"; break;
+ }
+ if (isTemplate) result+=" Template";
+ result+=" Reference";
+ return result;
+ }
+ /*! used as the title of the HTML page of a module (Fortran) */
+ virtual QCString trModuleReference(const char *namespaceName)
+ {
+ QCString result=namespaceName;
+ result+=" Module Reference";
+ return result;
+ }
+
+ /*! This is put above each page as a link to all members of modules. (Fortran) */
+ virtual QCString trModulesMembers()
+ { return "اعضاء ماژول"; }
+
+ /*! This is an introduction to the page with all modules members (Fortran) */
+ virtual QCString trModulesMemberDescription(bool)
+ {
+ QCString result="لیست اعضاء ماژول ها به همراه مستندات ماژول مربوطه";
+ return result;
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * index of all modules (Fortran).
+ */
+ virtual QCString trModulesIndex()
+ { return "Modules Index"; }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trModule(bool, bool singular)
+ {
+ QCString result("ماژول");
+ if (!singular) result+=" ها";
+ return result;
+ }
+ /*! This is put at the bottom of a module documentation page and is
+ * followed by a list of files that were used to generate the page.
+ */
+ virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
+ bool single)
+ { // here s is one of " Module", " Struct" or " Union"
+ // single is true implies a single file
+ QCString result=(QCString)"The documentation for this ";
+ switch(compType)
+ {
+ case ClassDef::Class: result+="module"; break;
+ case ClassDef::Struct: result+="type"; break;
+ case ClassDef::Union: result+="union"; break;
+ case ClassDef::Interface: result+="interface"; break;
+ case ClassDef::Protocol: result+="protocol"; break;
+ case ClassDef::Category: result+="category"; break;
+ case ClassDef::Exception: result+="exception"; break;
+ }
+ result+=" was generated from the following file";
+ if (single) result+=":"; else result+="s:";
+ return result;
+ }
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trType(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Type" : "type"));
+ if (!singular) result+="s";
+ return result;
+ }
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trSubprogram(bool, bool singular)
+ {
+ QCString result("زیربرنامه");
+ if (!singular) result+=" ها ";
+ return result;
+ }
+
+ /*! C# Type Constraint list */
+ virtual QCString trTypeConstraints()
+ {
+ return "Type Constraints";
+ }
};
#endif
diff --git a/src/translator_fr.h b/src/translator_fr.h
index 1ea6d00..45fec16 100644
--- a/src/translator_fr.h
+++ b/src/translator_fr.h
@@ -998,7 +998,7 @@ class TranslatorFrench : public TranslatorAdapter_1_5_4
/*! header that is put before the list of constructor/destructors. */
virtual QCString trConstructorDocumentation()
{
- return "Documentation des contructeurs et destructeur";
+ return "Documentation des constructeurs et destructeur";
}
/*! Used in the file documentation to point to the corresponding sources. */
virtual QCString trGotoSourceCode()
diff --git a/src/translator_kr.h b/src/translator_kr.h
index 5f059c1..026dafd 100644
--- a/src/translator_kr.h
+++ b/src/translator_kr.h
@@ -1617,20 +1617,21 @@ class TranslatorKorean : public Translator
/*! This is an introduction to the page with all data types (Fortran). */
virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
{
- QCString result="Here is a list of all ";
+ QCString result=" ";
if (!extractAll)
{
- result+="documented ";
+ result+="ȭ ";
}
- result+="data types members";
- result+=" with links to ";
+ result+=" Ÿ Ÿ Դϴ. ";
+
+ result+=" ׸ ";
if (!extractAll)
{
- result+="the data structure documentation for each member";
+ result+=" Ÿ ȭ ũ ֽϴ.";
}
else
{
- result+="the data types they belong to:";
+ result+="׵ Ÿ Ÿ ũ ֽϴ. :";
}
return result;
}
diff --git a/src/translator_tw.h b/src/translator_tw.h
index 75fed57..ae5eef0 100644
--- a/src/translator_tw.h
+++ b/src/translator_tw.h
@@ -14,7 +14,7 @@
* input used in their production; they are not affected by this license.
*
* The translation into Chinesetraditional was provided by
- * Daniel YC Lin (daniel@twpda.com) since v1.2.16
+ * Daniel YC Lin (dlin.tw <at> gmail.com) since v1.2.16-v1.5.5
*/
#ifndef TRANSLATOR_TW_H
@@ -41,7 +41,7 @@
// Translator class (by the local maintainer) when the localized
// translator is made up-to-date again.
-class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6
+class TranslatorChinesetraditional : public Translator
{
public:
@@ -191,10 +191,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6
virtual QCString trFileList()
{ return "ɮצC"; }
- /*! This is put above each page as a link to the list of all verbatim headers */
- virtual QCString trHeaderFiles()
- { return "Yɮ"; }
-
/*! This is put above each page as a link to all members of compounds. */
virtual QCString trCompoundMembers()
{
@@ -326,10 +322,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6
return result;
}
- /*! This is an introduction to the page with the list of all header files. */
- virtual QCString trHeaderFilesDescription()
- { return "զAPIY:"; }
-
/*! This is an introduction to the page with the list of all examples */
virtual QCString trExamplesDescription()
{ return "ҦdҦC:"; }
@@ -342,12 +334,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6
virtual QCString trModulesDescription()
{ return "ҦҲզC:"; }
- /*! This sentences is used in the annotated class/file lists if no brief
- * description is given.
- */
- virtual QCString trNoDescriptionAvailable()
- { return "SiΪyz"; }
-
// index titles (the project name is prepended for these)
@@ -557,18 +543,10 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6
virtual QCString trForInternalUseOnly()
{ return "ȨѤϥ."; }
- /*! this text is generated when the \\reimp command is used. */
- virtual QCString trReimplementedForInternalReasons()
- { return "]]s@; vTAPI."; }
-
/*! this text is generated when the \\warning command is used. */
virtual QCString trWarning()
{ return "ĵi"; }
- /*! this text is generated when the \\bug command is used. */
- virtual QCString trBugsAndLimitations()
- { return "Τέ"; }
-
/*! this text is generated when the \\version command is used. */
virtual QCString trVersion()
{ return ""; }
@@ -646,8 +624,8 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6
case ClassDef::Struct: result+=" c"; break;
case ClassDef::Union: result+=" pX"; break;
case ClassDef::Interface: result+=" "; break;
- case ClassDef::Protocol: result+=" protocol"; break; // translate me!
- case ClassDef::Category: result+=" category"; break; // translate me!
+ case ClassDef::Protocol: result+=" w"; break;
+ case ClassDef::Category: result+=" "; break;
case ClassDef::Exception: result+=" ҥ~"; break;
}
if (isTemplate) result+=" ˪";
@@ -805,8 +783,8 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6
case ClassDef::Struct: result+="c(structure)"; break;
case ClassDef::Union: result+="pX(union)"; break;
case ClassDef::Interface: result+="(interface)"; break;
- case ClassDef::Protocol: result+="protocol"; break; // translate me!
- case ClassDef::Category: result+="category"; break; // translate me!
+ case ClassDef::Protocol: result+="w(protocol)"; break;
+ case ClassDef::Category: result+="(category)"; break;
case ClassDef::Exception: result+="ҥ~(exception)"; break;
}
result+=" OѤUCɮפ";
@@ -843,10 +821,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6
// new since 0.49-991003
//////////////////////////////////////////////////////////////////////////
- virtual QCString trSources()
- {
- return "lX";
- }
virtual QCString trDefinedAtLineInSourceFile()
{
return "wqb @1 ɮפ @0 .";
@@ -1153,11 +1127,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6
// new since 1.2.4
//////////////////////////////////////////////////////////////////////////
- /*! Used for Java interfaces in the summary section of Java packages */
- virtual QCString trInterfaces()
- {
- return "";
- }
/*! Used for Java classes in the summary section of Java packages */
virtual QCString trClasses()
{
@@ -1190,11 +1159,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6
{
return "Packages";
}
- /*! Used as a chapter title for Latex & RTF output */
- virtual QCString trPackageDocumentation()
- {
- return "Package";
- }
+
/*! Text shown before a multi-line define */
virtual QCString trDefineValue()
{
@@ -1323,15 +1288,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6
* be followed by a single name or by a list of names
* of the category.
*/
- virtual QCString trField(bool /*first_capital*/, bool /*singular*/)
- {
- return QCString("");
- }
-
- /*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
- * of the category.
- */
virtual QCString trGlobal(bool /*first_capital*/, bool /*singular*/)
{
return QCString("");
@@ -1593,6 +1549,211 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6
return "oO@ӬFKQʩҴ overload ơA"
"ubѼƤWAPe@ӨƤP.";
}
+//////////////////////////////////////////////////////////////////////////
+// new since 1.4.6
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This is used to introduce a caller (or called-by) graph */
+ virtual QCString trCallerGraph()
+ {
+ return "IsƪƦC:";
+ }
+
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.5.4 (mainly for Fortran)
+//////////////////////////////////////////////////////////////////////////
+
+ /*! header that is put before the list of member subprograms (Fortran). */
+ virtual QCString trMemberFunctionDocumentationFortran()
+ { return "/l{ "; }
+
+ /*! This is put above each page as a link to the list of annotated data types (Fortran). */
+ virtual QCString trCompoundListFortran()
+ { return "ƫAC"; }
+
+ /*! This is put above each page as a link to all members of compounds (Fortran). */
+ virtual QCString trCompoundMembersFortran()
+ { return ""; }
+
+ /*! This is an introduction to the annotated compound list (Fortran). */
+ virtual QCString trCompoundListDescriptionFortran()
+ { return "ƫA²uC:"; }
+
+ /*! This is an introduction to the page with all data types (Fortran). */
+ virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
+ {
+ QCString result="BCXҦ";
+ if (!extractAll)
+ {
+ result+="";
+ }
+ result+="ƫO";
+ result+=" as ";
+ if (!extractAll)
+ {
+ result+="CӦƪƵc";
+ }
+ else
+ {
+ result+="Lݩ󪺸ƫO";
+ }
+ return result;
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * annotated compound index (Fortran).
+ */
+ virtual QCString trCompoundIndexFortran()
+ { return "ƫO"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all data types (Fortran).
+ */
+ virtual QCString trTypeDocumentation()
+ { return "ƫO"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) subprograms (Fortran).
+ */
+ virtual QCString trSubprograms()
+ { return "/l{"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for subprograms (Fortran)
+ */
+ virtual QCString trSubprogramDocumentation()
+ { return "/l{ "; }
+
+ /*! This is used in the documentation of a file/namespace/group before
+ * the list of links to documented compounds (Fortran)
+ */
+ virtual QCString trDataTypes()
+ { return "ƫO"; }
+
+ /*! used as the title of page containing all the index of all modules (Fortran). */
+ virtual QCString trModulesList()
+ { return "ҲզC"; }
+
+ /*! used as an introduction to the modules list (Fortran) */
+ virtual QCString trModulesListDescription(bool extractAll)
+ {
+ QCString result="BCXҦ";
+ if (!extractAll) result+="";
+ result+="Ҳժa²u:";
+ return result;
+ }
+
+ /*! used as the title of the HTML page of a module/type (Fortran) */
+ virtual QCString trCompoundReferenceFortran(const char *clName,
+ ClassDef::CompoundType compType,
+ bool isTemplate)
+ {
+ QCString result=(QCString)clName;
+ switch(compType)
+ {
+ case ClassDef::Class: result+="Ҳ"; break;
+ case ClassDef::Struct: result+="A"; break;
+ case ClassDef::Union: result+="pX"; break;
+ case ClassDef::Interface: result+=""; break;
+ case ClassDef::Protocol: result+="ij"; break;
+ case ClassDef::Category: result+=""; break;
+ case ClassDef::Exception: result+="ҥ~"; break;
+ }
+ if (isTemplate) result+=" Template";
+ result+="ѦҤ";
+ return result;
+ }
+ /*! used as the title of the HTML page of a module (Fortran) */
+ virtual QCString trModuleReference(const char *namespaceName)
+ {
+ QCString result=namespaceName;
+ result+="ҲհѦҤ";
+ return result;
+ }
+
+ /*! This is put above each page as a link to all members of modules. (Fortran) */
+ virtual QCString trModulesMembers()
+ { return "Ҳզ"; }
+
+ /*! This is an introduction to the page with all modules members (Fortran) */
+ virtual QCString trModulesMemberDescription(bool extractAll)
+ {
+ QCString result="BCXҦ";
+ if (!extractAll) result+="";
+ result+="Ҳզas";
+ if (extractAll)
+ {
+ result+="CӨƪҲդ:";
+ }
+ else
+ {
+ result+="L̩ݪҲ:";
+ }
+ return result;
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * index of all modules (Fortran).
+ */
+ virtual QCString trModulesIndex()
+ { return "Ҳկ"; }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trModule(bool /* first_capital */, bool /* singular */)
+ {
+ QCString result("Ҳ");
+ return result;
+ }
+ /*! This is put at the bottom of a module documentation page and is
+ * followed by a list of files that were used to generate the page.
+ */
+ virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
+ bool /* single */)
+ { // here s is one of " Module", " Struct" or " Union"
+ // single is true implies a single file
+ QCString result=(QCString)"o";
+ switch(compType)
+ {
+ case ClassDef::Class: result+="Ҳ"; break;
+ case ClassDef::Struct: result+="A"; break;
+ case ClassDef::Union: result+="pX"; break;
+ case ClassDef::Interface: result+=""; break;
+ case ClassDef::Protocol: result+="ij"; break;
+ case ClassDef::Category: result+=""; break;
+ case ClassDef::Exception: result+="ҥ~"; break;
+ }
+ result+="ѤUCɮײ";
+ return result;
+ }
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trType(bool /* first_capital */, bool /* singular */)
+ {
+ QCString result("O");
+ return result;
+ }
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trSubprogram(bool /* first_capital */, bool /* singular */)
+ {
+ QCString result("l{");
+ return result;
+ }
+
+ /*! C# Type Constraint list */
+ virtual QCString trTypeConstraints()
+ {
+ return "O";
+ }
+
};
#endif
diff --git a/src/translatordecoder.h b/src/translatordecoder.h
index 48cf7cd..4614863 100644
--- a/src/translatordecoder.h
+++ b/src/translatordecoder.h
@@ -215,11 +215,11 @@ class TranslatorDecoder : public Translator
QCString trCompounds()
{ return toUtf8(m_translator->trCompounds()); }
QCString trGeneratedAt(const char *date,const char *projName)
- { return toUtf8(m_translator->trGeneratedAt(date,fromUtf8(projName))); }
+ { return toUtf8(m_translator->trGeneratedAt(fromUtf8(date),fromUtf8(projName))); }
QCString trWrittenBy()
{ return toUtf8(m_translator->trWrittenBy()); }
QCString trClassDiagram(const char *clName)
- { return toUtf8(m_translator->trClassDiagram(clName)); }
+ { return toUtf8(m_translator->trClassDiagram(fromUtf8(clName))); }
QCString trForInternalUseOnly()
{ return toUtf8(m_translator->trForInternalUseOnly()); }
QCString trWarning()
@@ -264,13 +264,13 @@ class TranslatorDecoder : public Translator
QCString trCompoundReference(const char *clName,
ClassDef::CompoundType compType,
bool isTemplate)
- { return toUtf8(m_translator->trCompoundReference(clName,compType,isTemplate)); }
+ { return toUtf8(m_translator->trCompoundReference(fromUtf8(clName),compType,isTemplate)); }
QCString trFileReference(const char *fileName)
{ return toUtf8(m_translator->trFileReference(fromUtf8(fileName))); }
QCString trNamespaceReference(const char *namespaceName)
- { return toUtf8(m_translator->trNamespaceReference(namespaceName)); }
+ { return toUtf8(m_translator->trNamespaceReference(fromUtf8(namespaceName))); }
QCString trPublicMembers()
{ return toUtf8(m_translator->trPublicMembers()); }
@@ -363,7 +363,7 @@ class TranslatorDecoder : public Translator
//////////////////////////////////////////////////////////////////////////
QCString trCollaborationDiagram(const char *clName)
- { return toUtf8(m_translator->trCollaborationDiagram(clName)); }
+ { return toUtf8(m_translator->trCollaborationDiagram(fromUtf8(clName))); }
QCString trInclDepGraph(const char *fName)
{ return toUtf8(m_translator->trInclDepGraph(fromUtf8(fName))); }
QCString trConstructorDocumentation()
@@ -484,7 +484,7 @@ class TranslatorDecoder : public Translator
QCString trClasses()
{ return toUtf8(m_translator->trClasses()); }
QCString trPackage(const char *name)
- { return toUtf8(m_translator->trPackage(name)); }
+ { return toUtf8(m_translator->trPackage(fromUtf8(name))); }
QCString trPackageList()
{ return toUtf8(m_translator->trPackageList()); }
QCString trPackageListDescription()
@@ -686,9 +686,9 @@ class TranslatorDecoder : public Translator
QCString trCompoundReferenceFortran(const char *clName,
ClassDef::CompoundType compType,
bool isTemplate)
- { return toUtf8(m_translator->trCompoundReferenceFortran(clName,compType,isTemplate)); }
+ { return toUtf8(m_translator->trCompoundReferenceFortran(fromUtf8(clName),compType,isTemplate)); }
QCString trModuleReference(const char *namespaceName)
- { return toUtf8(m_translator->trModuleReference(namespaceName)); }
+ { return toUtf8(m_translator->trModuleReference(fromUtf8(namespaceName))); }
QCString trModulesMembers()
{ return toUtf8(m_translator->trModulesMembers()); }
QCString trModulesMemberDescription(bool extractAll)
diff --git a/src/vhdlscanner.l b/src/vhdlscanner.l
index f669188..8fbd21b 100644
--- a/src/vhdlscanner.l
+++ b/src/vhdlscanner.l
@@ -247,7 +247,7 @@ void addSignals(const char* str,int line, Entry *e,const char *comment=0)
for (int k=1;k<count;k++)
{
- printf("adding '%s' '%s'\n",ql.at(0)->data(),ql.at(k)->data());
+ //printf("adding '%s' '%s'\n",ql.at(0)->data(),ql.at(k)->data());
Entry *pTemp=new Entry;
initEntry(pTemp);
pTemp->startLine = line;
diff --git a/src/xmldocvisitor.cpp b/src/xmldocvisitor.cpp
index 8c194ea..88ded55 100644
--- a/src/xmldocvisitor.cpp
+++ b/src/xmldocvisitor.cpp
@@ -778,6 +778,8 @@ void XmlDocVisitor::visitPre(DocParamSect *s)
m_t << "retval"; break;
case DocParamSect::Exception:
m_t << "exception"; break;
+ case DocParamSect::TemplateParam:
+ m_t << "templateparam"; break;
default:
ASSERT(0);
}