summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2000-09-10 15:26:30 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2000-09-10 15:26:30 (GMT)
commit69ead65c747f7fa7817c0a754dfe2662004037a1 (patch)
tree19b06b53ec293b6d690ff3d82f256f67576dee1c
parent92663f876495b7d98aa85d604d0149f8b73c8dc7 (diff)
downloadDoxygen-69ead65c747f7fa7817c0a754dfe2662004037a1.zip
Doxygen-69ead65c747f7fa7817c0a754dfe2662004037a1.tar.gz
Doxygen-69ead65c747f7fa7817c0a754dfe2662004037a1.tar.bz2
Release-20000910
-rw-r--r--INSTALL4
-rw-r--r--README4
-rw-r--r--VERSION2
-rw-r--r--addon/configgen/configgen.cpp25
-rw-r--r--doc/config.doc49
-rw-r--r--doc/faq.doc10
-rw-r--r--doc/features.doc2
-rw-r--r--doc/index.doc4
-rw-r--r--doc/language.doc35
-rw-r--r--packages/rpm/doxygen.spec2
-rw-r--r--src/classdef.cpp22
-rw-r--r--src/classdef.h1
-rw-r--r--src/config.h3
-rw-r--r--src/config.l23
-rw-r--r--src/definition.h2
-rw-r--r--src/doc.l9
-rw-r--r--src/dot.cpp2
-rw-r--r--src/doxygen.cpp58
-rw-r--r--src/doxygen.h1
-rw-r--r--src/doxygen.pro.in2
-rw-r--r--src/entry.cpp6
-rw-r--r--src/entry.h6
-rw-r--r--src/filedef.cpp6
-rw-r--r--src/filedef.h7
-rw-r--r--src/index.cpp6
-rw-r--r--src/language.cpp5
-rw-r--r--src/latexgen.cpp3
-rw-r--r--src/memberdef.cpp2
-rw-r--r--src/memberdef.h4
-rw-r--r--src/memberlist.cpp3
-rw-r--r--src/rtfgen.cpp10
-rw-r--r--src/scanner.l101
-rw-r--r--src/translator.h93
-rw-r--r--src/translator_cz.h434
-rw-r--r--src/translator_hr.h121
-rw-r--r--src/translator_kr.h803
-rw-r--r--src/util.cpp34
-rw-r--r--src/util.h1
38 files changed, 1434 insertions, 471 deletions
diff --git a/INSTALL b/INSTALL
index 907ad31..f96948f 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,6 +1,6 @@
-DOXYGEN Version 1.2.1-20000829
+DOXYGEN Version 1.2.1-20000910
Please read the installation section of the manual for instructions.
--------
-Dimitri van Heesch (29 August 2000)
+Dimitri van Heesch (10 September 2000)
diff --git a/README b/README
index ee24629..1bb9390 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-DOXYGEN Version 1.2.1-20000829
+DOXYGEN Version 1.2.1-20000910
Please read INSTALL for compilation instructions.
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
-Dimitri van Heesch (29 August 2000)
+Dimitri van Heesch (10 September 2000)
diff --git a/VERSION b/VERSION
index a63044a..80d7a6d 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.2.1-20000829
+1.2.1-20000910
diff --git a/addon/configgen/configgen.cpp b/addon/configgen/configgen.cpp
index 48146ee..203a041 100644
--- a/addon/configgen/configgen.cpp
+++ b/addon/configgen/configgen.cpp
@@ -775,7 +775,7 @@ void init()
"information to generate all constant output in the proper language. \n"
"The default language is English, other supported languages are: \n"
"Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, \n"
- "Spanish, Russian, Croatian, Polish, and Portuguese.\n"
+ "Korean, Hungarian, Spanish, Russian, Croatian, Polish, and Portuguese.\n"
);
ConfigString::addFixedValue("outputLanguage","English");
ConfigString::addFixedValue("outputLanguage","Dutch");
@@ -785,7 +785,9 @@ void init()
ConfigString::addFixedValue("outputLanguage","Swedish");
ConfigString::addFixedValue("outputLanguage","German");
ConfigString::addFixedValue("outputLanguage","Finnish");
+ ConfigString::addFixedValue("outputLanguage","Hungarian");
ConfigString::addFixedValue("outputLanguage","Japanese");
+ ConfigString::addFixedValue("outputLanguage","Korean");
ConfigString::addFixedValue("outputLanguage","Spanish");
ConfigString::addFixedValue("outputLanguage","Russian");
ConfigString::addFixedValue("outputLanguage","Croatian");
@@ -920,11 +922,11 @@ void init()
"CASE_SENSE_NAMES",
"TRUE",
"determines if output can be mixed case.",
- "If the CASE_SENSE_NAMES tag is set to NO (the default) then Doxygen \n"
- "will only generate file names in lower case letters. If set to \n"
- "YES upper case letters are also allowed. This is useful if you have \n"
- "classes or files whose names only differ in case and if your file system \n"
- "supports case sensitive file names. \n"
+ "If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate \n"
+ "file names in lower case letters. If set to YES upper case letters are also \n"
+ "allowed. This is useful if you have classes or files whose names only differ \n"
+ "in case and if your file system supports case sensitive file names. Windows \n"
+ "users are adviced to set this option to NO.\n"
);
ConfigBool::add( "hideScopeNames",
"HIDE_SCOPE_NAMES",
@@ -983,6 +985,15 @@ void init()
"alphabetically by member name. If set to NO the members will appear in \n"
"declaration order. \n"
);
+ ConfigBool::add( "distributeDocFlag",
+ "DISTRIBUTE_GROUP_DOC",
+ "FALSE",
+ "distribute docs over member group?",
+ "If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC \n"
+ "tag is set to YES, then doxygen will reuse the documentation of the first \n"
+ "member in the group (if any) for the other members of the group. By default \n"
+ "all members of a group must be documented explicitly.\n"
+ );
ConfigInt::add( "tabSize",
"TAB_SIZE",
"8",
@@ -1019,7 +1030,7 @@ void init()
"",
"list of aliases",
"This tag can be used to specify a number of aliases that acts \n"
- "as commands in the documentation. An alias has the form \"\\name=value\". \n"
+ "as commands in the documentation. An alias has the form \"name=value\". \n"
"For example adding \"sideeffect=\\par Side Effects:\\n\" will allow you to \n"
"put the command \\sideeffect (or @sideeffect) in the documentation, which \n"
"will result in a user defined paragraph with heading \"Side Effects:\". \n"
diff --git a/doc/config.doc b/doc/config.doc
index 063f634..a73463b 100644
--- a/doc/config.doc
+++ b/doc/config.doc
@@ -66,6 +66,7 @@ followed by the descriptions of the tags grouped by category.
\begin{multicols}{3}
\begin{CompactList}
\endlatexonly
+<li> \refitem cfg_aliases ALIASES
<li> \refitem cfg_allexternals ALLEXTERNALS
<li> \refitem cfg_alphabetical_index ALPHABETICAL_INDEX
<li> \refitem cfg_always_detailed_sec ALWAYS_DETAILED_SEC
@@ -81,6 +82,7 @@ followed by the descriptions of the tags grouped by category.
<li> \refitem cfg_compact_latex COMPACT_LATEX
<li> \refitem cfg_compact_rtf COMPACT_RTF
<li> \refitem cfg_disable_index DISABLE_INDEX
+<li> \refitem cfg_distribute_group_doc DISTRIBUTE_GROUP_DOC
<li> \refitem cfg_doc_abspath DOC_ABSPATH
<li> \refitem cfg_doc_url DOC_URL
<li> \refitem cfg_dot_path DOT_PATH
@@ -104,6 +106,8 @@ followed by the descriptions of the tags grouped by category.
<li> \refitem cfg_generate_man GENERATE_MAN
<li> \refitem cfg_generate_rtf GENERATE_RTF
<li> \refitem cfg_generate_tagfile GENERATE_TAGFILE
+<li> \refitem cfg_generate_testlist GENERATE_TESTLIST
+<li> \refitem cfg_generate_todolist GENERATE_TODOLIST
<li> \refitem cfg_graphical_hierarchy GRAPHICAL_HIERARCHY
<li> \refitem cfg_have_dot HAVE_DOT
<li> \refitem cfg_hide_scope_names HIDE_SCOPE_NAMES
@@ -203,8 +207,8 @@ followed by the descriptions of the tags grouped by category.
documentation generated by doxygen is written. Doxygen will use this
information to generate all constant output in the proper language.
The default language is English, other supported languages are:
- Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese,
- Spanish, Russian, Croatian, Polish and Portuguese.
+ Dutch, French, Italian, Czech, Swedish, German, Finnish, Hungarian, Japanese,
+ Korean, Spanish, Russian, Croatian, Polish and Portuguese.
\anchor cfg_disable_index
<dt>\c DISABLE_INDEX <dd>
@@ -392,6 +396,14 @@ followed by the descriptions of the tags grouped by category.
alphabetically by member name. If set to \c NO the members will appear in
declaration order.
+\anchor cfg_distribute_group_doc
+<dt>\c DISTRIBUTE_GROUP_DOC <dd>
+ \addindex DISTRIBUTE_GROUP_DOC
+ If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+ tag is set to YES, then doxygen will reuse the documentation of the first
+ member in the group (if any) for the other members of the group. By default
+ all members of a group must be documented explicitly.
+
\anchor cfg_tab_size
<dt>\c TAB_SIZE <dd>
\addindex TAB_SIZE
@@ -405,6 +417,39 @@ followed by the descriptions of the tags grouped by category.
documentation sections, marked by \ref cmdif "\\if" \<section-label\> ...
\ref cmdendif "\\endif" blocks.
+\anchor cfg_generate_todolist
+<dt>\c GENERATE_TODOLIST <dd>
+ \addindex GENERATE_TODOLIST
+ The GENERATE_TODOLIST tag can be used to enable (YES) or
+ disable (NO) the todo list. This list is created by
+ putting \ref cmdtodo "\\todo"
+ commands in the documentation.
+
+\anchor cfg_generate_testlist
+<dt>\c GENERATE_TESTLIST <dd>
+ \addindex GENERATE_TESTLIST
+ The GENERATE_TESTLIST tag can be used to enable (YES) or
+ disable (NO) the test list. This list is created by
+ putting \ref cmdtest "\\test" commands in the documentation.
+
+\anchor cfg_aliases
+<dt>\c ALIASES <dd>
+ \addindex ALIASES
+ This tag can be used to specify a number of aliases that acts
+ as commands in the documentation. An alias has the form
+\verbatim
+ name=value
+\endverbatim
+ For example adding
+\verbatim
+ "sideeffect=\par Side Effects:\n"
+\endverbatim
+ will allow you to
+ put the command \\sideeffect (or \@sideeffect) in the documentation, which
+ will result in a user defined paragraph with heading "Side Effects:".
+ You can put \\n's in the value part of an alias to insert newlines.
+ Predefined commands cannot be overwritten using aliases.
+
</dl>
\subsection messages_input Options related to warning and progress messages
diff --git a/doc/faq.doc b/doc/faq.doc
index 4606a19..6464c0b 100644
--- a/doc/faq.doc
+++ b/doc/faq.doc
@@ -169,6 +169,16 @@ EXCLUDE_PATTERNS = */test/*
Put a \% in front of the class name. Like this: \%MyClass. Doxygen will then
remove the % and keep the word unlinked.
+<li><b>Help! I get the cryptic message
+ "input buffer overflow, can't enlarge buffer because scanner uses REJECT"</b>
+
+This error happens when doxygen lexical scanner has a rules that matches
+more than 16K input character in one go. I've seen this happening
+on a very large generated file (>16K lines), where the built-in preprocessor
+converted it into an empty file (with >16K of newlines). Another case
+where this might happen is if you have lines in you code with more than
+16K characters.
+
</ol>
\htmlonly
diff --git a/doc/features.doc b/doc/features.doc
index 3298b0b..1fe463f 100644
--- a/doc/features.doc
+++ b/doc/features.doc
@@ -23,7 +23,7 @@
<li>Requires very little overhead from the writer of the documentation.
Plain text will do, but for more fancy or structured output HTML tags
and/or some of doxygen's special commands can be used.
-<li>Supports C++, (Corba and Microsoft) IDL and C sources.
+<li>Supports C++, (Corba, Microsoft, and KDE-DCOP) IDL and C sources.
<li>Supports documentation of files, namespaces, classes, structs, unions,
templates, variables, functions, typedefs, enums and defines.
<li>JavaDoc (1.1), Qt-Doc, and KDOC compatible.
diff --git a/doc/index.doc b/doc/index.doc
index 9c7619f..0f7023f 100644
--- a/doc/index.doc
+++ b/doc/index.doc
@@ -49,8 +49,8 @@ Documents produced by Doxygen are derivative works derived from the
input used in their production; they are not affected by this license.
<h2>Introduction</h2>
-Doxygen is a documentation system for C++, IDL (Corba and Microsoft flavors)
-and C.
+Doxygen is a documentation system for C++, IDL
+(Corba, Microsoft and KDE-DCOP flavors) and C.
It can help you in three ways:
<ol>
diff --git a/doc/language.doc b/doc/language.doc
index 0c19968..b75e843 100644
--- a/doc/language.doc
+++ b/doc/language.doc
@@ -22,9 +22,9 @@ Doxygen has support for multiple languages. This means that the text fragments t
doxygen generates can changed into languages other than English
(the default) at configuration time.
<p>
-Currently, supported languages are English, French, Czech, Dutch,
-Swedish, Italian, German and Japanese. A number
-of people have volunteered to add support for other languages as well.
+Currently, supported languages are English, French, Czech, Dutch, Spannish,
+Swedish, Russian, Czech, Croatian, Italian, Hungarian, Finnish, German and Japanese,
+and Korean.
Here is a list of the languages and their current maintainers:
<p>
@@ -157,6 +157,30 @@ Here is a list of the languages and their current maintainers:
</TR>
<TR BGCOLOR="#ffffff">
<TD>
+ Korean
+ </TD>
+ <TD>
+ Richard Kim
+ </TD>
+ <TD>
+ <a href="mailto:ryk@NOSPAM.dspwiz.com">
+ ryk@NOSPAM.dspwiz.com</a>
+ </TD>
+ </TR>
+ <TR BGCOLOR="#ffffff">
+ <TD>
+ Hungarian
+ </TD>
+ <TD>
+ Földvári György
+ </TD>
+ <TD>
+ <a href="mailto:foldvari@NOSPAM.diatronltd.com">
+ foldvari@NOSPAM.diatronltd.com</a>
+ </TD>
+ </TR>
+ <TR BGCOLOR="#ffffff">
+ <TD>
Croatian
</TD>
<TD>
@@ -167,7 +191,6 @@ Here is a list of the languages and their current maintainers:
boris.bralo@NOSPAM.zg.tel.hr</a>
</TD>
</TR>
-
<TR BGCOLOR="#ffffff">
<TD>
Polish
@@ -225,6 +248,10 @@ Here is a list of the languages and their current maintainers:
\hline
Russian & Nickolay Semyonov & {\tt snob@int.spb.ru} \\
\hline
+ Korean & Richard Kim & {\\tt ryk@dspwiz.com} \\
+ \hline
+ Hungarian & Földvári György & {\\tt foldvari@diatronltd.com} \\
+ \hline
Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} \\
\hline
Polish & Grzegorz Kowal & {\tt g\_kowal@poczta.onet.pl} \\
diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec
index d27b856..e22a714 100644
--- a/packages/rpm/doxygen.spec
+++ b/packages/rpm/doxygen.spec
@@ -1,5 +1,5 @@
Name: doxygen
-Version: 1.2.1-20000829
+Version: 1.2.1-20000910
Summary: documentation system for C, C++ and IDL
Release: 1
Source0: doxygen-%{version}.src.tar.gz
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 84e047d..a54724c 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -178,6 +178,7 @@ void ClassDef::addMembersToMemberGroup()
addMemberListToGroup(&pubAttribs);
addMemberListToGroup(&pubSlots);
addMemberListToGroup(&signals);
+ addMemberListToGroup(&dcopMethods);
addMemberListToGroup(&pubStaticMembers);
addMemberListToGroup(&pubStaticAttribs);
addMemberListToGroup(&proTypes);
@@ -219,11 +220,15 @@ void ClassDef::insertMember(MemberDef *md)
{
switch (md->memberType())
{
- case MemberDef::Signal:
+ case MemberDef::Signal: // Qt specific
signals.append(md);
md->setSectionList(&signals);
break;
- case MemberDef::Slot:
+ case MemberDef::DCOP: // KDE2 specific
+ dcopMethods.append(md);
+ md->setSectionList(&dcopMethods);
+ break;
+ case MemberDef::Slot: // Qt specific
switch (md->protection())
{
case Protected:
@@ -358,7 +363,8 @@ void ClassDef::insertMember(MemberDef *md)
{
switch (md->memberType())
{
- case MemberDef::Signal:
+ case MemberDef::Signal: // fall through
+ case MemberDef::DCOP:
if (Config::sortMembersFlag)
functionMembers.inSort(md);
else
@@ -511,6 +517,7 @@ void ClassDef::computeAnchors()
setAnchors('s',&pubTypes);
setAnchors('t',&proTypes);
setAnchors('u',&priTypes);
+ setAnchors('v',&dcopMethods);
}
void ClassDef::distributeMemberGroupDocumentation()
@@ -857,6 +864,8 @@ void ClassDef::writeDocumentation(OutputList &ol)
pubAttribs.writeDeclarations(ol,this,0,0,0,theTranslator->trPublicAttribs(),0);
pubSlots.writeDeclarations(ol,this,0,0,0,theTranslator->trPublicSlots(),0);
signals.writeDeclarations(ol,this,0,0,0,theTranslator->trSignals(),0);
+ dcopMethods.writeDeclarations(ol,this,0,0,0,theTranslator->trDCOPMethods(),0);
+
// static public members
pubStaticMembers.writeDeclarations(ol,this,0,0,0,theTranslator->trStaticPublicMembers(),0);
pubStaticAttribs.writeDeclarations(ol,this,0,0,0,theTranslator->trStaticPublicAttribs(),0);
@@ -1066,7 +1075,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.docify(stripFromPath(path));
}
- if (fd->generateSource() || (!fd->isReference() && Config::sourceBrowseFlag))
+ if (fd->generateSourceFile())
{
ol.writeObjectLink(0,fd->sourceName(),0,fd->name());
}
@@ -1340,6 +1349,7 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup)
pubAttribs.writePlainDeclarations(ol,this,0,0,0);
pubSlots.writePlainDeclarations(ol,this,0,0,0);
signals.writePlainDeclarations(ol,this,0,0,0);
+ dcopMethods.writePlainDeclarations(ol,this,0,0,0);
pubStaticMembers.writePlainDeclarations(ol,this,0,0,0);
pubStaticAttribs.writePlainDeclarations(ol,this,0,0,0);
proTypes.writePlainDeclarations(ol,this,0,0,0);
@@ -1856,7 +1866,8 @@ void ClassDef::generateXML(QTextStream &t)
}
int numMembers =
pubTypes.count()+pubMembers.count()+pubAttribs.count()+
- pubSlots.count()+signals.count()+pubStaticMembers.count()+
+ pubSlots.count()+signals.count()+dcopMethods.count()+
+ pubStaticMembers.count()+
pubStaticAttribs.count()+proTypes.count()+proMembers.count()+
proAttribs.count()+proSlots.count()+proStaticMembers.count()+
proStaticAttribs.count()+priTypes.count()+priMembers.count()+
@@ -1870,6 +1881,7 @@ void ClassDef::generateXML(QTextStream &t)
generateXMLSection(t,&pubAttribs,"public-attrib");
generateXMLSection(t,&pubSlots,"public-slot");
generateXMLSection(t,&signals,"signal");
+ generateXMLSection(t,&dcopMethods,"dcop-func");
generateXMLSection(t,&pubStaticMembers,"public-static-func");
generateXMLSection(t,&pubStaticAttribs,"public-static-attrib");
generateXMLSection(t,&proTypes,"protected-type");
diff --git a/src/classdef.h b/src/classdef.h
index 168d731..39c29d1 100644
--- a/src/classdef.h
+++ b/src/classdef.h
@@ -167,6 +167,7 @@ class ClassDef : public Definition
MemberList related;
MemberList signals;
MemberList friends;
+ MemberList dcopMethods;
/* member list by types */
MemberList constructors;
diff --git a/src/config.h b/src/config.h
index 7160451..bb5449e 100644
--- a/src/config.h
+++ b/src/config.h
@@ -1,4 +1,4 @@
-/* This file was generated by configgen on Fri Aug 25 21:22:11 2000
+/* This file was generated by configgen on Sat Sep 2 10:51:52 2000
* from config_templ.h
*
* DO NOT EDIT!
@@ -64,6 +64,7 @@ struct Config
static bool inheritDocsFlag; // inheritance of documentation enabled?
static bool inlineInfoFlag; // show info about inline members?
static bool sortMembersFlag; // sort members alphabetically?
+ static bool distributeDocFlag; // distribute docs over member group?
static int tabSize; // number of spaces in a tab
static QStrList sectionFilterList; // list of section filters that are enabled
static bool generateTodoList; // do we want a todo list?
diff --git a/src/config.l b/src/config.l
index 1965934..5a6f318 100644
--- a/src/config.l
+++ b/src/config.l
@@ -1,4 +1,4 @@
-/* This file was generated by configgen on Fri Aug 25 21:22:11 2000
+/* This file was generated by configgen on Sat Sep 2 10:51:52 2000
* from config_templ.l
*
* DO NOT EDIT!
@@ -101,6 +101,7 @@ bool Config::autoBriefFlag = TRUE;
bool Config::inheritDocsFlag = TRUE;
bool Config::inlineInfoFlag = TRUE;
bool Config::sortMembersFlag = TRUE;
+bool Config::distributeDocFlag = FALSE;
int Config::tabSize = 8;
QStrList Config::sectionFilterList;
bool Config::generateTodoList = TRUE;
@@ -357,6 +358,7 @@ static void readIncludeFile(const char *incName)
<Start>"INHERIT_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::inheritDocsFlag; }
<Start>"INLINE_INFO"[ \t]*"=" { BEGIN(GetBool); b=&Config::inlineInfoFlag; }
<Start>"SORT_MEMBER_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::sortMembersFlag; }
+<Start>"DISTRIBUTE_GROUP_DOC"[ \t]*"=" { BEGIN(GetBool); b=&Config::distributeDocFlag; }
<Start>"TAB_SIZE"[ \t]*"=" { BEGIN(GetString); s=&tabSizeString; s->resize(0); }
<Start>"ENABLED_SECTIONS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::sectionFilterList; l->clear(); elemStr=""; }
<Start>"ENABLED_SECTIONS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::sectionFilterList; elemStr=""; }
@@ -587,6 +589,7 @@ void dumpConfig()
printf("inheritDocsFlag=`%d'\n",Config::inheritDocsFlag);
printf("inlineInfoFlag=`%d'\n",Config::inlineInfoFlag);
printf("sortMembersFlag=`%d'\n",Config::sortMembersFlag);
+ printf("distributeDocFlag=`%d'\n",Config::distributeDocFlag);
printf("tabSize=`%d'\n",Config::tabSize);
{
char *is=Config::sectionFilterList.first();
@@ -824,6 +827,7 @@ void Config::init()
Config::inheritDocsFlag = TRUE;
Config::inlineInfoFlag = TRUE;
Config::sortMembersFlag = TRUE;
+ Config::distributeDocFlag = FALSE;
Config::tabSize = 8;
Config::sectionFilterList.clear();
Config::generateTodoList = TRUE;
@@ -1011,7 +1015,7 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# information to generate all constant output in the proper language. \n";
t << "# The default language is English, other supported languages are: \n";
t << "# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, \n";
- t << "# Spanish, Russian, Croatian, Polish, and Portuguese.\n";
+ t << "# Korean, Hungarian, Spanish, Russian, Croatian, Polish, and Portuguese.\n";
t << "\n";
}
t << "OUTPUT_LANGUAGE = ";
@@ -1280,6 +1284,18 @@ void writeTemplateConfig(QFile *f,bool sl)
if (!sl)
{
t << "\n";
+ t << "# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC \n";
+ t << "# tag is set to YES, then doxygen will reuse the documentation of the first \n";
+ t << "# member in the group (if any) for the other members of the group. By default \n";
+ t << "# all members of a group must be documented explicitly.\n";
+ t << "\n";
+ }
+ t << "DISTRIBUTE_GROUP_DOC = ";
+ writeBoolValue(t,Config::distributeDocFlag);
+ t << "\n";
+ if (!sl)
+ {
+ t << "\n";
t << "# The TAB_SIZE tag can be used to set the number of spaces in a tab. \n";
t << "# Doxygen uses this value to replace tabs by spaces in code fragments. \n";
t << "\n";
@@ -1323,10 +1339,11 @@ void writeTemplateConfig(QFile *f,bool sl)
{
t << "\n";
t << "# This tag can be used to specify a number of aliases that acts \n";
- t << "# as commands in the documentation. An alias has the form \"\\name=value\". \n";
+ t << "# as commands in the documentation. An alias has the form \"name=value\". \n";
t << "# For example adding \"sideeffect=\\par Side Effects:\\n\" will allow you to \n";
t << "# put the command \\sideeffect (or @sideeffect) in the documentation, which \n";
t << "# will result in a user defined paragraph with heading \"Side Effects:\". \n";
+ t << "# You can put \\n's in the value part of an alias to insert newlines. \n";
t << "# Predefined commands cannot be overwritten using aliases. \n";
t << "\n";
}
diff --git a/src/definition.h b/src/definition.h
index bc8c6c7..e8f71d7 100644
--- a/src/definition.h
+++ b/src/definition.h
@@ -69,7 +69,7 @@ class Definition
virtual bool isLinkableInProject() = 0;
virtual bool isLinkable() = 0;
- bool isReference() { return !ref.isEmpty(); }
+ bool isReference() const { return !ref.isEmpty(); }
void setReference(const char *r) { ref=r; }
QCString getReference() { return ref; }
diff --git a/src/doc.l b/src/doc.l
index 695a07b..c69d4d8 100644
--- a/src/doc.l
+++ b/src/doc.l
@@ -2043,7 +2043,14 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
}
else
{
- outDoc->newParagraph();
+ if (insidePre)
+ {
+ outDoc->docify(yytext);
+ }
+ else
+ {
+ outDoc->newParagraph();
+ }
}
if (inBlock()) endBlock();
}
diff --git a/src/dot.cpp b/src/dot.cpp
index 3b61864..157b62a 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -1205,7 +1205,7 @@ void DotInclDepGraph::buildGraph(DotNode *n,FileDef *fd,int distance)
{
in = bfd->absFilePath();
doc = bfd->isLinkableInProject();
- src = bfd->generateSource() || (!bfd->isReference() && Config::sourceBrowseFlag);
+ src = bfd->generateSourceFile();
}
if (doc || src)
{
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 981d7d6..56c45ba 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -90,6 +90,7 @@ FileNameDict *includeNameDict; // include names
FileNameDict *exampleNameDict; // examples
FileNameDict *imageNameDict; // images
StringDict typedefDict(1009); // all typedefs
+StringDict namespaceAliasDict(257); // all namespace aliases
GroupDict groupDict(257); // all groups
FormulaDict formulaDict(1009); // all formulas
FormulaDict formulaNameDict(1009); // the label name of all formulas
@@ -502,7 +503,7 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root)
// generate code for header
{
cd->setIncludeFile(fd,iName,local);
- fd->setGenerateSource(TRUE);
+ //fd->setGenerateSource(TRUE);
}
else // put #include in the class documentation without link
{
@@ -526,7 +527,7 @@ static bool addNamespace(Entry *root,ClassDef *cd)
//printf("addNameSpace() trying: %s\n",e->name.data());
QCString nsName = stripAnnonymousNamespaceScope(e->name);
if (!nsName.isEmpty() && nsName.at(0)!='@' &&
- (nd=namespaceDict[nsName])
+ (nd=getResolvedNamespace(nsName))
)
{
cd->setNamespace(nd);
@@ -688,7 +689,7 @@ static void buildClassList(Entry *root)
// namespace is part of the class name
if (!found && !namespaceName.isEmpty())
{
- NamespaceDef *nd = namespaceDict[namespaceName];
+ NamespaceDef *nd = getResolvedNamespace(namespaceName);
if (nd)
{
cd->setNamespace(nd);
@@ -850,7 +851,7 @@ static void findUsingDirectives(Entry *root)
nsName=root->parent->name.copy();
if (!nsName.isEmpty())
{
- nd = namespaceDict[nsName];
+ nd = getResolvedNamespace(nsName);
}
}
@@ -864,7 +865,7 @@ static void findUsingDirectives(Entry *root)
QCString scope=scopeOffset>0 ?
nsName.left(scopeOffset)+"::" : QCString();
//printf("Trying with scope=`%s'\n",scope.data());
- usingNd = namespaceDict[scope+root->name];
+ usingNd = getResolvedNamespace(scope+root->name);
if (scopeOffset==0)
{
scopeOffset=-1;
@@ -959,7 +960,7 @@ static void findUsingDeclarations(Entry *root)
scName=root->parent->name.copy();
if (!scName.isEmpty())
{
- nd = namespaceDict[scName];
+ nd = getResolvedNamespace(scName);
}
}
@@ -1175,7 +1176,7 @@ static MemberDef *addVariableToFile(
QCString nscope=removeAnnonymousScopes(scope);
if (!nscope.isEmpty())
{
- nd = namespaceDict[nscope];
+ nd = getResolvedNamespace(nscope);
}
}
QCString def;
@@ -1221,7 +1222,7 @@ static MemberDef *addVariableToFile(
NamespaceDef *nd=0;
if (!nscope.isEmpty())
{
- nd = namespaceDict[nscope];
+ nd = getResolvedNamespace(nscope);
}
if (nd==0 || md->getNamespaceDef()==nd)
// variable already in the scope
@@ -1540,10 +1541,11 @@ static void buildMemberList(Entry *root)
if (name.left(2)=="::") name=name.right(name.length()-2);
MemberDef::MemberType mtype;
- if (isFriend) mtype=MemberDef::Friend;
- else if (root->sig) mtype=MemberDef::Signal;
- else if (root->slot) mtype=MemberDef::Slot;
- else mtype=MemberDef::Function;
+ if (isFriend) mtype=MemberDef::Friend;
+ else if (root->mtype==Signal) mtype=MemberDef::Signal;
+ else if (root->mtype==Slot) mtype=MemberDef::Slot;
+ else if (root->mtype==DCOP) mtype=MemberDef::DCOP;
+ else mtype=MemberDef::Function;
// strip redundant template specifier for constructors
if ((i=name.find('<'))!=-1 && name.find('>')!=-1)
@@ -1699,7 +1701,7 @@ static void buildMemberList(Entry *root)
NamespaceDef *rnd = 0;
if (!root->parent->name.isEmpty())
{
- rnd = namespaceDict[root->parent->name];
+ rnd = getResolvedNamespace(root->parent->name);
}
FileDef *fd = md->getFileDef();
QCString nsName,rnsName;
@@ -1811,7 +1813,7 @@ static void buildMemberList(Entry *root)
QCString nscope=removeAnnonymousScopes(root->parent->name);
if (!nscope.isEmpty())
{
- nd = namespaceDict[nscope];
+ nd = getResolvedNamespace(nscope);
}
}
@@ -3197,7 +3199,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
bool ambig;
FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
NamespaceDef *nd=0;
- if (!namespaceName.isEmpty()) nd=namespaceDict[namespaceName];
+ if (!namespaceName.isEmpty()) nd=getResolvedNamespace(namespaceName);
tcd = findClassDefinition(fd,nd,scopeName,classTempList);
if (cd && tcd==cd) // member's classes match
@@ -3367,8 +3369,9 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
if (unique)
{
MemberDef::MemberType mtype;
- if (root->sig) mtype=MemberDef::Signal;
- else if (root->slot) mtype=MemberDef::Slot;
+ if (root->mtype==Signal) mtype=MemberDef::Signal;
+ else if (root->mtype==Slot) mtype=MemberDef::Slot;
+ else if (root->mtype==DCOP) mtype=MemberDef::DCOP;
else mtype=MemberDef::Function;
// new overloaded member function
@@ -3440,10 +3443,12 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
if (newMember) // need to create a new member
{
MemberDef::MemberType mtype;
- if (root->sig)
+ if (root->mtype==Signal)
mtype=MemberDef::Signal;
- else if (root->slot)
+ else if (root->mtype==Slot)
mtype=MemberDef::Slot;
+ else if (root->mtype==DCOP)
+ mtype=MemberDef::DCOP;
else
mtype=MemberDef::Function;
@@ -3679,7 +3684,7 @@ static void findEnums(Entry *root)
{
QCString scope=root->name.left(i); // extract scope
name=root->name.right(root->name.length()-i-2); // extract name
- if ((cd=getClass(scope))==0) nd=namespaceDict[scope];
+ if ((cd=getClass(scope))==0) nd=getResolvedNamespace(scope);
}
else // no scope, check the scope in which the docs where found
{
@@ -3688,7 +3693,7 @@ static void findEnums(Entry *root)
) // found enum docs inside a compound
{
QCString scope=root->parent->name;
- if ((cd=getClass(scope))==0) nd=namespaceDict[scope];
+ if ((cd=getClass(scope))==0) nd=getResolvedNamespace(scope);
}
name=root->name.copy();
}
@@ -4103,7 +4108,9 @@ static void generateFileSources()
for (;(fd=fni.current());++fni)
{
bool src = !fd->isReference() &&
- (fd->generateSource() || Config::sourceBrowseFlag);
+ (Config::verbatimHeaderFlag
+ //fd->generateSource()
+ || Config::sourceBrowseFlag);
if (src)
{
msg("Generating code for file %s...\n",fd->name().data());
@@ -5883,8 +5890,11 @@ int main(int argc,char **argv)
msg("Adding members to member groups.\n");
addMembersToMemberGroup();
- msg("Distributing member group documentation.\n");
- distributeMemberGroupDocumentation();
+ if (Config::distributeDocFlag)
+ {
+ msg("Distributing member group documentation.\n");
+ distributeMemberGroupDocumentation();
+ }
msg("Building full member lists recursively...\n");
buildCompleteMemberLists();
diff --git a/src/doxygen.h b/src/doxygen.h
index 7b41698..efe2b83 100644
--- a/src/doxygen.h
+++ b/src/doxygen.h
@@ -91,6 +91,7 @@ extern QTextStream tagFile;
extern SectionDict sectionDict;
extern FileNameList inputNameList;
extern StringDict typedefDict;
+extern StringDict namespaceAliasDict;
extern GroupList groupList;
extern GroupDict groupDict;
extern NamespaceList namespaceList;
diff --git a/src/doxygen.pro.in b/src/doxygen.pro.in
index 6de8edd..91549dd 100644
--- a/src/doxygen.pro.in
+++ b/src/doxygen.pro.in
@@ -26,7 +26,7 @@ HEADERS = doxygen.h scanner.h doc.h classdef.h classlist.h memberdef.h \
translator_nl.h translator_se.h translator_cz.h translator_fr.h \
translator_it.h formula.h debug.h membergroup.h htmlhelp.h \
translator_ru.h translator_pl.h dot.h rtfgen.h xml.h xml_dtd.h \
- reflist.h page.h sortdict.h translator_hu.h
+ reflist.h page.h sortdict.h translator_hu.h translator_kr.h
SOURCES = doxygen.cpp scanner.cpp doc.cpp classdef.cpp classlist.cpp \
memberdef.cpp membername.cpp index.cpp memberlist.cpp \
entry.cpp logos.cpp instdox.cpp message.cpp code.cpp \
diff --git a/src/entry.cpp b/src/entry.cpp
index 1c4ef6d..3e4bc89 100644
--- a/src/entry.cpp
+++ b/src/entry.cpp
@@ -48,8 +48,7 @@ Entry::Entry(const Entry &e)
//printf("Copy New Entry %d\n",num);
section = e.section;
protection = e.protection;
- sig = e.sig;
- slot = e.slot;
+ mtype = e.mtype;
stat = e.stat;
explicitExternal = e.explicitExternal;
virt = e.virt;
@@ -219,9 +218,8 @@ void Entry::reset()
todoId = 0;
testId = 0;
section = EMPTY_SEC;
- sig = FALSE;
+ mtype = Method;
virt = Normal;
- slot = FALSE;
stat = FALSE;
proto = FALSE;
explicitExternal = FALSE;
diff --git a/src/entry.h b/src/entry.h
index 1494bae..7736be7 100644
--- a/src/entry.h
+++ b/src/entry.h
@@ -23,6 +23,7 @@
enum Protection { Public, Protected, Private } ;
enum Specifier { Normal, Virtual, Pure } ;
+enum MethodTypes { Method, Signal, Slot, DCOP };
struct BaseInfo
{
@@ -161,8 +162,9 @@ class Entry
int section; // entry type (see Sections);
Protection protection; // class protection
- bool sig; // a Qt signal ?
- bool slot; // a Qt slot ?
+ //bool sig; // a Qt signal ?
+ //bool slot; // a Qt slot ?
+ MethodTypes mtype; // signal, slot or dcop method?
bool stat; // static ?
bool explicitExternal; // explicitly defined as external?
bool proto; // prototype ?
diff --git a/src/filedef.cpp b/src/filedef.cpp
index 462ee79..3d20233 100644
--- a/src/filedef.cpp
+++ b/src/filedef.cpp
@@ -164,9 +164,7 @@ void FileDef::writeDocumentation(OutputList &ol)
ol.docify(ii->includeName);
ol.enableAll();
ol.disableAllBut(OutputGenerator::Html);
- if (fd && fd->isLinkable() &&
- (fd->generateSource() || Config::sourceBrowseFlag)
- )
+ if (fd && fd->isLinkable() && fd->generateSourceFile())
{
ol.writeObjectLink(fd->getReference(),fd->includeName(),0,ii->includeName);
}
@@ -222,7 +220,7 @@ void FileDef::writeDocumentation(OutputList &ol)
//incDepGraph.writeGraph(Config::htmlOutputDir,fd->getOutputFileBase());
}
- if (generateSource() || (!isReference() && Config::sourceBrowseFlag))
+ if (generateSourceFile())
{
ol.disableAllBut(OutputGenerator::Html);
ol.newParagraph();
diff --git a/src/filedef.h b/src/filedef.h
index ff9f5b5..78eb138 100644
--- a/src/filedef.h
+++ b/src/filedef.h
@@ -120,8 +120,11 @@ class FileDef : public Definition
void addUsingDeclaration(ClassDef *cd);
ClassList *getUsedClasses() const { return usingDeclList; }
- void setGenerateSource(bool b) { isSource=b; }
- bool generateSource() const { return isSource; }
+ //void setGenerateSource(bool b) { isSource=b; }
+ bool generateSourceFile() const
+ { return !isReference() &&
+ (Config::sourceBrowseFlag || Config::verbatimHeaderFlag);
+ }
void addIncludeDependency(FileDef *fd,const char *incName,bool local);
void addIncludedByDependency(FileDef *fd,const char *incName,bool local);
diff --git a/src/index.cpp b/src/index.cpp
index bd4810b..75d5e92 100644
--- a/src/index.cpp
+++ b/src/index.cpp
@@ -333,7 +333,7 @@ void countFiles(int &htmlFiles,int &files)
for (;(fd=fni.current());++fni)
{
bool doc = fd->isLinkableInProject();
- bool src = fd->generateSource() || Config::sourceBrowseFlag;
+ bool src = fd->generateSourceFile();
if (doc || src)
{
htmlFiles++;
@@ -415,7 +415,7 @@ void writeFileIndex(OutputList &ol)
{
//printf("Found filedef %s\n",fd->name().data());
bool doc = fd->isLinkableInProject();
- bool src = fd->generateSource() || Config::sourceBrowseFlag;
+ bool src = fd->generateSourceFile();
if ((doc || src) && !fd->isReference())
{
QCString path;
@@ -849,7 +849,7 @@ void writeAlphabeticalClassList(OutputList &ol)
if (!namesp.isEmpty())
{
ol.docify(" (");
- NamespaceDef *nd = namespaceDict[namesp];
+ NamespaceDef *nd = getResolvedNamespace(namesp);
if (nd && nd->isLinkable())
{
ol.writeObjectLink(nd->getReference(),
diff --git a/src/language.cpp b/src/language.cpp
index 31928a4..5d2c92d 100644
--- a/src/language.cpp
+++ b/src/language.cpp
@@ -32,6 +32,7 @@
#include "translator_pl.h"
#include "translator_pt.h"
#include "translator_hu.h"
+#include "translator_kr.h"
#endif
#define L_EQUAL(a) !stricmp(langName,a)
@@ -105,6 +106,10 @@ bool setTranslator(const char *langName)
{
theTranslator=new TranslatorHungarian;
}
+ else if (L_EQUAL("korean"))
+ {
+ theTranslator=new TranslatorKorean;
+ }
#endif
else // use the default language (i.e. english)
{
diff --git a/src/latexgen.cpp b/src/latexgen.cpp
index 28c7915..14a797f 100644
--- a/src/latexgen.cpp
+++ b/src/latexgen.cpp
@@ -1134,6 +1134,7 @@ void LatexGenerator::docify(const char *str)
{
static bool isCzech = theTranslator->idLanguage()=="czech";
static bool isJapanese = theTranslator->idLanguage()=="japanese";
+ static bool isKorean = theTranslator->idLanguage()=="korean";
static bool isRussian = theTranslator->idLanguage()=="russian";
static bool isGerman = theTranslator->idLanguage()=="german";
if (str)
@@ -1192,7 +1193,7 @@ void LatexGenerator::docify(const char *str)
break;
default:
- if (isJapanese)
+ if (isJapanese || isKorean)
{ // Japanese language uses wide characters
if (c>=128)
{
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index 80c5ce6..c3632ed 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -1414,6 +1414,7 @@ void MemberDef::generateXML(QTextStream &t,Definition *def)
case Signal: // fall through
case Prototype: // fall through
case Friend: // fall through
+ case DCOP: // fall through
case Slot: t << "functiondef"; xmlType=function_t; break;
}
t << " id=\"";
@@ -1562,6 +1563,7 @@ void MemberDef::generateXML(QTextStream &t,Definition *def)
case Signal: // fall through
case Prototype: // fall through
case Friend: // fall through
+ case DCOP: // fall through
case Slot: t << "functiondef"; break;
}
t << ">" << endl;
diff --git a/src/memberdef.h b/src/memberdef.h
index 288dc94..279d5b3 100644
--- a/src/memberdef.h
+++ b/src/memberdef.h
@@ -57,7 +57,8 @@ class MemberDef : public Definition
Prototype,
Signal,
Slot,
- Friend
+ Friend,
+ DCOP
};
enum
@@ -107,6 +108,7 @@ class MemberDef : public Definition
bool isFunction() const { return mtype==Function; }
bool isDefine() const { return mtype==Define; }
bool isFriend() const { return mtype==Friend; }
+ bool isDCOP() const { return mtype==DCOP; }
bool isRelated() const { return related; }
bool isStatic() const { return stat; }
bool isInline() const { return (memSpec&Entry::Inline)!=0; }
diff --git a/src/memberlist.cpp b/src/memberlist.cpp
index ee46fc5..2ad3061 100644
--- a/src/memberlist.cpp
+++ b/src/memberlist.cpp
@@ -73,6 +73,7 @@ void MemberList::countDecMembers(bool inGroup,bool countSubGroups,bool sectionPe
case MemberDef::Variable: varCnt++,m_count++; break;
case MemberDef::Function: // fall through
case MemberDef::Signal: // fall through
+ case MemberDef::DCOP: // fall through
case MemberDef::Slot: if (!md->isRelated() || md->getClassDef())
funcCnt++,m_count++;
break;
@@ -409,7 +410,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,
for ( ; (md=mli.current()) ; ++mli )
{
if (
- ( md->isFunction() || md->isSignal() || md->isSlot()) &&
+ ( md->isFunction() || md->isSignal() || md->isSlot() || md->isDCOP()) &&
( !md->isRelated() || md->getClassDef() ) &&
inGroup==md->visibleMemberGroup(sectionPerType)
)
diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp
index cb35eeb..5dd7aeb 100644
--- a/src/rtfgen.cpp
+++ b/src/rtfgen.cpp
@@ -326,19 +326,19 @@ static const struct
{ "ListEnum4",
"\\s94\\fi-360\\li1800\\widctlpar\\fs20\\cgrid "
},
- { "ListEnum4",
+ { "ListEnum5",
"\\s95\\fi-360\\li2160\\widctlpar\\fs20\\cgrid "
},
- { "ListEnum5",
+ { "ListEnum6",
"\\s96\\fi-360\\li2520\\widctlpar\\fs20\\cgrid "
},
- { "ListEnum6",
+ { "ListEnum7",
"\\s97\\fi-360\\li2880\\widctlpar\\fs20\\cgrid "
},
- { "ListEnum7",
+ { "ListEnum8",
"\\s98\\fi-360\\li3240\\widctlpar\\fs20\\cgrid "
},
- { "ListEnum8",
+ { "ListEnum9",
"\\s99\\fi-360\\li3600\\widctlpar\\fs20\\cgrid "
},
{ 0,
diff --git a/src/scanner.l b/src/scanner.l
index a8aefd9..9f419f8 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -100,8 +100,7 @@ static int yyLineNr = 1 ;
static int anonCount = 0 ;
static char yyFileName[4096] ;
static int lastMemberGroupLine;
-static bool sig;
-static bool slot;
+static MethodTypes mtype;
static bool gstat;
static bool removeSlashes;
static Specifier virt;
@@ -119,6 +118,7 @@ static SectionInfo::SectionType
sectionType;
static QCString funcPtrType;
static QCString templateStr;
+static QCString aliasName;
static QCString baseName;
static QCString* specName;
static QCString formulaText;
@@ -157,8 +157,7 @@ static void initParser()
curlyCount = 0;
ifCount = 0;
memberGroupId = NOGROUP;
- sig = FALSE;
- slot = FALSE;
+ mtype = Method;
gstat = FALSE;
virt = Normal;
baseVirt = Normal;
@@ -442,6 +441,8 @@ TITLE [tT][iI][tT][lL][eE]
%x CopyRound
%x CopyCurly
%x IDLUnionCase
+%x NSAliasName
+%x NSAliasArg
%%
@@ -512,8 +513,16 @@ TITLE [tT][iI][tT][lL][eE]
unput(*yytext);
BEGIN( FindMembers ) ;
}
-<FindMembers>{B}*"signals"{BN}*":"{BN}* { current->sig = sig = TRUE;
- current->slot = slot = FALSE;
+<FindMembers>{B}*"k_dcop"{BN}*":"{BN}* { current->mtype = mtype = DCOP;
+ current->protection = protection = Public ;
+ current->type.resize(0);
+ current->name.resize(0);
+ current->args.resize(0);
+ current->argList->clear();
+ lineCount() ;
+ }
+
+<FindMembers>{B}*"signals"{BN}*":"{BN}* { current->mtype = mtype = Signal;
current->protection = protection = Public ;
current->type.resize(0);
current->name.resize(0);
@@ -524,8 +533,7 @@ TITLE [tT][iI][tT][lL][eE]
<FindMembers>{B}*"public"{BN}*"slots"{BN}*":"{BN}* {
current->protection = protection = Public ;
- current->slot = slot = TRUE;
- current->sig = sig = FALSE;
+ current->mtype = mtype = Slot;
current->type.resize(0);
current->name.resize(0);
current->args.resize(0);
@@ -535,8 +543,7 @@ TITLE [tT][iI][tT][lL][eE]
<FindMembers>{B}*"protected"{BN}*"slots"{BN}*":"{BN}* {
current->protection = protection = Protected ;
- current->slot = slot = TRUE;
- current->sig = sig = FALSE;
+ current->mtype = mtype = Slot;
current->type.resize(0);
current->name.resize(0);
current->args.resize(0);
@@ -546,8 +553,7 @@ TITLE [tT][iI][tT][lL][eE]
<FindMembers>{B}*"private"{BN}*"slots"{BN}*":"{BN}* {
current->protection = protection = Private ;
- current->slot = slot = TRUE;
- current->sig = sig = FALSE;
+ current->mtype = mtype = Slot;
current->type.resize(0);
current->name.resize(0);
current->args.resize(0);
@@ -558,8 +564,7 @@ TITLE [tT][iI][tT][lL][eE]
<FindMembers>{B}*"methods"{B}":" { /* M$-IDL only: ignored */ }
<FindMembers>{B}*"public"{BN}*":"{BN}* {
current->protection = protection = Public ;
- current->slot = slot = FALSE;
- current->sig = sig = FALSE;
+ current->mtype = mtype = Method;
current->type.resize(0);
current->name.resize(0);
current->args.resize(0);
@@ -568,8 +573,7 @@ TITLE [tT][iI][tT][lL][eE]
}
<FindMembers>{B}*"protected"{BN}*":"{BN}* {
current->protection = protection = Protected ;
- current->slot = slot = FALSE;
- current->sig = sig = FALSE;
+ current->mtype = mtype = Method;
current->type.resize(0);
current->name.resize(0);
current->args.resize(0);
@@ -578,8 +582,7 @@ TITLE [tT][iI][tT][lL][eE]
}
<FindMembers>{B}*"private"{BN}*":"{BN}* {
current->protection = protection = Private ;
- current->slot = slot = FALSE;
- current->sig = sig = FALSE;
+ current->mtype = mtype = Method;
current->type.resize(0);
current->name.resize(0);
current->args.resize(0);
@@ -766,6 +769,20 @@ TITLE [tT][iI][tT][lL][eE]
//printf("Start template list\n");
BEGIN( ReadTempArgs );
}
+<FindMembers>"namespace"{BN}+/{ID}{BN}*"=" { // namespace alias
+ lineCount();
+ BEGIN( NSAliasName );
+ }
+<NSAliasName>{ID} {
+ aliasName = yytext;
+ BEGIN( NSAliasArg );
+ }
+<NSAliasArg>({ID}"::")*{ID} {
+ namespaceAliasDict.insert(aliasName,new QCString(yytext));
+ }
+<NSAliasArg>";" {
+ BEGIN( FindMembers );
+ }
<FindMembers>"using"{BN}+ {
current->startLine=yyLineNr;
lineCount();
@@ -780,10 +797,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry(current);
current = new Entry ;
current->protection = protection ;
- current->sig = sig;
+ current->mtype = mtype;
current->virt = virt;
current->stat = gstat;
- current->slot = slot;
current->mGrpId = memberGroupId;
BEGIN(Using);
}
@@ -794,10 +810,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry(current);
current = new Entry ;
current->protection = protection ;
- current->sig = sig;
+ current->mtype = mtype;
current->virt = virt;
current->stat = gstat;
- current->slot = slot;
current->mGrpId = memberGroupId;
BEGIN(Using);
}
@@ -958,10 +973,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry(current);
current = new Entry ;
current->protection = protection ;
- current->sig = sig;
+ current->mtype = mtype;
current->virt = virt;
current->stat = gstat;
- current->slot = slot;
current->mGrpId = memberGroupId;
BEGIN(FindMembers);
}
@@ -1258,8 +1272,7 @@ TITLE [tT][iI][tT][lL][eE]
// variable found
current->section = Entry::EMPTY_SEC ;
current->protection = protection;
- current->slot = slot = FALSE;
- current->sig = sig = FALSE;
+ current->mtype = Method;
current->virt = Normal;
current->stat = gstat;
current->mGrpId = memberGroupId;
@@ -1355,10 +1368,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->parent->addSubEntry(current);
current = new Entry ;
current->protection = protection ;
- current->sig = sig;
+ current->mtype = mtype;
current->virt = virt;
current->stat = gstat;
- current->slot = slot;
current->mGrpId = memberGroupId;
}
else // probably a redundant ,
@@ -1429,10 +1441,9 @@ TITLE [tT][iI][tT][lL][eE]
{ // namespaces and interfaces ends with a closing bracket without semicolon
current->reset();
current->protection = protection ;
- current->sig = sig;
+ current->mtype = mtype;
current->virt = virt;
current->stat = gstat;
- current->slot = slot;
current->mGrpId = memberGroupId;
BEGIN( FindMembers ) ;
}
@@ -1457,10 +1468,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry( current ) ;
current = new Entry;
current->protection = protection ;
- current->sig = sig;
+ current->mtype = mtype;
current->virt = virt;
current->stat = gstat;
- current->slot = slot;
current->mGrpId = memberGroupId;
BEGIN(MemberSpecSkip);
}
@@ -1509,10 +1519,9 @@ TITLE [tT][iI][tT][lL][eE]
{
Entry *varEntry=new Entry;
varEntry->protection = current->protection ;
- varEntry->sig = current->sig;
+ varEntry->mtype = current->mtype;
varEntry->virt = current->virt;
varEntry->stat = current->stat;
- varEntry->slot = current->slot;
varEntry->section = Entry::VARIABLE_SEC;
varEntry->name = msName.stripWhiteSpace();
varEntry->type = current->type.simplifyWhiteSpace()+" ";
@@ -1548,10 +1557,9 @@ TITLE [tT][iI][tT][lL][eE]
isTypedef=FALSE;
current->reset();
current->protection = protection ;
- current->sig = sig;
+ current->mtype = mtype;
current->virt = virt;
current->stat = gstat;
- current->slot = slot;
current->mGrpId = memberGroupId;
BEGIN( FindMembers );
}
@@ -1962,10 +1970,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry(current);
current = new Entry ;
current->protection = protection;
- current->sig = sig;
+ current->mtype = mtype;
current->virt = virt;
current->stat = gstat;
- current->slot = slot;
current->mGrpId = memberGroupId;
lastCurlyContext = FindMembers;
if( *yytext == '{' )
@@ -2564,6 +2571,12 @@ TITLE [tT][iI][tT][lL][eE]
}
<SkipHtmlComment>"--"[!]?">" { BEGIN(lastSkipHtmlCommentContext); }
<SkipHtmlComment>.
+<AfterDoc,Doc,ClassDoc,PageDoc>("\\\\"|"@@")("todo"|"test")/[^a-z_A-Z0-9] {
+ current->doc+=yytext;
+ }
+<AfterDocLine,LineDoc,JavaDoc>("\\\\"|"@@")("todo"|"test")/[^a-z_A-Z0-9] {
+ current->brief+=yytext;
+ }
<AfterDoc,AfterDocLine,LineDoc,Doc,JavaDoc,ClassDoc,PageDoc>{CMD}"todo"/[^a-z_A-Z0-9] {
todoStartContext = YY_START;
lastBriefContext = TodoParam; // this is where we will continue at the end of the argument
@@ -3019,10 +3032,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry(current);
current = new Entry ;
current->protection = protection ;
- current->sig = sig;
+ current->mtype = mtype;
current->virt = virt;
current->stat = gstat;
- current->slot = slot;
current->mGrpId = memberGroupId;
BEGIN( FindMembers );
}
@@ -3300,10 +3312,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry(current);
current = new Entry ;
current->protection = protection ;
- current->sig = sig;
+ current->mtype = mtype;
current->virt = virt;
current->stat = gstat;
- current->slot = slot;
current->mGrpId = memberGroupId;
BEGIN( FindMembers );
}
@@ -3399,8 +3410,7 @@ static void parseCompounds(Entry *rt)
current->protection = protection = ce->protection;
else // named struct, union, or interface
current->protection = protection = Public ;
- sig = FALSE;
- slot = FALSE;
+ mtype = Method;
gstat = FALSE;
virt = Normal;
current->mGrpId = memberGroupId = ce->mGrpId;
@@ -3419,8 +3429,7 @@ void parseMain(Entry *rt)
initParser();
anonCount = 0;
protection = Public;
- sig = FALSE;
- slot = FALSE;
+ mtype = Method;
gstat = FALSE;
virt = Normal;
current_root = rt;
diff --git a/src/translator.h b/src/translator.h
index d5a82f4..5808ae1 100644
--- a/src/translator.h
+++ b/src/translator.h
@@ -24,6 +24,89 @@
class Translator
{
+ protected:
+ /*! Returns the string converted from windows-1250 to iso-8859-2. */
+ /* The method was designed initially for translator_cz.h.
+ It is used for on-line encoding conversion related to conditional
+ compilation in Unix/MS Windows environments (both use different
+ encoding). Later, the translator_hr.h (by Boris Bralo) used and
+ improved the same style. As the method with the translation table
+ was the same, the decision to move it to this base class was made.
+ The same holds for ISO88592ToWin1250() method. It is recommended
+ for possibly other similar methods in future.
+ */
+ QCString Win1250ToISO88592(const QCString & sInput)
+ {
+ // The conversion table for characters >127
+ //
+ static const char WinToISOTab[] = {
+ '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87',
+ '\x88', '\x89', '\xA9', '\x8B', '\xA6', '\xAB', '\xAE', '\xAC',
+ '\x90', '\x91', '\x92', '\x93', '\x94', '\x2E', '\x96', '\x97',
+ '\x98', '\x99', '\xB9', '\x9B', '\xB6', '\xBB', '\xBE', '\xBC',
+ '\xA0', '\x20', '\x20', '\xA3', '\xA4', '\xA1', '\xA6', '\xA7',
+ '\x22', '\xA9', '\xAA', '\x3C', '\xAC', '\x2D', '\xAE', '\xAF',
+ '\x2E', '\x2B', '\x20', '\xB3', '\x27', '\x75', '\xB6', '\xB7',
+ '\x20', '\xB1', '\xBA', '\x3E', '\xA5', '\x22', '\xB5', '\xBF',
+ '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7',
+ '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF',
+ '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7',
+ '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF',
+ '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7',
+ '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF',
+ '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\x2D',
+ '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF',
+ '\0'
+ };
+
+ QCString result;
+ int len = sInput.length();
+
+ for (int i = 0; i < len; ++i)
+ {
+ unsigned int c = sInput[i];
+ result += (c > 127) ? WinToISOTab[c & 0x7F] : c;
+ }
+ return result;
+ }
+
+ /*! returns the string converted from iso-8859-2 to windows-1250 */
+ /* See the comments of the Win1250ToISO88592() method for details. */
+ QCString ISO88592ToWin1250(const QCString & sInput)
+ {
+ // The conversion table for characters >127
+ //
+ static const char ISOToWinTab[] = {
+ '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87',
+ '\x88', '\x89', '\x8A', '\x8B', '\x8C', '\x8D', '\x8E', '\x8F',
+ '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97',
+ '\x98', '\x99', '\x9A', '\x9B', '\x9C', '\x9D', '\x9E', '\x9F',
+ '\xA0', '\xA5', '\xA2', '\xA3', '\xA4', '\xBC', '\x8C', '\xA7',
+ '\xA8', '\x8A', '\xAA', '\x8D', '\x8F', '\xAD', '\x8E', '\xAF',
+ '\xB0', '\xB9', '\xB2', '\xB3', '\xB4', '\xBE', '\x9C', '\xB7',
+ '\xB8', '\x9A', '\xBA', '\x9D', '\x9F', '\xBD', '\x9E', '\xBF',
+ '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7',
+ '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF',
+ '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7',
+ '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF',
+ '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7',
+ '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF',
+ '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\xF7',
+ '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF',
+ '\0'
+ };
+ QCString result;
+ int len = sInput.length();
+
+ for (int i = 0; i < len; ++i)
+ {
+ unsigned int c = sInput[i];
+ result += (c > 127) ? ISOToWinTab[c & 0x7F] : c;
+ }
+ return result;
+ }
+
+
public:
// --- Language contol methods -------------------
@@ -993,6 +1076,16 @@ class Translator
return "Test List";
}
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.1
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a section header for KDE-2 IDL methods */
+ virtual QCString trDCOPMethods()
+ {
+ return "DCOP Methods";
+ }
+
};
#endif
diff --git a/src/translator_cz.h b/src/translator_cz.h
index b17fa90..c833a15 100644
--- a/src/translator_cz.h
+++ b/src/translator_cz.h
@@ -48,105 +48,48 @@
// 2000/08/02 (Petr Prikryl)
// - Updated for 1.2.0
//
+// 2000/08/24 (Petr Prikryl)
+// - Changed trTodo() text from "Udelat" to "Planovane upravy"
+// which seems more appropriate in the document context.
+// - Typo corrected in trMemberTypedefDocumentation().
+//
+// 2000/08/30 (Petr Prikryl)
+// - Macro DECODE replaced by the inline Decode() (proposed by
+// Boris Bralo <boris.bralo@zg.tel.hr> in translator_hr.h).
+//
+// 2000/08/31 (Petr Prikryl)
+// - Methods ISOToWin() and WinToISO() renamed and moved to the
+// base class (in translator.h) to be shared with the Croatian
+// translator.
+//
+// 2000/09/06 (Petr Prikryl)
+// - Reimplementation of the method trInheritsList() which takes
+// into account quantity of base classes.
+//
// Notices:
// --------
// The conditional compilation ensures or the neutral functionality
-// of the macro DECODE, or calling the WinToISO() method for
-// on-line encoding conversion. If you want to maintain the source
-// in the iso-8859-2, do convert the source, change the conditional
-// definition of the DECODE macro using the method ISOToWin() --
-// for conversion of strings for the Windows version. The version
-// which does not call the function is slightly faster.
-//
-// Only one of the private method WinToISO() and ISOToWin() is
-// necessary depending on whether this source is maintained in
-// windows-1250 or iso-8859-2 encoding. However, there is not a
-// big loose of space when both methods with the conversion tables
-// are supported. The other (not used now) may be handy in future.
-// Do not erase it.
-
-
-// Here the DECODE macro assumes the source written in Windows encoding.
-//
-#ifdef _WIN32
- #define DECODE(sInput) sInput
-#else
- #define DECODE(sInput) WinToISO(sInput)
-#endif
-
+// of the private inline Decode(), or calling the WinToISO() method
+// for on-line encoding conversion. If you want to maintain the
+// source in the iso-8859-2, do convert the source encoding, change
+// the conditional definition of the inline Decode() using the
+// method ISO88592ToWin1250() -- for conversion of strings for the
+// Windows version. The version which does not call the function is
+// probably slightly faster (if the inline is well optimized).
class TranslatorCzech : public Translator
{
private:
- /*! returns the string converted from windows-1250 to iso-8859-2 */
- QCString WinToISO(const QCString sInput)
- {
- // The conversion table for characters >127
- //
- static const char WinToISOTab[] = {
- '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87',
- '\x88', '\x89', '\xA9', '\x8B', '\xA6', '\xAB', '\xAE', '\xAC',
- '\x90', '\x91', '\x92', '\x93', '\x94', '\x2E', '\x96', '\x97',
- '\x98', '\x99', '\xB9', '\x9B', '\xB6', '\xBB', '\xBE', '\xBC',
- '\xA0', '\x20', '\x20', '\xA3', '\xA4', '\xA1', '\xA6', '\xA7',
- '\x22', '\xA9', '\xAA', '\x3C', '\xAC', '\x2D', '\xAE', '\xAF',
- '\x2E', '\x2B', '\x20', '\xB3', '\x27', '\x75', '\xB6', '\xB7',
- '\x20', '\xB1', '\xBA', '\x3E', '\xA5', '\x22', '\xB5', '\xBF',
- '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7',
- '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF',
- '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7',
- '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF',
- '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7',
- '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF',
- '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\x2D',
- '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF',
- '\0'
- };
-
- QCString result;
- int len = sInput.length();
-
- for (int i = 0; i < len; ++i)
- {
- unsigned int c = sInput[i];
- result += (c > 127) ? WinToISOTab[c & 0x7F] : c;
- }
- return result;
- }
-
- /*! returns the string converted from iso-8859-2 to windows-1250 */
- QCString ISOToWin(const QCString sInput)
- {
- // The conversion table for characters >127
- //
- static const char ISOToWinTab[] = {
- '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87',
- '\x88', '\x89', '\x8A', '\x8B', '\x8C', '\x8D', '\x8E', '\x8F',
- '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97',
- '\x98', '\x99', '\x9A', '\x9B', '\x9C', '\x9D', '\x9E', '\x9F',
- '\xA0', '\xA5', '\xA2', '\xA3', '\xA4', '\xBC', '\x8C', '\xA7',
- '\xA8', '\x8A', '\xAA', '\x8D', '\x8F', '\xAD', '\x8E', '\xAF',
- '\xB0', '\xB9', '\xB2', '\xB3', '\xB4', '\xBE', '\x9C', '\xB7',
- '\xB8', '\x9A', '\xBA', '\x9D', '\x9F', '\xBD', '\x9E', '\xBF',
- '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7',
- '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF',
- '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7',
- '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF',
- '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7',
- '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF',
- '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\xF7',
- '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF',
- '\0'
- };
- QCString result;
- int len = sInput.length();
-
- for (int i = 0; i < len; ++i)
- {
- unsigned int c = sInput[i];
- result += (c > 127) ? ISOToWinTab[c & 0x7F] : c;
- }
- return result;
+ /*! The Decode() inline assumes the source written in the
+ Windows encoding (maintainer dependent).
+ */
+ inline QCString Decode(const QCString & sInput)
+ {
+#ifdef _WIN32
+ return sInput;
+#else
+ return Win1250ToISO88592(sInput);
+#endif
}
public:
@@ -176,51 +119,51 @@ class TranslatorCzech : public Translator
/*! used in the compound documentation before a list of related functions. */
virtual QCString trRelatedFunctions()
- { return DECODE("Související funkce"); }
+ { return Decode("Související funkce"); }
/*! subscript for the related functions. */
virtual QCString trRelatedSubscript()
- { return DECODE("(Uvedené funkce nejsou èlenskými funkcemi.)"); }
+ { return Decode("(Uvedené funkce nejsou èlenskými funkcemi.)"); }
/*! header that is put before the detailed description of files, classes and namespaces. */
virtual QCString trDetailedDescription()
- { return DECODE("Detailní popis"); }
+ { return Decode("Detailní popis"); }
/*! header that is put before the list of typedefs. */
virtual QCString trMemberTypedefDocumentation()
- { return DECODE("Dokumentace k èlenských typùm"); }
+ { return Decode("Dokumentace k èlenským typùm"); }
/*! header that is put before the list of enumerations. */
virtual QCString trMemberEnumerationDocumentation()
- { return DECODE("Dokumentace k èlenským výètùm"); }
+ { return Decode("Dokumentace k èlenským výètùm"); }
/*! header that is put before the list of member functions. */
virtual QCString trMemberFunctionDocumentation()
- { return DECODE("Dokumentace k metodám"); }
+ { return Decode("Dokumentace k metodám"); }
/*! header that is put before the list of member attributes. */
virtual QCString trMemberDataDocumentation()
- { return DECODE("Dokumentace k datovým èlenùm"); }
+ { return Decode("Dokumentace k datovým èlenùm"); }
/*! this is the text of a link put after brief descriptions. */
virtual QCString trMore()
- { return DECODE("(...)"); }
+ { return Decode("(...)"); }
/*! put in the class documentation */
virtual QCString trListOfAllMembers()
- { return DECODE("Seznam všech èlenù."); }
+ { return Decode("Seznam všech èlenù."); }
/*! used as the title of the "list of all members" page of a class */
virtual QCString trMemberList()
- { return DECODE("Seznam èlenù tøídy"); }
+ { return Decode("Seznam èlenù tøídy"); }
/*! this is the first part of a sentence that is followed by a class name */
virtual QCString trThisIsTheListOfAllMembers()
- { return DECODE("Zde naleznete úplný seznam èlenù tøídy "); }
+ { return Decode("Zde naleznete úplný seznam èlenù tøídy "); }
/*! this is the remainder of the sentence after the class name */
virtual QCString trIncludingInheritedMembers()
- { return DECODE(", vèetnì všech zdìdìných èlenù."); }
+ { return Decode(", vèetnì všech zdìdìných èlenù."); }
/*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name.
@@ -230,26 +173,26 @@ class TranslatorCzech : public Translator
"ze zdrojových textù";
if (s) result+=(QCString)" projektu "+s;
result+=".";
- return DECODE(result);
+ return Decode(result);
}
/*! put after an enum name in the list of all members */
virtual QCString trEnumName()
- { return DECODE("jméno výètu"); }
+ { return Decode("jméno výètu"); }
/*! put after an enum value in the list of all members */
virtual QCString trEnumValue()
- { return DECODE("hodnota výètu"); }
+ { return Decode("hodnota výètu"); }
/*! put after an undocumented member in the list of all members */
virtual QCString trDefinedIn()
- { return DECODE("definován v"); }
+ { return Decode("definován v"); }
/*! put as in introduction in the verbatim header file of a class.
* parameter f is the name of the include file.
*/
virtual QCString trVerbatimText(const char *f)
- { return DECODE((QCString)"Úplný text vkládaného souboru "+f+"."); }
+ { return Decode((QCString)"Úplný text vkládaného souboru "+f+"."); }
// quick reference sections
@@ -257,47 +200,47 @@ class TranslatorCzech : public Translator
* compounds or files (see the \group command).
*/
virtual QCString trModules()
- { return DECODE("Moduly"); }
+ { return Decode("Moduly"); }
/*! This is put above each page as a link to the class hierarchy */
virtual QCString trClassHierarchy()
- { return DECODE("Hierarchie tøíd"); }
+ { return Decode("Hierarchie tøíd"); }
/*! This is put above each page as a link to the list of annotated classes */
virtual QCString trCompoundList()
- { return DECODE("Seznam tøíd"); }
+ { return Decode("Seznam tøíd"); }
/*! This is put above each page as a link to the list of documented files */
virtual QCString trFileList()
- { return DECODE("Seznam souborù"); }
+ { return Decode("Seznam souborù"); }
/*! This is put above each page as a link to the list of all verbatim headers */
virtual QCString trHeaderFiles()
- { return DECODE("Seznam hlavièkových souborù"); }
+ { return Decode("Seznam hlavièkových souborù"); }
/*! This is put above each page as a link to all members of compounds. */
virtual QCString trCompoundMembers()
- { return DECODE("Seznam èlenù tøíd"); }
+ { return Decode("Seznam èlenù tøíd"); }
/*! This is put above each page as a link to all members of files. */
virtual QCString trFileMembers()
- { return DECODE("Symboly v souborech"); }
+ { return Decode("Symboly v souborech"); }
/*! This is put above each page as a link to all related pages. */
virtual QCString trRelatedPages()
- { return DECODE("Související stránky"); }
+ { return Decode("Související stránky"); }
/*! This is put above each page as a link to all examples. */
virtual QCString trExamples()
- { return DECODE("Pøíklady"); }
+ { return Decode("Pøíklady"); }
/*! This is put above each page as a link to the search engine. */
virtual QCString trSearch()
- { return DECODE("Hledat"); }
+ { return Decode("Hledat"); }
/*! This is an introduction to the class hierarchy. */
virtual QCString trClassHierarchyDescription()
- { return DECODE("Zde naleznete seznam, vyjadøující vztah dìdiènosti tøíd. "
+ { return Decode("Zde naleznete seznam, vyjadøující vztah dìdiènosti tøíd. "
"Je seøazen pøibližnì (ale ne úplnì) podle abecedy:");
}
@@ -307,12 +250,12 @@ class TranslatorCzech : public Translator
QCString result="Zde naleznete seznam všech ";
if (!extractAll) result+="dokumentovaných ";
result+="souborù se struènými popisy:";
- return DECODE(result);
+ return Decode(result);
}
/*! This is an introduction to the annotated compound list. */
virtual QCString trCompoundListDescription()
- { return DECODE("Následující seznam obsahuje pøedevším identifikace tøíd, "
+ { return Decode("Následující seznam obsahuje pøedevším identifikace tøíd, "
"ale nachází se zde i další netriviální prvky, jako jsou "
"struktury (struct), unie (union) a rozhraní (interface). "
"V seznamu jsou uvedeny jejich struèné popisy:");
@@ -328,7 +271,7 @@ class TranslatorCzech : public Translator
result+="dokumentaci tøíd, ke kterým pøíslušejí:";
else
result+="tøídy, ke kterým pøíslušejí:";
- return DECODE(result);
+ return Decode(result);
}
/*! This is an introduction to the page with all file members. */
@@ -349,197 +292,197 @@ class TranslatorCzech : public Translator
"Symbol mùže oznaèovat makro, typ, instanci tøídy, "
"promìnnou, konstantu, funkci, výèet, hodnotu výètu a podobnì:";
- return DECODE(result);
+ return Decode(result);
}
/*! This is an introduction to the page with the list of all header files. */
virtual QCString trHeaderFilesDescription()
- { return DECODE("Zde naleznete hlavièkové soubory, které tvoøí "
+ { return Decode("Zde naleznete hlavièkové soubory, které tvoøí "
"aplikaèní programátorské rozhraní (API):"); }
/*! This is an introduction to the page with the list of all examples */
virtual QCString trExamplesDescription()
- { return DECODE("Zde naleznete seznam všech pøíkladù:"); }
+ { return Decode("Zde naleznete seznam všech pøíkladù:"); }
/*! This is an introduction to the page with the list of related pages */
virtual QCString trRelatedPagesDescription()
- { return DECODE("Zde naleznete seznam všech souvisejících stránek "
+ { return Decode("Zde naleznete seznam všech souvisejících stránek "
"dokumentace:"); }
/*! This is an introduction to the page with the list of class/file groups */
virtual QCString trModulesDescription()
- { return DECODE("Zde naleznete seznam všech modulù:"); }
+ { return Decode("Zde naleznete seznam všech modulù:"); }
/*! This sentences is used in the annotated class/file lists if no brief
* description is given.
*/
virtual QCString trNoDescriptionAvailable()
- { return DECODE("Popis není k dispozici"); }
+ { return Decode("Popis není k dispozici"); }
// index titles (the project name is prepended for these)
/*! This is used in HTML as the title of index.html. */
virtual QCString trDocumentation()
- { return DECODE("Dokumentace"); }
+ { return Decode("Dokumentace"); }
/*! This is used in LaTeX as the title of the chapter with the
* index of all groups.
*/
virtual QCString trModuleIndex()
- { return DECODE("Rejstøík modulù"); }
+ { return Decode("Rejstøík modulù"); }
/*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
*/
virtual QCString trHierarchicalIndex()
- { return DECODE("Rejstøík hierarchie tøíd"); }
+ { return Decode("Rejstøík hierarchie tøíd"); }
/*! This is used in LaTeX as the title of the chapter with the
* annotated compound index.
*/
virtual QCString trCompoundIndex()
- { return DECODE("Rejstøík tøíd"); }
+ { return Decode("Rejstøík tøíd"); }
/*! This is used in LaTeX as the title of the chapter with the
* list of all files.
*/
virtual QCString trFileIndex()
- { return DECODE("Rejstøík souborù"); }
+ { return Decode("Rejstøík souborù"); }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all groups.
*/
virtual QCString trModuleDocumentation()
- { return DECODE("Dokumentace modulù"); }
+ { return Decode("Dokumentace modulù"); }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all classes, structs and unions.
*/
virtual QCString trClassDocumentation()
- { return DECODE("Dokumentace tøíd"); }
+ { return Decode("Dokumentace tøíd"); }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all files.
*/
virtual QCString trFileDocumentation()
- { return DECODE("Dokumentace souborù"); }
+ { return Decode("Dokumentace souborù"); }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all examples.
*/
virtual QCString trExampleDocumentation()
- { return DECODE("Dokumentace pøíkladù"); }
+ { return Decode("Dokumentace pøíkladù"); }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all related pages.
*/
virtual QCString trPageDocumentation()
- { return DECODE("Dokumentace souvisejících stránek"); }
+ { return Decode("Dokumentace souvisejících stránek"); }
/*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual()
- { return DECODE("Referenèní pøíruèka"); }
+ { return Decode("Referenèní pøíruèka"); }
/*! This is used in the documentation of a file as a header before the
* list of defines
*/
virtual QCString trDefines()
- { return DECODE("Definice maker"); }
+ { return Decode("Definice maker"); }
/*! This is used in the documentation of a file as a header before the
* list of function prototypes
*/
virtual QCString trFuncProtos()
- { return DECODE("Prototypy"); }
+ { return Decode("Prototypy"); }
/*! This is used in the documentation of a file as a header before the
* list of typedefs
*/
virtual QCString trTypedefs()
- { return DECODE("Definice typù"); }
+ { return Decode("Definice typù"); }
/*! This is used in the documentation of a file as a header before the
* list of enumerations
*/
virtual QCString trEnumerations()
- { return DECODE("Výèty"); }
+ { return Decode("Výèty"); }
/*! This is used in the documentation of a file as a header before the
* list of (global) functions
*/
virtual QCString trFunctions()
- { return DECODE("Funkce"); }
+ { return Decode("Funkce"); }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
virtual QCString trVariables()
- { return DECODE("Promìnné"); }
+ { return Decode("Promìnné"); }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
virtual QCString trEnumerationValues()
- { return DECODE("Hodnoty výètù"); }
+ { return Decode("Hodnoty výètù"); }
/*! This is used in man pages as the author section. */
virtual QCString trAuthor()
- { return DECODE("Autor"); }
+ { return Decode("Autor"); }
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
*/
virtual QCString trDefineDocumentation()
- { return DECODE("Dokumentace k definicím maker"); }
+ { return Decode("Dokumentace k definicím maker"); }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for function prototypes
*/
virtual QCString trFunctionPrototypeDocumentation()
- { return DECODE("Dokumentace prototypù"); }
+ { return Decode("Dokumentace prototypù"); }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs
*/
virtual QCString trTypedefDocumentation()
- { return DECODE("Dokumentace definic typù"); }
+ { return Decode("Dokumentace definic typù"); }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types
*/
virtual QCString trEnumerationTypeDocumentation()
- { return DECODE("Dokumentace výètových typù"); }
+ { return Decode("Dokumentace výètových typù"); }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values
*/
virtual QCString trEnumerationValueDocumentation()
- { return DECODE("Dokumentace výètových hodnot"); }
+ { return Decode("Dokumentace výètových hodnot"); }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for functions
*/
virtual QCString trFunctionDocumentation()
- { return DECODE("Dokumentace funkcí"); }
+ { return Decode("Dokumentace funkcí"); }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for variables
*/
virtual QCString trVariableDocumentation()
- { return DECODE("Dokumentace promìnných"); }
+ { return Decode("Dokumentace promìnných"); }
/*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds
*/
virtual QCString trCompounds()
- { return DECODE("Tøídy"); }
+ { return Decode("Tøídy"); }
/*! This is used in the documentation of a group before the list of
* links to documented files
*/
virtual QCString trFiles()
- { return DECODE("Soubory"); }
+ { return Decode("Soubory"); }
/*! This is used in the standard footer of each page and indicates when
* the page was generated
@@ -549,75 +492,75 @@ class TranslatorCzech : public Translator
QCString result=(QCString)"Generováno "+date;
if (projName) result+=(QCString)" pro projekt "+projName;
result+=(QCString)" programem";
- return DECODE(result);
+ return Decode(result);
}
/*! This is part of the sentence used in the standard footer of each page.
*/
virtual QCString trWrittenBy()
{
- return DECODE(" -- autor ");
+ return Decode(" -- autor ");
}
/*! this text is put before a class diagram */
virtual QCString trClassDiagram(const char *clName)
{
- return DECODE((QCString)"Diagram dìdiènosti pro tøídu "+clName);
+ return Decode((QCString)"Diagram dìdiènosti pro tøídu "+clName);
}
/*! this text is generated when the \internal command is used. */
virtual QCString trForInternalUseOnly()
- { return DECODE("Pouze pro vnitøní použití."); }
+ { return Decode("Pouze pro vnitøní použití."); }
/*! this text is generated when the \reimp command is used. */
virtual QCString trReimplementedForInternalReasons()
- { return DECODE("Reimplementováno z interních dùvodù; "
+ { return Decode("Reimplementováno z interních dùvodù; "
"aplikaèní rozhraní zachováno."); }
/*! this text is generated when the \warning command is used. */
virtual QCString trWarning()
- { return DECODE("Pozor"); }
+ { return Decode("Pozor"); }
/*! this text is generated when the \bug command is used. */
virtual QCString trBugsAndLimitations()
- { return DECODE("Chyby a omezení"); }
+ { return Decode("Chyby a omezení"); }
/*! this text is generated when the \version command is used. */
virtual QCString trVersion()
- { return DECODE("Verze"); }
+ { return Decode("Verze"); }
/*! this text is generated when the \date command is used. */
virtual QCString trDate()
- { return DECODE("Datum"); }
+ { return Decode("Datum"); }
/*! this text is generated when the \author command is used. */
virtual QCString trAuthors()
- { return DECODE("Autor/autoøi"); }
+ { return Decode("Autor/autoøi"); }
/*! this text is generated when the \return command is used. */
virtual QCString trReturns()
- { return DECODE("Návratová hodnota"); }
+ { return Decode("Návratová hodnota"); }
/*! this text is generated when the \sa command is used. */
virtual QCString trSeeAlso()
- { return DECODE("Viz také"); }
+ { return Decode("Viz také"); }
/*! this text is generated when the \param command is used. */
virtual QCString trParameters()
- { return DECODE("Parametry"); }
+ { return Decode("Parametry"); }
/*! this text is generated when the \exception command is used. */
virtual QCString trExceptions()
- { return DECODE("Výjimky"); }
+ { return Decode("Výjimky"); }
/*! this text is used in the title page of a LaTeX document. */
virtual QCString trGeneratedBy()
- { return DECODE("Generováno programem"); }
+ { return Decode("Generováno programem"); }
// new since 0.49-990307
/*! used as the title of page containing all the index of all namespaces. */
virtual QCString trNamespaceList()
- { return DECODE("Seznam prostorù jmen"); }
+ { return Decode("Seznam prostorù jmen"); }
/*! used as an introduction to the namespace list */
virtual QCString trNamespaceListDescription(bool extractAll)
@@ -625,14 +568,14 @@ class TranslatorCzech : public Translator
QCString result="Zde naleznete seznam všech ";
if (!extractAll) result+="dokumentovaných ";
result+="prostorù jmen se struèným popisem:";
- return DECODE(result);
+ return Decode(result);
}
/*! used in the class documentation as a header before the list of all
* friends of a class
*/
virtual QCString trFriends()
- { return DECODE("Friends"); }
+ { return Decode("Friends"); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
@@ -642,7 +585,7 @@ class TranslatorCzech : public Translator
* related classes
*/
virtual QCString trRelatedFunctionDocumentation()
- { return DECODE("Dokumentace k friends"); }
+ { return Decode("Dokumentace k friends"); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
@@ -664,7 +607,7 @@ class TranslatorCzech : public Translator
case ClassDef::Exception: result+="výjimky "; break;
}
result+=clName;
- return DECODE(result);
+ return Decode(result);
}
/*! used as the title of the HTML page of a file */
@@ -672,7 +615,7 @@ class TranslatorCzech : public Translator
{
QCString result("Dokumentace souboru ");
result+=fileName;
- return DECODE(result);
+ return Decode(result);
}
/*! used as the title of the HTML page of a namespace */
@@ -680,32 +623,32 @@ class TranslatorCzech : public Translator
{
QCString result("Dokumentace prostoru jmen ");
result+=namespaceName;
- return DECODE(result);
+ return Decode(result);
}
/*! \mgroup Class sections
* these are for the member sections of a class, struct or union
*/
virtual QCString trPublicMembers()
- { return DECODE("Veøejné metody"); }
+ { return Decode("Veøejné metody"); }
virtual QCString trPublicSlots()
- { return DECODE("Veøejné sloty"); }
+ { return Decode("Veøejné sloty"); }
virtual QCString trSignals()
- { return DECODE("Signály"); }
+ { return Decode("Signály"); }
virtual QCString trStaticPublicMembers()
- { return DECODE("Statické veøejné metody"); }
+ { return Decode("Statické veøejné metody"); }
virtual QCString trProtectedMembers()
- { return DECODE("Chránìné metody"); }
+ { return Decode("Chránìné metody"); }
virtual QCString trProtectedSlots()
- { return DECODE("Chránìné sloty"); }
+ { return Decode("Chránìné sloty"); }
virtual QCString trStaticProtectedMembers()
- { return DECODE("Statické chránìné metody"); }
+ { return Decode("Statické chránìné metody"); }
virtual QCString trPrivateMembers()
- { return DECODE("Privátní metody"); }
+ { return Decode("Privátní metody"); }
virtual QCString trPrivateSlots()
- { return DECODE("Privátní sloty"); }
+ { return Decode("Privátní sloty"); }
virtual QCString trStaticPrivateMembers()
- { return DECODE("Statické privátní metody"); }
+ { return Decode("Statické privátní metody"); }
/*! \endmgroup */
/*! this function is used to produce a comma-separated list of items.
@@ -730,7 +673,7 @@ class TranslatorCzech : public Translator
result+=" a ";
}
}
- return DECODE(result);
+ return Decode(result);
}
/*! used in class documentation to produce a list of base classes,
@@ -738,7 +681,10 @@ class TranslatorCzech : public Translator
*/
virtual QCString trInheritsList(int numEntries)
{
- return DECODE("Dìdí "+trWriteList(numEntries)+".");
+ QCString result("Dìdí z ");
+ result += (numEntries == 1) ? "bázové tøídy " : "bázových tøíd ";
+ result += trWriteList(numEntries)+".";
+ return Decode(result);
}
/*! used in class documentation to produce a list of super classes,
@@ -749,7 +695,7 @@ class TranslatorCzech : public Translator
QCString result("Zdìdìna ");
result += (numEntries == 1) ? "tøídou " : "tøídami ";
result += trWriteList(numEntries)+".";
- return DECODE(result);
+ return Decode(result);
}
/*! used in member documentation blocks to produce a list of
@@ -760,7 +706,7 @@ class TranslatorCzech : public Translator
QCString result("Reimplementuje ");
result += (numEntries == 1) ? "metodu tøídy " : "metody tøíd ";
result += trWriteList(numEntries)+".";
- return DECODE(result);
+ return Decode(result);
}
/*! used in member documentation blocks to produce a list of
@@ -771,12 +717,12 @@ class TranslatorCzech : public Translator
QCString result("Reimplementováno ");
result += (numEntries == 1) ? "tøídou " : "tøídami ";
result += trWriteList(numEntries)+".";
- return DECODE(result);
+ return Decode(result);
}
/*! This is put above each page as a link to all members of namespaces. */
virtual QCString trNamespaceMembers()
- { return DECODE("Symboly v prostorech jmen"); }
+ { return Decode("Symboly v prostorech jmen"); }
/*! This is an introduction to the page with all namespace members */
virtual QCString trNamespaceMemberDescription(bool extractAll)
@@ -789,19 +735,19 @@ class TranslatorCzech : public Translator
result+="dokumentaci pøíslušného prostoru jmen:";
else
result+="pøíslušný prostor jmen:";
- return DECODE(result);
+ return Decode(result);
}
/*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces.
*/
virtual QCString trNamespaceIndex()
- { return DECODE("Rejstøík prostorù jmen"); }
+ { return Decode("Rejstøík prostorù jmen"); }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all namespaces.
*/
virtual QCString trNamespaceDocumentation()
- { return DECODE("Dokumentace prostorù jmen"); }
+ { return Decode("Dokumentace prostorù jmen"); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990522
@@ -811,7 +757,7 @@ class TranslatorCzech : public Translator
* namespaces in a file.
*/
virtual QCString trNamespaces()
- { return DECODE("Prostory jmen"); }
+ { return Decode("Prostory jmen"); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990728
@@ -836,14 +782,14 @@ class TranslatorCzech : public Translator
result+=" byla generována z ";
if (single) result+="následujícího souboru:";
else result+="následujících souborù:";
- return DECODE(result);
+ return Decode(result);
}
/*! This is in the (quick) index as a link to the alphabetical compound
* list.
*/
virtual QCString trAlphabeticalList()
- { return DECODE("Rejstøík tøíd"); }
+ { return Decode("Rejstøík tøíd"); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990901
@@ -851,18 +797,18 @@ class TranslatorCzech : public Translator
/*! This is used as the heading text for the retval command. */
virtual QCString trReturnValues()
- { return DECODE("Vracené hodnoty"); }
+ { return Decode("Vracené hodnoty"); }
/*! This is in the (quick) index as a link to the main page (index.html)
*/
virtual QCString trMainPage()
- { return DECODE("Hlavní stránka"); }
+ { return Decode("Hlavní stránka"); }
/*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
*/
virtual QCString trPageAbbreviation()
- { return DECODE("s."); }
+ { return Decode("s."); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991003
@@ -870,15 +816,15 @@ class TranslatorCzech : public Translator
virtual QCString trSources()
{
- return DECODE("Zdroje");
+ return Decode("Zdroje");
}
virtual QCString trDefinedAtLineInSourceFile()
{
- return DECODE("Definice je uvedena na øádku @0 v souboru @1.");
+ return Decode("Definice je uvedena na øádku @0 v souboru @1.");
}
virtual QCString trDefinedInSourceFile()
{
- return DECODE("Definice v souboru @0.");
+ return Decode("Definice v souboru @0.");
}
//////////////////////////////////////////////////////////////////////////
@@ -887,7 +833,7 @@ class TranslatorCzech : public Translator
virtual QCString trDeprecated()
{
- return DECODE("Zastaralé");
+ return Decode("Zastaralé");
}
//////////////////////////////////////////////////////////////////////////
@@ -897,69 +843,69 @@ class TranslatorCzech : public Translator
/*! this text is put before a collaboration diagram */
virtual QCString trCollaborationDiagram(const char *clName)
{
- return DECODE((QCString)"Diagram tøíd pro "+clName+":");
+ return Decode((QCString)"Diagram tøíd pro "+clName+":");
}
/*! this text is put before an include dependency graph */
virtual QCString trInclDepGraph(const char *fName)
{
- return DECODE((QCString)"Graf závislostí na vkládaných souborech "
+ return Decode((QCString)"Graf závislostí na vkládaných souborech "
"pro "+fName+":");
}
/*! header that is put before the list of constructor/destructors. */
virtual QCString trConstructorDocumentation()
{
- return DECODE("Dokumentace konstruktoru a destruktoru");
+ return Decode("Dokumentace konstruktoru a destruktoru");
}
/*! Used in the file documentation to point to the corresponding sources. */
virtual QCString trGotoSourceCode()
{
- return DECODE("Zobrazit zdrojový text tohoto souboru.");
+ return Decode("Zobrazit zdrojový text tohoto souboru.");
}
/*! Used in the file sources to point to the corresponding documentation. */
virtual QCString trGotoDocumentation()
{
- return DECODE("Zobrazit dokumentaci tohoto souboru.");
+ return Decode("Zobrazit dokumentaci tohoto souboru.");
}
/*! Text for the \pre command */
virtual QCString trPrecondition()
{
- return DECODE("Precondition");
+ return Decode("Precondition");
}
/*! Text for the \post command */
virtual QCString trPostcondition()
{
- return DECODE("Postcondition");
+ return Decode("Postcondition");
}
/*! Text for the \invariant command */
virtual QCString trInvariant()
{
- return DECODE("Invariant");
+ return Decode("Invariant");
}
/*! Text shown before a multi-line variable/enum initialization */
virtual QCString trInitialValue()
{
- return DECODE("Initializer:");
+ return Decode("Initializer:");
}
/*! Text used the source code in the file index */
virtual QCString trCode()
{
- return DECODE("zdrojový text");
+ return Decode("zdrojový text");
}
virtual QCString trGraphicalHierarchy()
{
- return DECODE("Grafické zobrazení hierarchie tøíd");
+ return Decode("Grafické zobrazení hierarchie tøíd");
}
virtual QCString trGotoGraphicalHierarchy()
{
- return DECODE("Zobrazit grafickou podobu hierarchie tøíd");
+ return Decode("Zobrazit grafickou podobu hierarchie tøíd");
}
virtual QCString trGotoTextualHierarchy()
{
- return DECODE("Zobrazit textovou podobu hierarchie tøíd");
+ return Decode("Zobrazit textovou podobu hierarchie tøíd");
}
virtual QCString trPageIndex()
{
- return DECODE("Rejstøík stránek");
+ return Decode("Rejstøík stránek");
}
//////////////////////////////////////////////////////////////////////////
@@ -968,43 +914,43 @@ class TranslatorCzech : public Translator
virtual QCString trNote()
{
- return DECODE("Poznámka");
+ return Decode("Poznámka");
}
virtual QCString trPublicTypes()
{
- return DECODE("Veøejné typy");
+ return Decode("Veøejné typy");
}
virtual QCString trPublicAttribs()
{
- return DECODE("Veøejné atributy");
+ return Decode("Veøejné atributy");
}
virtual QCString trStaticPublicAttribs()
{
- return DECODE("Statické veøejné atributy");
+ return Decode("Statické veøejné atributy");
}
virtual QCString trProtectedTypes()
{
- return DECODE("Chránìné typy");
+ return Decode("Chránìné typy");
}
virtual QCString trProtectedAttribs()
{
- return DECODE("Chránìné atributy");
+ return Decode("Chránìné atributy");
}
virtual QCString trStaticProtectedAttribs()
{
- return DECODE("Statické chránìné atributy");
+ return Decode("Statické chránìné atributy");
}
virtual QCString trPrivateTypes()
{
- return DECODE("Privátní typy");
+ return Decode("Privátní typy");
}
virtual QCString trPrivateAttribs()
{
- return DECODE("Privátní atributy");
+ return Decode("Privátní atributy");
}
virtual QCString trStaticPrivateAttribs()
{
- return DECODE("Statické privátní atributy");
+ return Decode("Statické privátní atributy");
}
//////////////////////////////////////////////////////////////////////////
@@ -1014,12 +960,12 @@ class TranslatorCzech : public Translator
/*! Used as a marker that is put before a todo item */
virtual QCString trTodo()
{
- return DECODE("Udìlat");
+ return Decode("Plánované úpravy");
}
/*! Used as the header of the todo list */
virtual QCString trTodoList()
{
- return DECODE("Seznam plánovaných úprav");
+ return Decode("Seznam plánovaných úprav");
}
//////////////////////////////////////////////////////////////////////////
@@ -1028,24 +974,24 @@ class TranslatorCzech : public Translator
virtual QCString trReferencedBy()
{
- return DECODE("Používá se v");
+ return Decode("Používá se v");
}
virtual QCString trRemarks()
{
- return DECODE("Poznámky"); // ??? not checked in a context
+ return Decode("Poznámky"); // ??? not checked in a context
}
virtual QCString trAttention()
{
- return DECODE("Upozornìní"); // ??? not checked in a context
+ return Decode("Upozornìní"); // ??? not checked in a context
}
virtual QCString trInclByDepGraph()
{
- return DECODE("Následující graf ukazuje, které soubory pøímo nebo "
+ return Decode("Následující graf ukazuje, které soubory pøímo nebo "
"nepøímo vkládají tento soubor:");
}
virtual QCString trSince()
{
- return DECODE("Od"); // ??? not checked in a context
+ return Decode("Od"); // ??? not checked in a context
}
////////////////////////////////////////////////////////////////////////////
@@ -1055,7 +1001,7 @@ class TranslatorCzech : public Translator
/*! title of the graph legend page */
virtual QCString trLegendTitle()
{
- return DECODE("Vysvìtlivky ke grafu");
+ return Decode("Vysvìtlivky ke grafu");
}
/*! page explaining how the dot graph's should be interpreted */
virtual QCString trLegendDocs()
@@ -1124,12 +1070,12 @@ class TranslatorCzech : public Translator
"je tøída nebo struktura zpøístupnìna.\n"
"</ul>\n");
- return DECODE(result);
+ return Decode(result);
}
/*! text for the link to the legend page */
virtual QCString trLegend()
{
- return DECODE("vysvìtlivky");
+ return Decode("vysvìtlivky");
}
//////////////////////////////////////////////////////////////////////////
@@ -1139,13 +1085,13 @@ class TranslatorCzech : public Translator
/*! Used as a marker that is put before a test item */
virtual QCString trTest()
{
- return "Test";
+ return Decode("Test");
}
/*! Used as the header of the test list */
virtual QCString trTestList()
{
- return "Seznam testù";
+ return Decode("Seznam testù");
}
};
diff --git a/src/translator_hr.h b/src/translator_hr.h
index 8b619e3..338ad17 100644
--- a/src/translator_hr.h
+++ b/src/translator_hr.h
@@ -31,96 +31,27 @@
class TranslatorCroatian : public Translator
{
private:
- /*! to avoid macro redefinition from translator_cz.h */
- /* Speed loss is actualy less than in Czech version due to
- fewer QCString copying.
- */
- inline QCString& decode(const QCString& sInput)
- {
+ /*! to avoid macro redefinition from translator_cz.h */
+ /* Speed loss is actualy less than in Czech version due to
+ fewer QCString copying.
+ */
+ inline QCString decode(const QCString& sInput)
+ {
#ifdef _WIN32
- return ISOToWin(sInput);
+ return ISO88592ToWin1250(sInput);
#else
- return const_cast<QCString&>(sInput);
+ return sInput;
#endif
- }
- /*! returns the string converted from windows-1250 to iso-8859-2 */
- QCString WinToISO(const QCString& sInput)
- {
- // The conversion table for characters >127
- //
- static const char WinToISOTab[] = {
- '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87',
- '\x88', '\x89', '\xA9', '\x8B', '\xA6', '\xAB', '\xAE', '\xAC',
- '\x90', '\x91', '\x92', '\x93', '\x94', '\x2E', '\x96', '\x97',
- '\x98', '\x99', '\xB9', '\x9B', '\xB6', '\xBB', '\xBE', '\xBC',
- '\xA0', '\x20', '\x20', '\xA3', '\xA4', '\xA1', '\xA6', '\xA7',
- '\x22', '\xA9', '\xAA', '\x3C', '\xAC', '\x2D', '\xAE', '\xAF',
- '\x2E', '\x2B', '\x20', '\xB3', '\x27', '\x75', '\xB6', '\xB7',
- '\x20', '\xB1', '\xBA', '\x3E', '\xA5', '\x22', '\xB5', '\xBF',
- '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7',
- '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF',
- '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7',
- '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF',
- '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7',
- '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF',
- '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\x2D',
- '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF',
- '\0'
- };
-
- QCString result;
- int len = sInput.length();
-
- for (int i = 0; i < len; ++i)
- {
- unsigned int c = sInput[i];
- result += (c > 127) ? WinToISOTab[c & 0x7F] : c;
- }
- return result;
- }
-
- /*! returns the string converted from iso-8859-2 to windows-1250 */
- QCString ISOToWin(const QCString& sInput)
- {
- // The conversion table for characters >127
- //
- static const char ISOToWinTab[] = {
- '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87',
- '\x88', '\x89', '\x8A', '\x8B', '\x8C', '\x8D', '\x8E', '\x8F',
- '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97',
- '\x98', '\x99', '\x9A', '\x9B', '\x9C', '\x9D', '\x9E', '\x9F',
- '\xA0', '\xA5', '\xA2', '\xA3', '\xA4', '\xBC', '\x8C', '\xA7',
- '\xA8', '\x8A', '\xAA', '\x8D', '\x8F', '\xAD', '\x8E', '\xAF',
- '\xB0', '\xB9', '\xB2', '\xB3', '\xB4', '\xBE', '\x9C', '\xB7',
- '\xB8', '\x9A', '\xBA', '\x9D', '\x9F', '\xBD', '\x9E', '\xBF',
- '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7',
- '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF',
- '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7',
- '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF',
- '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7',
- '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF',
- '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\xF7',
- '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF',
- '\0'
- };
- QCString result;
- int len = sInput.length();
-
- for (int i = 0; i < len; ++i)
- {
- unsigned int c = sInput[i];
- result += (c > 127) ? ISOToWinTab[c & 0x7F] : c;
- }
- return result;
- }
+ }
+
public:
QCString idLanguage()
{ return "croatian"; }
QCString idLanguageCharset()
#ifdef _WIN32
- { return "windows-1250"; }
+ { return "windows-1250"; }
#else
- { return "iso-8859-2"; }
+ { return "iso-8859-2"; }
#endif
QCString latexBabelPackage()
{ return "croatian"; }
@@ -137,7 +68,7 @@ class TranslatorCroatian : public Translator
QCString trEnumerationValueDocumentation()
{ return decode("Dokumentacija enum vrijednosti"); }
QCString trMemberFunctionDocumentation()
- { return decode("Dokumentacija funkcija"); }
+ { return decode("Dokumentacija funkcija"); }
QCString trMemberDataDocumentation()
{ return decode("Documentacija varijabli"); }
QCString trGeneratedFrom(const char *s,bool single)
@@ -145,9 +76,9 @@ class TranslatorCroatian : public Translator
QCString result= decode("Dokumentacija za ")+s+
decode("je generirana iz ");
if (single)
- result+= decode("datoteke :");
- else
- result+= decode("slijedeæih datoteka:");
+ result+= decode("datoteke :");
+ else
+ result+= decode("slijedeæih datoteka:");
return result;
}
QCString trMore()
@@ -196,7 +127,7 @@ class TranslatorCroatian : public Translator
{ return decode("Tra¾i"); }
QCString trClassHierarchyDescription()
{ return decode("Stablo naslijeðivanja je poslo¾eno "
- "pribli¾no po abecedi:");
+ "pribli¾no po abecedi:");
}
QCString trFileListDescription(bool extractAll)
{
@@ -207,7 +138,7 @@ class TranslatorCroatian : public Translator
}
QCString trCompoundListDescription()
{ return decode("Popis svih klasa, unija i struktura "
- "s kratkim opisom :");
+ "s kratkim opisom :");
}
QCString trCompoundMembersDescription(bool extractAll)
{
@@ -311,8 +242,8 @@ class TranslatorCroatian : public Translator
QCString trForInternalUseOnly()
{ return decode("Iskljuèivo za internu uporabu."); }
QCString trReimplementedForInternalReasons()
- { return decode("Reimplementirano zbog internih razloga; "
- "Nema utjecaja na API.");
+ { return decode("Reimplementirano zbog internih razloga; "
+ "Nema utjecaja na API.");
}
QCString trWarning()
{ return decode("Upozorenje"); }
@@ -376,7 +307,7 @@ class TranslatorCroatian : public Translator
case ClassDef::Interface: result+=decode(" suèelja (interface) "); break;
case ClassDef::Exception: result+=decode(" iznimke (exception) "); break;
}
- result += (QCString)clName;
+ result += (QCString)clName;
return result;
}
@@ -384,14 +315,14 @@ class TranslatorCroatian : public Translator
// used as the title of the HTML page of a file
{
QCString result=decode("Opis datoteke ");
- result+=fileName;
- return result;
+ result+=fileName;
+ return result;
}
QCString trNamespaceReference(const char *namespaceName)
// used as the title of the HTML page of a namespace
{
QCString result =decode("Opis namespace-a ");
- result+=namespaceName;
+ result+=namespaceName;
return result;
}
@@ -712,12 +643,12 @@ class TranslatorCroatian : public Translator
}
virtual QCString trAttention()
{
- return decode("Pa¾nja");
+ return decode("Pa¾nja");
}
virtual QCString trInclByDepGraph()
{
return decode("Ovaj graf pokazuje koje datoteke izravno "
- "ili neizravno ukljuèuju ovu datoteku:");
+ "ili neizravno ukljuèuju ovu datoteku:");
}
virtual QCString trSince()
{
diff --git a/src/translator_kr.h b/src/translator_kr.h
new file mode 100644
index 0000000..6703fe0
--- /dev/null
+++ b/src/translator_kr.h
@@ -0,0 +1,803 @@
+/******************************************************************************
+ *
+ *
+ *
+ * Copyright (C) 1997-2000 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
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ * Documents produced by Doxygen are derivative works derived from the
+ * input used in their production; they are not affected by this license.
+ *
+ */
+
+#ifndef TRANSLATOR_KR_H
+#define TRANSLATOR_KR_H
+
+#include "translator.h"
+
+class TranslatorKorean : public Translator
+{
+ public:
+ QCString idLanguage()
+ { return "korean"; }
+ /*! returns the name of the package that is included by LaTeX */
+ QCString latexBabelPackage()
+ { return ""; } // What is the correct value here?
+
+ /*! return the language charset. This will be used for the HTML output */
+ virtual QCString idLanguageCharset()
+ {
+ return "euc-kr";
+ }
+
+ /*! used in the compound documentation before a list of related functions. */
+ QCString trRelatedFunctions()
+ { return "°ü·ÃµÈ ÇÔ¼öµé"; }
+
+ /*! subscript for the related functions. */
+ QCString trRelatedSubscript()
+ { return "°ü·ÃÁÖ¼®"; }
+
+ /*! header that is put before the detailed description of files, classes and namespaces. */
+ QCString trDetailedDescription()
+ { return "»ó¼¼ÇÑ ³»¿ë"; }
+
+ /*! header that is put before the list of typedefs. */
+ QCString trMemberTypedefDocumentation()
+ { return "¸â¹ö ŸÀÔÁ¤ÀÇ ¹®¼­È­"; }
+
+ /*! header that is put before the list of enumerations. */
+ QCString trMemberEnumerationDocumentation()
+ { return "±¸¼º¿ø(member) ¿­°Å ¹®¼­È­"; }
+
+ /*! header that is put before the list of member functions. */
+ QCString trMemberFunctionDocumentation()
+ { return "¸â¹ö ÇÔ¼ö ¹®¼­È­"; }
+
+ /*! header that is put before the list of member attributes. */
+ QCString trMemberDataDocumentation()
+ { return "¸â¼­ µ¥ÀÌŸ ¹®¼­È­"; }
+
+ /*! this is the text of a link put after brief descriptions. */
+ QCString trMore()
+ { return "More..."; }
+
+ /*! put in the class documentation */
+ QCString trListOfAllMembers()
+ { return "¸ðµç ±¸¼º¿øµé(members)ÀÇ ¸í´Ü"; }
+
+ /*! used as the title of the "list of all members" page of a class */
+ QCString trMemberList()
+ { return "±¸¼º¿ø(member) ¸í´Ü"; }
+
+ /*! this is the first part of a sentence that is followed by a class name */
+ QCString trThisIsTheListOfAllMembers()
+ { return "¿ÏÀüÇÑ ±¸¼º¿øµé(members)ÀÇ ¸í´Ü " ; } // "This is the complete list of members for "
+
+ /*! this is the remainder of the sentence after the class name */
+ QCString trIncludingInheritedMembers()
+ { return ", »ó¼Ó¹ÞÀº ¸ðµç ±¸¼º¿ø(members)µéµµ Æ÷ÇÔ"; } // ", including all inherited members."
+
+ /*! this is put at the author sections at the bottom of man pages.
+ * parameter s is name of the project name.
+ */
+ QCString trGeneratedAutomatically(const char *s)
+ { QCString result="";
+ if (s) result+=(QCString)s+"¿¡ ";
+ result+="source ÄÚµå·Î ºÎÅÍ Doxygen¿¡ ÀÇÇØ ÀÚµ¿ÀûÀ¸·Î »ý¼º";
+ return result;
+ }
+
+ /*! put after an enum name in the list of all members */
+ QCString trEnumName()
+ { return "¿­°Åü À̸§"; }
+
+ /*! put after an enum value in the list of all members */
+ QCString trEnumValue()
+ { return "¿­°Åü °ª"; }
+
+ /*! put after an undocumented member in the list of all members */
+ QCString trDefinedIn()
+ { return "¿¡¼­ Á¤ÀǵÈ"; }
+
+ /*! put as in introduction in the verbatim header file of a class.
+ * parameter f is the name of the include file.
+ */
+ QCString trVerbatimText(const char *f)
+ { return (QCString)"ÀÌ°ÍÀº "+f+" Æ÷ÇÔ ÆÄÀÏÀÇ Ãà¾àÀûÀÎ ¹®¼­ÀÌ´Ù"; }
+
+ // quick reference sections
+
+ /*! This is put above each page as a link to the list of all groups of
+ * compounds or files (see the \group command).
+ */
+ QCString trModules()
+ { return "¸ðµâµé"; }
+
+ /*! This is put above each page as a link to the class hierarchy */
+ QCString trClassHierarchy()
+ { return "Ŭ·¡½º °èÃþ(µµ)"; } // "Ŭ·¡½º Á¶Á÷" or "Ŭ·¡½º ºÐ·ùü°è"
+
+ /*! This is put above each page as a link to the list of annotated classes */
+ QCString trCompoundList()
+ { return "È¥ÇÕ ¸ñ·Ï"; } //"È¥ÇÕ ¸ñ·Ï", "ÇÕ¼º(ÁýÇÕ) ¸í´Ü(¸®½ºÆ®)"
+
+ /*! This is put above each page as a link to the list of documented files */
+ QCString trFileList()
+ { return "ÆÄÀÏ ¸ñ·Ï"; } //"ÆÄÀÏ ¸ñ·Ï", "ÆÄÀÏ ¸®½ºÆ®"
+
+ /*! This is put above each page as a link to the list of all verbatim headers */
+ QCString trHeaderFiles()
+ { return "Çì´õ ÆÄÀϵé"; }
+
+ /*! This is put above each page as a link to all members of compounds. */
+ QCString trCompoundMembers()
+ { return "È¥ÇÕ ¸â¹öµé"; } // "ÇÕ¼º(ÁýÇÕ) ¸í´Ü(¸â¹öµé)"
+
+ /*! This is put above each page as a link to all members of files. */
+ QCString trFileMembers()
+ { return "ÆÄÀÏ ¸â¹öµé"; }
+
+ /*! This is put above each page as a link to all related pages. */
+ QCString trRelatedPages()
+ { return "°ü·ÃµÈ ÆäÀÌÁöµé"; }
+
+ /*! This is put above each page as a link to all examples. */
+ QCString trExamples()
+ { return "¿¹Á¦µé"; }
+
+ /*! This is put above each page as a link to the search engine. */
+ QCString trSearch()
+ { return "°Ë»ö"; }
+
+ /*! This is an introduction to the class hierarchy. */
+ QCString trClassHierarchyDescription()
+ { return "ÀÌ »ó¼Ó ¸ñ·ÏÀº ¿ÏÀüÇÏÁö´Â ¾ÊÁö¸¸ ¾ËÆĺª¼øÀ¸·Î ºÐ·ùµÇ¾ú½À´Ï´Ù.";}
+
+ /*! This is an introduction to the list with all files. */
+ QCString trFileListDescription(bool extractAll)
+ {
+ QCString result="ÀÌ°ÍÀº °£·«ÇÑ ¼³¸íÀ» °¡Áø ¸ðµç "; // "Here is a list of all "
+ if (!extractAll) result+="¹®¼­È­µÈ "; // "documented "
+ result+="ÆÄÀϵ鿡 ´ëÇÑ ¸ñ·ÏÀÔ´Ï´Ù."; // "files with brief descriptions:"
+ return result;
+ }
+
+ /*! This is an introduction to the annotated compound list. */
+ QCString trCompoundListDescription()
+ { return "ÀÌ°ÍÀº °£·«ÇÑ ¼³¸íÀ» °¡Áø Ŭ·¡½ºµé, "
+ "±¸Á¶Ã¼µé, °ø¿ëüµé, ±×¸®°í ÀÎÅÍÆäÀ̽ºµéÀÔ´Ï´Ù.";
+ }
+
+ /*! This is an introduction to the page with all class members. */
+ QCString trCompoundMembersDescription(bool extractAll)
+ {
+ QCString result="ÀÌ°÷¿¡ ¸ðµç ¸®½ºÆ®°¡ ÀÖ½À´Ï´Ù"; //"Here is a list of all "
+ if (!extractAll) result+="¹®¼­È­µÈ "; //"documented "
+ result+="¸µÅ©°¡ µÈ Ŭ·¡½º ¸â¹öµé "; //"class members with links to "
+ if (extractAll)
+ result+="°¢°¢ÀÇ ¸â¹ö¸¦ À§ÇÑ Å¬·¡½º ¹®¼­:"; //"the class documentation for each member:"
+ else
+ result+="ÀÌÇÏ·Î ¼ÓÇÑ Å¬·¡½ºµé:"; //"the classes they belong to:"
+ return result;
+ }
+
+ /*! This is an introduction to the page with all file members. */
+ QCString trFileMembersDescription(bool extractAll)
+ {
+ QCString result="ÀÌ°÷¿¡ ¸ðµç ¸®½ºÆ®°¡ ÀÖ½À´Ï´Ù";
+ if (!extractAll) result+="¹®¼­È­µÈ ";
+ result+="¸µÅ©°¡ µÈ ÆÄÀÏ ¸â¹öµé ";
+ if (extractAll)
+ result+="°¢ ¸â¹öµé¿¡ ´ëÇÑ ÆÄÀÏ ¹®¼­È­"; // "the file documentation for each member:"
+ else
+ result+="±×°ÍµéÀÌ ¼ÓÇØÀÖ´Â ÆÄÀϵé"; // "the files they belong to:"
+ return result;
+ }
+
+ /*! This is an introduction to the page with the list of all header files. */
+ QCString trHeaderFilesDescription()
+ { return "ÀÌ°ÍÀº API¸¦ ±¸¼ºÇÏ´Â Çì´õ ÆÄÀϵéÀÔ´Ï´Ù."; } // "Here are the header files that make up the API:"
+
+ /*! This is an introduction to the page with the list of all examples */
+ QCString trExamplesDescription()
+ { return "ÀÌ°ÍÀº ¸ðµç ¿¹Á¦µéÀÇ ¸ñ·ÏÀÔ´Ï´Ù."; } // "Here is a list of all examples:"
+
+ /*! This is an introduction to the page with the list of related pages */
+ QCString trRelatedPagesDescription()
+ { return "ÀÌ°ÍÀº ¸ðµç °ü·ÃµÈ ¹®¼­È­ ÆäÀÌÁöµéÀÇ ¸ñ·ÏÀÔ´Ï´Ù."; }
+ // "Here is a list of all related documentation pages:"
+
+ /*! This is an introduction to the page with the list of class/file groups */
+ QCString trModulesDescription()
+ { return "ÀÌ°ÍÀº ¸ðµç ¸ðµâµéÀÇ ¸ñ·ÏÀÔ´Ï´Ù."; } // "Here is a list of all modules:"
+
+ /*! This sentences is used in the annotated class/file lists if no brief
+ * description is given.
+ */
+ QCString trNoDescriptionAvailable()
+ { return "À¯¿ëÇÑ ¼³¸íÀÌ ¾ø½À´Ï´Ù."; } // "No description available"
+
+ // index titles (the project name is prepended for these)
+
+
+ /*! This is used in HTML as the title of index.html. */
+ QCString trDocumentation()
+ { return "¹®¼­È­"; }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * index of all groups.
+ */
+ QCString trModuleIndex()
+ { return "¸ðµâ »öÀÎ"; }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * class hierarchy.
+ */
+ QCString trHierarchicalIndex()
+ { return "ºÐ·ùü°è »öÀÎ"; } // "Á¶Á÷ »öÀÎ", "°èÃþÀû À妽º"
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * annotated compound index.
+ */
+ QCString trCompoundIndex()
+ { return "ÇÕ¼º À妽º"; } // "È¥ÇÕ »öÀÎ"
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * list of all files.
+ */
+ QCString trFileIndex()
+ { return "ÆÄÀÏ »öÀÎ"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all groups.
+ */
+ QCString trModuleDocumentation()
+ { return "¸ðµâ ¹®¼­È­"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all classes, structs and unions.
+ */
+ QCString trClassDocumentation()
+ { return "Ŭ·¡½º ¹®¼­È­"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all files.
+ */
+ QCString trFileDocumentation()
+ { return "ÆÄÀÏ ¹®¼­È­"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all examples.
+ */
+ QCString trExampleDocumentation()
+ { return "¿¹Á¦ ¹®¼­È­"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all related pages.
+ */
+ QCString trPageDocumentation()
+ { return "ÆäÀÌÁö ¹®¼­È­"; }
+
+ /*! This is used in LaTeX as the title of the document */
+ QCString trReferenceManual()
+ { return "Âü°í¼­"; } // "Âü°í¼­","Âü°í ¸Å´º¾ó", "ÂüÁ¶ ¸Þ´º¾ó"
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of defines
+ */
+ QCString trDefines()
+ { return "Á¤Àǵé"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of function prototypes
+ */
+ QCString trFuncProtos()
+ { return "ÇÔ¼ö ¿øÇüµé"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of typedefs
+ */
+ QCString trTypedefs()
+ { return "ŸÀÔ Á¤Àǵé"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of enumerations
+ */
+ QCString trEnumerations()
+ { return "Enumerations"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) functions
+ */
+ QCString trFunctions()
+ { return "ÇÔ¼öµé"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) variables
+ */
+ QCString trVariables()
+ { return "º¯¼öµé"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) variables
+ */
+ QCString trEnumerationValues()
+ { return "¿­°Åü °ªµé"; }
+
+ /*! This is used in man pages as the author section. */
+ QCString trAuthor()
+ { return "ÀúÀÚ"; }
+
+ /*! This is used in the documentation of a file before the list of
+ * documentation blocks for defines
+ */
+ QCString trDefineDocumentation()
+ { return "Á¤ÀÇ ¹®¼­È­"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for function prototypes
+ */
+ QCString trFunctionPrototypeDocumentation()
+ { return "ÇÔ¼ö ¿øÇü ¹®¼­È­"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for typedefs
+ */
+ QCString trTypedefDocumentation()
+ { return "ŸÀÔ Á¤ÀÇ ¹®¼­È­"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for enumeration types
+ */
+ QCString trEnumerationTypeDocumentation()
+ { return "¿­°Åü ŸÀÔ ¹®¼­È­"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for enumeration values
+ */
+ QCString trEnumerationValueDocumentation()
+ { return "¿­°Åü °ª ¹®¼­È­"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for functions
+ */
+ QCString trFunctionDocumentation()
+ { return "ÇÔ¼ö ¹®¼­È­"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for variables
+ */
+ QCString trVariableDocumentation()
+ { return "º¯¼ö ¹®¼­È­"; }
+
+ /*! This is used in the documentation of a file/namespace/group before
+ * the list of links to documented compounds
+ */
+ QCString trCompounds()
+ { return "È¥ÇÕµé"; }
+
+ /*! This is used in the documentation of a group before the list of
+ * links to documented files
+ */
+ QCString trFiles()
+ { return "ÆÄÀϵé"; }
+
+ /*! This is used in the standard footer of each page and indicates when
+ * the page was generated
+ */
+ QCString trGeneratedAt(const char *date,const char *projName)
+ {
+ QCString result="";
+ if (projName) result+=(QCString)projName+"¿¡ ´ëÇØ ";
+ result += (QCString)date+" »ý¼º by";
+ return result;
+ }
+ /*! This is part of the sentence used in the standard footer of each page.
+ */
+ QCString trWrittenBy()
+ {
+ return "written by"; // "¿¡ ÀÇÇØ ¾²¿©Áø?"
+ }
+
+ /*! this text is put before a class diagram */
+ QCString trClassDiagram(const char *clName)
+ {
+ return (QCString)clName+"¿¡ ´ëÇÑ »ó¼Ó µµÇ¥"; // "Inheritance diagram for "+clName
+ }
+
+ /*! this text is generated when the \internal command is used. */
+ QCString trForInternalUseOnly()
+ { return "³»ºÎ »ç¿ë¸¸À» À§ÇØ"; }
+
+ /*! this text is generated when the \reimp command is used. */
+ QCString trReimplementedForInternalReasons()
+ { return "³»ºÎÀû ÀÌÀ¯¸¦ À§ÇØ À籸ÇöµÈ: API°¡ ¿µÇâÀ» ¹ÞÁö¾Ê¾Ò´Ù."; }
+ // "Reimplemented for internal reasons; the API is not affected."
+
+ /*! this text is generated when the \warning command is used. */
+ QCString trWarning()
+ { return "°æ°í"; }
+
+ /*! this text is generated when the \bug command is used. */
+ QCString trBugsAndLimitations()
+ { return "¹ö±×µé°ú ÇÑ°èµé"; }
+
+ /*! this text is generated when the \version command is used. */
+ QCString trVersion()
+ { return "¹öÀü"; }
+
+ /*! this text is generated when the \date command is used. */
+ QCString trDate()
+ { return "³¯Â¥"; }
+
+ /*! this text is generated when the \author command is used. */
+ QCString trAuthors()
+ { return "ÀúÀÚ(µé)"; }
+
+ /*! this text is generated when the \return command is used. */
+ QCString trReturns()
+ { return "¹Ýȯ"; }
+
+ /*! this text is generated when the \sa command is used. */
+ QCString trSeeAlso()
+ { return "ÂüÁ¶ÇϽÿä"; }
+
+ /*! this text is generated when the \param command is used. */
+ QCString trParameters()
+ { return "¸Å°³º¯¼öµé"; }
+
+ /*! this text is generated when the \exception command is used. */
+ QCString trExceptions()
+ { return "¿¹¿Üµé"; }
+
+ /*! this text is used in the title page of a LaTeX document. */
+ QCString trGeneratedBy()
+ { return "¿¡ ÀÇÇØ »ý¼ºµÈ"; }
+
+ // new since 0.49-990307
+
+ /*! used as the title of page containing all the index of all namespaces. */
+ QCString trNamespaceList()
+ { return "À̸§°ø°£ ¸ñ·Ï"; }
+
+ /*! used as an introduction to the namespace list */
+ QCString trNamespaceListDescription(bool extractAll)
+ {
+ QCString result="ÀÌ°ÍÀº ¸ðµç °£·«ÇÑ ¼³¸íÀ» °¡Áø ";
+ if (!extractAll) result+="¹®¼­È­µÈ ";
+ result+="À̸§°ø°£ÀÇ ¸ñ·ÏÀÔ´Ï´Ù:";
+ return result;
+ }
+
+ /*! used in the class documentation as a header before the list of all
+ * friends of a class
+ */
+ QCString trFriends()
+ { return "ÇÁ·»µå"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990405
+//////////////////////////////////////////////////////////////////////////
+
+ /*! used in the class documentation as a header before the list of all
+ * related classes
+ */
+ virtual QCString trRelatedFunctionDocumentation()
+ { return "ÇÁ·»µå, ±×¸®°í °ü·ÃµÈ ÇÔ¼ö ¹®¼­È­"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990425
+//////////////////////////////////////////////////////////////////////////
+
+ /*! used as the title of the HTML page of a class/struct/union */
+ QCString trCompoundReference(const char *clName,
+ ClassDef::CompoundType compType,
+ bool isTemplate)
+ {
+ QCString result=(QCString)clName+" ";
+ if (isTemplate) result+=" ÅÛÇø´";
+ switch(compType)
+ {
+ case ClassDef::Class: result+=" Ŭ·¡½º"; break;
+ case ClassDef::Struct: result+=" ±¸Á¶Ã¼"; break;
+ case ClassDef::Union: result+=" °ø¿ëü"; break;
+ case ClassDef::Interface: result+=" ÀÎÅÍÆäÀ̽º"; break;
+ case ClassDef::Exception: result+=" ¿¹¿Ü"; break;
+ }
+ result+=" ÂüÁ¶";
+ return result;
+ }
+
+ /*! used as the title of the HTML page of a file */
+ QCString trFileReference(const char *fileName)
+ {
+ QCString result=fileName;
+ result+=" ÆÄÀÏ ÂüÁ¶";
+ return result;
+ }
+
+ /*! used as the title of the HTML page of a namespace */
+ QCString trNamespaceReference(const char *namespaceName)
+ {
+ QCString result=namespaceName;
+ result+=" À̸§ °ø°£ ÂüÁ¶";
+ return result;
+ }
+
+ /*! \mgroup Class sections
+ * these are for the member sections of a class, struct or union
+ */
+ QCString trPublicMembers()
+ { return "°ø¿ë ¸Þ¼Òµå"; }
+ QCString trPublicSlots()
+ { return "°ø¿ë Slots"; }
+ QCString trSignals()
+ { return "½ÅÈ£"; }
+ QCString trStaticPublicMembers()
+ { return "Á¤Àû °ø¿ë ¸Þ¼Òµå"; }
+ QCString trProtectedMembers()
+ { return "ÇÁ·ÎÅØƼµå ¸Þ¼Òµå"; }
+ QCString trProtectedSlots()
+ { return "Protected Slots"; }
+ QCString trStaticProtectedMembers()
+ { return "Á¤Àû ÇÁ·ÎÅØƼµå ¸Þ¼Òµå"; }
+ QCString trPrivateMembers()
+ { return "ÇÁ¶óÀ̺£ÀÌÆ® ¸Þ¼Òµå"; }
+ QCString trPrivateSlots()
+ { return "Private Slots"; }
+ QCString trStaticPrivateMembers()
+ { return "Á¤Àû ÇÁ¶óÀ̺£ÀÌÆ® ¸Þ¼Òµå"; }
+ /*! \endmgroup */
+
+ /*! this function is used to produce a comma-separated list of items.
+ * use generateMarker(i) to indicate where item i should be put.
+ */
+ QCString trWriteList(int numEntries)
+ {
+ QCString result;
+ int i;
+ // the inherits list contain `numEntries' classes
+ for (i=0;i<numEntries;i++)
+ {
+ // use generateMarker to generate placeholders for the class links!
+ result+=generateMarker(i); // generate marker for entry i in the list
+ // (order is left to right)
+
+ if (i!=numEntries-1) // not the last entry, so we need a separator
+ {
+ if (i<numEntries-2) // not the fore last entry
+ result+=", ";
+ else // the fore last entry
+ result+=", and ";
+ }
+ }
+ return result;
+ }
+
+ /*! used in class documentation to produce a list of base classes,
+ * if class diagrams are disabled.
+ */
+ QCString trInheritsList(int numEntries)
+ {
+ return trWriteList(numEntries)+" µéÀ» »ó¼ÓÇÏ´Ù.";
+ }
+
+ /*! used in class documentation to produce a list of super classes,
+ * if class diagrams are disabled.
+ */
+ QCString trInheritedByList(int numEntries)
+ {
+ return trWriteList(numEntries)+"¿¡ ÀÇÇØ »ó¼ÓµÈ.";
+ }
+
+ /*! used in member documentation blocks to produce a list of
+ * members that are hidden by this one.
+ */
+ QCString trReimplementedFromList(int numEntries)
+ {
+ return trWriteList(numEntries)+"À¸·ÎºÎÅÍ À籸ÇöµÈ.";
+ }
+
+ /*! used in member documentation blocks to produce a list of
+ * all member that overwrite the implementation of this member.
+ */
+ QCString trReimplementedInList(int numEntries)
+ {
+ return trWriteList(numEntries)+"¿¡¼­ À籸ÇöµÈ.";
+ }
+
+ /*! This is put above each page as a link to all members of namespaces. */
+ QCString trNamespaceMembers()
+ { return "À̸§°ø°£ ¸â¹öµé"; }
+
+ /*! This is an introduction to the page with all namespace members */
+ QCString trNamespaceMemberDescription(bool extractAll)
+ {
+ QCString result="ÀÌ°ÍÀº ¸ðµç ";
+ if (!extractAll) result+="¹®¼­È­µÈ ";
+ result+="À̸§°ø°£ ¸â¹öµéÀÇ ¸ñ·ÏÀÔ´Ï´Ù.";
+ if (extractAll)
+ result+="°¢ ¸â¹öµé¿¡ ´ëÇÑ ¹®¼­È­¿¡ ";
+ else
+ result+="¼ÓÇØÀÖ´Â À̸§°ø°£¿¡ ";
+ result+="¸µÅ©µµÀÖÀ¾´Ï´Ù.";
+ return result;
+ }
+ /*! This is used in LaTeX as the title of the chapter with the
+ * index of all namespaces.
+ */
+ QCString trNamespaceIndex()
+ { return "À̸§°ø°£ »öÀÎ"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all namespaces.
+ */
+ QCString trNamespaceDocumentation()
+ { return "À̸§°ø°£ ¹®¼­È­"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990522
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This is used in the documentation before the list of all
+ * namespaces in a file.
+ */
+ QCString trNamespaces()
+ { return "À̸§°ø°£"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990728
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This is put at the bottom of a class documentation page and is
+ * followed by a list of files that were used to generate the page.
+ */
+ QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
+ bool single)
+ { // here s is one of " Class", " Struct" or " Union"
+ // single is true implies a single file
+ QCString result=(QCString)"ÀÌ ";
+ switch(compType)
+ {
+ case ClassDef::Class: result+="Ŭ·¡½º"; break;
+ case ClassDef::Struct: result+="±¸Á¶Ã¼"; break;
+ case ClassDef::Union: result+="°ø¿ëü"; break;
+ case ClassDef::Interface: result+="ÀÎÅÍÆäÀ̽º"; break;
+ case ClassDef::Exception: result+="¿¹¿Ü"; break;
+ }
+ result+="À» À§ÇÑ ¹®¼­È­´Â ´ÙÀ½ÀÇ ÆÄÀÏ";
+ if (!single) result+="µé";
+ result+="·ÎºÎÅÍ »ý¼ºµÇ¾ú½À´Ï´Ù:";
+ return result;
+ }
+
+ /*! This is in the (quick) index as a link to the alphabetical compound
+ * list.
+ */
+ QCString trAlphabeticalList()
+ { return "¾ËÆĺª¼ø¼­ÀÇ ¸ñ·Ï"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990901
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This is used as the heading text for the retval command. */
+ QCString trReturnValues()
+ { return "¹Ýȯ°ª"; }
+
+ /*! This is in the (quick) index as a link to the main page (index.html)
+ */
+ QCString trMainPage()
+ { return "ÁÖ¿ä ÆäÀÌÁö"; }
+
+ /*! This is used in references to page that are put in the LaTeX
+ * documentation. It should be an abbreviation of the word page.
+ */
+ QCString trPageAbbreviation()
+ { return "ÆäÀÌÁö"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-991003
+//////////////////////////////////////////////////////////////////////////
+
+ QCString trSources()
+ {
+ return "Ãâó";
+ }
+ QCString trDefinedAtLineInSourceFile()
+ {
+ return "ÆÄÀÏ @1. ÀÇ @0 ¹ø° ¶óÀο¡¼­ Á¤ÀÇ"; // "Definition at line @0 of file @1."
+ }
+ QCString trDefinedInSourceFile()
+ {
+ return "ÆÄÀÏ @0. ¿¡¼­ Á¤ÀÇ"; // "Definition in file @0."
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.0.0
+//////////////////////////////////////////////////////////////////////////
+
+ QCString trDeprecated()
+ {
+ return "Deprecated"; // "ºñ³­¹ÞÀº(??)","¹Ý´ëÇÏ´Â"
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.1.0
+//////////////////////////////////////////////////////////////////////////
+
+ /*! this text is put before a collaboration diagram */
+ QCString trCollaborationDiagram(const char *clName)
+ {
+ return (QCString)clName+"¿¡ ´ëÇÑ ¿øÁ¶ µµÇ¥:";
+ }
+ /*! this text is put before an include dependency graph */
+ QCString trInclDepGraph(const char *fName)
+ {
+ return (QCString)fName+"¿¡ ´ëÇÑ include ÀÇÁ¸ ±×·¡ÇÁ";
+ }
+ /*! header that is put before the list of constructor/destructors. */
+ QCString trConstructorDocumentation()
+ {
+ return "»ý¼ºÀÚ & ¼Ò¸êÀÚ ¹®¼­È­";
+ }
+ /*! Used in the file documentation to point to the corresponding sources. */
+ QCString trGotoSourceCode()
+ {
+ return "ÀÌ ÆÄÀÏ¿¡ ´ëÇÑ ¼Ò½º ÄÚµå·Î °¡½Ã¿À";
+ }
+ /*! Used in the file sources to point to the corresponding documentation. */
+ QCString trGotoDocumentation()
+ {
+ return "ÀÌ ÆÄÀÏÀÇ ¹®¼­È­·Î °¡½Ã¿À";
+ }
+ /*! Text for the \pre command */
+ QCString trPrecondition()
+ {
+ return "ÀüÁ¦ Á¶°Ç";
+ }
+ /*! Text for the \post command */
+ QCString trPostcondition()
+ {
+ return "ÈÄ¹Ì Á¶°Ç"; // "ÈÄÄ¡Á¶°Ç"
+ }
+ /*! Text for the \invariant command */
+ QCString trInvariant()
+ {
+ return "º¯ÇÏÁö ¾Ê´Â";
+ }
+ /*! Text shown before a multi-line variable/enum initialization */
+ QCString trInitialValue()
+ {
+ return "ÃʱâÈ­±â";
+ }
+ /*! Text used the source code in the file index */
+ QCString trCode()
+ {
+ return "ÄÚµå";
+ }
+ QCString trGraphicalHierarchy()
+ {
+ return "µµÇ¥ÀÇ Å¬·¡½º ºÐ·ùü°è"; // "µµÇ¥ÀÇ Å¬·¡½º Á¶Á÷"
+ }
+ QCString trGotoGraphicalHierarchy()
+ {
+ return "µµÇ¥ÀÇ Å¬·¡½º ºÐ·ùü°è·Î °¡½Ã¿À"; // "µµÇ¥ÀÇ Å¬·¡½º Á¶Á÷À¸·Î °¡½Ã¿À"
+ }
+ QCString trGotoTextualHierarchy()
+ {
+ return "¹®ÀÚÀÇ Å¬·¡½º ºÐ·ùü°è·Î °¡½Ã¿À"; // "¹®ÀÚÀÇ Å¬·¡½º Á¶Á÷À¸·Î °¡½Ã¿À"
+ }
+ QCString trPageIndex()
+ {
+ return "ÆäÀÌÁö »öÀÎ";
+ }
+};
+
+#endif
diff --git a/src/util.cpp b/src/util.cpp
index 61770bc..d2691ce 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -314,6 +314,31 @@ ClassDef *getClass(const char *name)
return classDict[name];
}
+NamespaceDef *getResolvedNamespace(const char *name)
+{
+ if (name==0 || name[0]=='\0') return 0;
+ QCString *subst = namespaceAliasDict[name];
+ if (subst)
+ {
+ int count=0; // recursion detection guard
+ QCString *newSubst;
+ while ((newSubst=namespaceAliasDict[*subst]) && count<10)
+ {
+ subst=newSubst;
+ count++;
+ }
+ if (count==10)
+ {
+ warn_cont("Warning: possible recursive namespace alias detected for %s!\n",name);
+ }
+ return namespaceDict[subst->data()];
+ }
+ else
+ {
+ return namespaceDict[name];
+ }
+}
+
ClassDef *getResolvedClass(const char *name)
{
if (name==0 || name[0]=='\0') return 0;
@@ -2434,9 +2459,10 @@ void extractNamespaceName(const QCString &scopeName,
{
QCString clName=scopeName.copy();
//QCString nsName;
- if (!clName.isEmpty() && namespaceDict[clName] && getClass(clName)==0)
+ NamespaceDef *nd;
+ if (!clName.isEmpty() && (nd=getResolvedNamespace(clName)) && getClass(clName)==0)
{ // the whole name is a namespace (and not a class)
- namespaceName=clName.copy();
+ namespaceName=nd->name().copy();
className.resize(0);
//printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(),
// className.data(),namespaceName.data());
@@ -2446,9 +2472,9 @@ void extractNamespaceName(const QCString &scopeName,
while (p>=0 && (i=clName.findRev("::",p))!=-1)
// see if the first part is a namespace (and not a class)
{
- if (i>0 && namespaceDict[clName.left(i)] && getClass(clName.left(i))==0)
+ if (i>0 && (nd=getResolvedNamespace(clName.left(i))) && getClass(clName.left(i))==0)
{
- namespaceName=clName.left(i);
+ namespaceName=nd->name().copy();
className=clName.right(clName.length()-i-2);
//printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(),
// className.data(),namespaceName.data());
diff --git a/src/util.h b/src/util.h
index deb5d2a..f0ed331 100644
--- a/src/util.h
+++ b/src/util.h
@@ -107,6 +107,7 @@ extern QCString substitute(const char *s,const char *src,const char *dst);
extern QCString resolveDefines(const char *n);
extern ClassDef *getClass(const char *key);
extern ClassDef *getResolvedClass(const char *key);
+extern NamespaceDef *getResolvedNamespace(const char *key);
extern FileDef *findFileDef(const FileNameDict *fnDict,const char *n,
bool &ambig);
extern QCString showFileDefMatches(const FileNameDict *fnDict,const char *n);