Commit b91275de authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-20000910

parent 6838640c
DOXYGEN Version 1.2.1-20000829 DOXYGEN Version 1.2.1-20000910
Please read the installation section of the manual for instructions. Please read the installation section of the manual for instructions.
-------- --------
Dimitri van Heesch (29 August 2000) Dimitri van Heesch (10 September 2000)
DOXYGEN Version 1.2.1-20000829 DOXYGEN Version 1.2.1-20000910
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at ...@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy, Enjoy,
Dimitri van Heesch (29 August 2000) Dimitri van Heesch (10 September 2000)
1.2.1-20000829 1.2.1-20000910
...@@ -775,7 +775,7 @@ void init() ...@@ -775,7 +775,7 @@ void init()
"information to generate all constant output in the proper language. \n" "information to generate all constant output in the proper language. \n"
"The default language is English, other supported languages are: \n" "The default language is English, other supported languages are: \n"
"Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, \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","English");
ConfigString::addFixedValue("outputLanguage","Dutch"); ConfigString::addFixedValue("outputLanguage","Dutch");
...@@ -785,7 +785,9 @@ void init() ...@@ -785,7 +785,9 @@ void init()
ConfigString::addFixedValue("outputLanguage","Swedish"); ConfigString::addFixedValue("outputLanguage","Swedish");
ConfigString::addFixedValue("outputLanguage","German"); ConfigString::addFixedValue("outputLanguage","German");
ConfigString::addFixedValue("outputLanguage","Finnish"); ConfigString::addFixedValue("outputLanguage","Finnish");
ConfigString::addFixedValue("outputLanguage","Hungarian");
ConfigString::addFixedValue("outputLanguage","Japanese"); ConfigString::addFixedValue("outputLanguage","Japanese");
ConfigString::addFixedValue("outputLanguage","Korean");
ConfigString::addFixedValue("outputLanguage","Spanish"); ConfigString::addFixedValue("outputLanguage","Spanish");
ConfigString::addFixedValue("outputLanguage","Russian"); ConfigString::addFixedValue("outputLanguage","Russian");
ConfigString::addFixedValue("outputLanguage","Croatian"); ConfigString::addFixedValue("outputLanguage","Croatian");
...@@ -920,11 +922,11 @@ void init() ...@@ -920,11 +922,11 @@ void init()
"CASE_SENSE_NAMES", "CASE_SENSE_NAMES",
"TRUE", "TRUE",
"determines if output can be mixed case.", "determines if output can be mixed case.",
"If the CASE_SENSE_NAMES tag is set to NO (the default) then Doxygen \n" "If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate \n"
"will only generate file names in lower case letters. If set to \n" "file names in lower case letters. If set to YES upper case letters are also \n"
"YES upper case letters are also allowed. This is useful if you have \n" "allowed. This is useful if you have classes or files whose names only differ \n"
"classes or files whose names only differ in case and if your file system \n" "in case and if your file system supports case sensitive file names. Windows \n"
"supports case sensitive file names. \n" "users are adviced to set this option to NO.\n"
); );
ConfigBool::add( "hideScopeNames", ConfigBool::add( "hideScopeNames",
"HIDE_SCOPE_NAMES", "HIDE_SCOPE_NAMES",
...@@ -983,6 +985,15 @@ void init() ...@@ -983,6 +985,15 @@ void init()
"alphabetically by member name. If set to NO the members will appear in \n" "alphabetically by member name. If set to NO the members will appear in \n"
"declaration order. \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", ConfigInt::add( "tabSize",
"TAB_SIZE", "TAB_SIZE",
"8", "8",
...@@ -1019,7 +1030,7 @@ void init() ...@@ -1019,7 +1030,7 @@ void init()
"", "",
"list of aliases", "list of aliases",
"This tag can be used to specify a number of aliases that acts \n" "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" "For example adding \"sideeffect=\\par Side Effects:\\n\" will allow you to \n"
"put the command \\sideeffect (or @sideeffect) in the documentation, which \n" "put the command \\sideeffect (or @sideeffect) in the documentation, which \n"
"will result in a user defined paragraph with heading \"Side Effects:\". \n" "will result in a user defined paragraph with heading \"Side Effects:\". \n"
......
...@@ -66,6 +66,7 @@ followed by the descriptions of the tags grouped by category. ...@@ -66,6 +66,7 @@ followed by the descriptions of the tags grouped by category.
\begin{multicols}{3} \begin{multicols}{3}
\begin{CompactList} \begin{CompactList}
\endlatexonly \endlatexonly
<li> \refitem cfg_aliases ALIASES
<li> \refitem cfg_allexternals ALLEXTERNALS <li> \refitem cfg_allexternals ALLEXTERNALS
<li> \refitem cfg_alphabetical_index ALPHABETICAL_INDEX <li> \refitem cfg_alphabetical_index ALPHABETICAL_INDEX
<li> \refitem cfg_always_detailed_sec ALWAYS_DETAILED_SEC <li> \refitem cfg_always_detailed_sec ALWAYS_DETAILED_SEC
...@@ -81,6 +82,7 @@ followed by the descriptions of the tags grouped by category. ...@@ -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_latex COMPACT_LATEX
<li> \refitem cfg_compact_rtf COMPACT_RTF <li> \refitem cfg_compact_rtf COMPACT_RTF
<li> \refitem cfg_disable_index DISABLE_INDEX <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_abspath DOC_ABSPATH
<li> \refitem cfg_doc_url DOC_URL <li> \refitem cfg_doc_url DOC_URL
<li> \refitem cfg_dot_path DOT_PATH <li> \refitem cfg_dot_path DOT_PATH
...@@ -104,6 +106,8 @@ followed by the descriptions of the tags grouped by category. ...@@ -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_man GENERATE_MAN
<li> \refitem cfg_generate_rtf GENERATE_RTF <li> \refitem cfg_generate_rtf GENERATE_RTF
<li> \refitem cfg_generate_tagfile GENERATE_TAGFILE <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_graphical_hierarchy GRAPHICAL_HIERARCHY
<li> \refitem cfg_have_dot HAVE_DOT <li> \refitem cfg_have_dot HAVE_DOT
<li> \refitem cfg_hide_scope_names HIDE_SCOPE_NAMES <li> \refitem cfg_hide_scope_names HIDE_SCOPE_NAMES
...@@ -203,8 +207,8 @@ followed by the descriptions of the tags grouped by category. ...@@ -203,8 +207,8 @@ followed by the descriptions of the tags grouped by category.
documentation generated by doxygen is written. Doxygen will use this documentation generated by doxygen is written. Doxygen will use this
information to generate all constant output in the proper language. information to generate all constant output in the proper language.
The default language is English, other supported languages are: The default language is English, other supported languages are:
Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, Dutch, French, Italian, Czech, Swedish, German, Finnish, Hungarian, Japanese,
Spanish, Russian, Croatian, Polish and Portuguese. Korean, Spanish, Russian, Croatian, Polish and Portuguese.
\anchor cfg_disable_index \anchor cfg_disable_index
<dt>\c DISABLE_INDEX <dd> <dt>\c DISABLE_INDEX <dd>
...@@ -392,6 +396,14 @@ followed by the descriptions of the tags grouped by category. ...@@ -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 alphabetically by member name. If set to \c NO the members will appear in
declaration order. 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 \anchor cfg_tab_size
<dt>\c TAB_SIZE <dd> <dt>\c TAB_SIZE <dd>
\addindex TAB_SIZE \addindex TAB_SIZE
...@@ -405,6 +417,39 @@ followed by the descriptions of the tags grouped by category. ...@@ -405,6 +417,39 @@ followed by the descriptions of the tags grouped by category.
documentation sections, marked by \ref cmdif "\\if" \<section-label\> ... documentation sections, marked by \ref cmdif "\\if" \<section-label\> ...
\ref cmdendif "\\endif" blocks. \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> </dl>
\subsection messages_input Options related to warning and progress messages \subsection messages_input Options related to warning and progress messages
......
...@@ -169,6 +169,16 @@ EXCLUDE_PATTERNS = */test/* ...@@ -169,6 +169,16 @@ EXCLUDE_PATTERNS = */test/*
Put a \% in front of the class name. Like this: \%MyClass. Doxygen will then Put a \% in front of the class name. Like this: \%MyClass. Doxygen will then
remove the % and keep the word unlinked. 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> </ol>
\htmlonly \htmlonly
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<li>Requires very little overhead from the writer of the documentation. <li>Requires very little overhead from the writer of the documentation.
Plain text will do, but for more fancy or structured output HTML tags Plain text will do, but for more fancy or structured output HTML tags
and/or some of doxygen's special commands can be used. 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, <li>Supports documentation of files, namespaces, classes, structs, unions,
templates, variables, functions, typedefs, enums and defines. templates, variables, functions, typedefs, enums and defines.
<li>JavaDoc (1.1), Qt-Doc, and KDOC compatible. <li>JavaDoc (1.1), Qt-Doc, and KDOC compatible.
......
...@@ -49,8 +49,8 @@ Documents produced by Doxygen are derivative works derived from the ...@@ -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. input used in their production; they are not affected by this license.
<h2>Introduction</h2> <h2>Introduction</h2>
Doxygen is a documentation system for C++, IDL (Corba and Microsoft flavors) Doxygen is a documentation system for C++, IDL
and C. (Corba, Microsoft and KDE-DCOP flavors) and C.
It can help you in three ways: It can help you in three ways:
<ol> <ol>
......
...@@ -22,9 +22,9 @@ Doxygen has support for multiple languages. This means that the text fragments t ...@@ -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 doxygen generates can changed into languages other than English
(the default) at configuration time. (the default) at configuration time.
<p> <p>
Currently, supported languages are English, French, Czech, Dutch, Currently, supported languages are English, French, Czech, Dutch, Spannish,
Swedish, Italian, German and Japanese. A number Swedish, Russian, Czech, Croatian, Italian, Hungarian, Finnish, German and Japanese,
of people have volunteered to add support for other languages as well. and Korean.
Here is a list of the languages and their current maintainers: Here is a list of the languages and their current maintainers:
<p> <p>
...@@ -155,6 +155,30 @@ Here is a list of the languages and their current maintainers: ...@@ -155,6 +155,30 @@ Here is a list of the languages and their current maintainers:
snob@NOSPAM.int.spb.ru</a> snob@NOSPAM.int.spb.ru</a>
</TD> </TD>
</TR> </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>
Fldvri Gyrgy
</TD>
<TD>
<a href="mailto:foldvari@NOSPAM.diatronltd.com">
foldvari@NOSPAM.diatronltd.com</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD> <TD>
Croatian Croatian
...@@ -167,7 +191,6 @@ Here is a list of the languages and their current maintainers: ...@@ -167,7 +191,6 @@ Here is a list of the languages and their current maintainers:
boris.bralo@NOSPAM.zg.tel.hr</a> boris.bralo@NOSPAM.zg.tel.hr</a>
</TD> </TD>
</TR> </TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD> <TD>
Polish Polish
...@@ -225,6 +248,10 @@ Here is a list of the languages and their current maintainers: ...@@ -225,6 +248,10 @@ Here is a list of the languages and their current maintainers:
\hline \hline
Russian & Nickolay Semyonov & {\tt snob@int.spb.ru} \\ Russian & Nickolay Semyonov & {\tt snob@int.spb.ru} \\
\hline \hline
Korean & Richard Kim & {\\tt ryk@dspwiz.com} \\
\hline
Hungarian & Fldvri Gyrgy & {\\tt foldvari@diatronltd.com} \\
\hline
Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} \\ Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} \\
\hline \hline
Polish & Grzegorz Kowal & {\tt g\_kowal@poczta.onet.pl} \\ Polish & Grzegorz Kowal & {\tt g\_kowal@poczta.onet.pl} \\
......
Name: doxygen Name: doxygen
Version: 1.2.1-20000829 Version: 1.2.1-20000910
Summary: documentation system for C, C++ and IDL Summary: documentation system for C, C++ and IDL
Release: 1 Release: 1
Source0: doxygen-%{version}.src.tar.gz Source0: doxygen-%{version}.src.tar.gz
......
...@@ -178,6 +178,7 @@ void ClassDef::addMembersToMemberGroup() ...@@ -178,6 +178,7 @@ void ClassDef::addMembersToMemberGroup()
addMemberListToGroup(&pubAttribs); addMemberListToGroup(&pubAttribs);
addMemberListToGroup(&pubSlots); addMemberListToGroup(&pubSlots);
addMemberListToGroup(&signals); addMemberListToGroup(&signals);
addMemberListToGroup(&dcopMethods);
addMemberListToGroup(&pubStaticMembers); addMemberListToGroup(&pubStaticMembers);
addMemberListToGroup(&pubStaticAttribs); addMemberListToGroup(&pubStaticAttribs);
addMemberListToGroup(&proTypes); addMemberListToGroup(&proTypes);
...@@ -219,11 +220,15 @@ void ClassDef::insertMember(MemberDef *md) ...@@ -219,11 +220,15 @@ void ClassDef::insertMember(MemberDef *md)
{ {
switch (md->memberType()) switch (md->memberType())
{ {
case MemberDef::Signal: case MemberDef::Signal: // Qt specific
signals.append(md); signals.append(md);
md->setSectionList(&signals); md->setSectionList(&signals);
break; break;
case MemberDef::Slot: case MemberDef::DCOP: // KDE2 specific
dcopMethods.append(md);
md->setSectionList(&dcopMethods);
break;
case MemberDef::Slot: // Qt specific
switch (md->protection()) switch (md->protection())
{ {
case Protected: case Protected:
...@@ -358,7 +363,8 @@ void ClassDef::insertMember(MemberDef *md) ...@@ -358,7 +363,8 @@ void ClassDef::insertMember(MemberDef *md)
{ {
switch (md->memberType()) switch (md->memberType())
{ {
case MemberDef::Signal: case MemberDef::Signal: // fall through
case MemberDef::DCOP:
if (Config::sortMembersFlag) if (Config::sortMembersFlag)
functionMembers.inSort(md); functionMembers.inSort(md);
else else
...@@ -511,6 +517,7 @@ void ClassDef::computeAnchors() ...@@ -511,6 +517,7 @@ void ClassDef::computeAnchors()
setAnchors('s',&pubTypes); setAnchors('s',&pubTypes);
setAnchors('t',&proTypes); setAnchors('t',&proTypes);
setAnchors('u',&priTypes); setAnchors('u',&priTypes);
setAnchors('v',&dcopMethods);
} }
void ClassDef::distributeMemberGroupDocumentation() void ClassDef::distributeMemberGroupDocumentation()
...@@ -857,6 +864,8 @@ void ClassDef::writeDocumentation(OutputList &ol) ...@@ -857,6 +864,8 @@ void ClassDef::writeDocumentation(OutputList &ol)
pubAttribs.writeDeclarations(ol,this,0,0,0,theTranslator->trPublicAttribs(),0); pubAttribs.writeDeclarations(ol,this,0,0,0,theTranslator->trPublicAttribs(),0);
pubSlots.writeDeclarations(ol,this,0,0,0,theTranslator->trPublicSlots(),0); pubSlots.writeDeclarations(ol,this,0,0,0,theTranslator->trPublicSlots(),0);
signals.writeDeclarations(ol,this,0,0,0,theTranslator->trSignals(),0); signals.writeDeclarations(ol,this,0,0,0,theTranslator->trSignals(),0);
dcopMethods.writeDeclarations(ol,this,0,0,0,theTranslator->trDCOPMethods(),0);
// static public members // static public members
pubStaticMembers.writeDeclarations(ol,this,0,0,0,theTranslator->trStaticPublicMembers(),0); pubStaticMembers.writeDeclarations(ol,this,0,0,0,theTranslator->trStaticPublicMembers(),0);
pubStaticAttribs.writeDeclarations(ol,this,0,0,0,theTranslator->trStaticPublicAttribs(),0); pubStaticAttribs.writeDeclarations(ol,this,0,0,0,theTranslator->trStaticPublicAttribs(),0);
...@@ -1066,7 +1075,7 @@ void ClassDef::writeDocumentation(OutputList &ol) ...@@ -1066,7 +1075,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.docify(stripFromPath(path)); ol.docify(stripFromPath(path));
} }
if (fd->generateSource() || (!fd->isReference() && Config::sourceBrowseFlag)) if (fd->generateSourceFile())
{ {
ol.writeObjectLink(0,fd->sourceName(),0,fd->name()); ol.writeObjectLink(0,fd->sourceName(),0,fd->name());
} }
...@@ -1340,6 +1349,7 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup) ...@@ -1340,6 +1349,7 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup)
pubAttribs.writePlainDeclarations(ol,this,0,0,0); pubAttribs.writePlainDeclarations(ol,this,0,0,0);
pubSlots.writePlainDeclarations(ol,this,0,0,0); pubSlots.writePlainDeclarations(ol,this,0,0,0);
signals.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); pubStaticMembers.writePlainDeclarations(ol,this,0,0,0);
pubStaticAttribs.writePlainDeclarations(ol,this,0,0,0); pubStaticAttribs.writePlainDeclarations(ol,this,0,0,0);
proTypes.writePlainDeclarations(ol,this,0,0,0); proTypes.writePlainDeclarations(ol,this,0,0,0);
...@@ -1856,7 +1866,8 @@ void ClassDef::generateXML(QTextStream &t) ...@@ -1856,7 +1866,8 @@ void ClassDef::generateXML(QTextStream &t)
} }
int numMembers = int numMembers =
pubTypes.count()+pubMembers.count()+pubAttribs.count()+ 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()+ pubStaticAttribs.count()+proTypes.count()+proMembers.count()+
proAttribs.count()+proSlots.count()+proStaticMembers.count()+ proAttribs.count()+proSlots.count()+proStaticMembers.count()+
proStaticAttribs.count()+priTypes.count()+priMembers.count()+ proStaticAttribs.count()+priTypes.count()+priMembers.count()+
...@@ -1870,6 +1881,7 @@ void ClassDef::generateXML(QTextStream &t) ...@@ -1870,6 +1881,7 @@ void ClassDef::generateXML(QTextStream &t)
generateXMLSection(t,&pubAttribs,"public-attrib"); generateXMLSection(t,&pubAttribs,"public-attrib");
generateXMLSection(t,&pubSlots,"public-slot"); generateXMLSection(t,&pubSlots,"public-slot");
generateXMLSection(t,&signals,"signal"); generateXMLSection(t,&signals,"signal");
generateXMLSection(t,&dcopMethods,"dcop-func");
generateXMLSection(t,&pubStaticMembers,"public-static-func"); generateXMLSection(t,&pubStaticMembers,"public-static-func");
generateXMLSection(t,&pubStaticAttribs,"public-static-attrib"); generateXMLSection(t,&pubStaticAttribs,"public-static-attrib");
generateXMLSection(t,&proTypes,"protected-type"); generateXMLSection(t,&proTypes,"protected-type");
......
...@@ -167,6 +167,7 @@ class ClassDef : public Definition ...@@ -167,6 +167,7 @@ class ClassDef : public Definition
MemberList related; MemberList related;
MemberList signals; MemberList signals;
MemberList friends; MemberList friends;
MemberList dcopMethods;
/* member list by types */ /* member list by types */
MemberList constructors; MemberList constructors;
......
/* 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 * from config_templ.h
* *
* DO NOT EDIT! * DO NOT EDIT!
...@@ -64,6 +64,7 @@ struct Config ...@@ -64,6 +64,7 @@ struct Config
static bool inheritDocsFlag; // inheritance of documentation enabled? static bool inheritDocsFlag; // inheritance of documentation enabled?
static bool inlineInfoFlag; // show info about inline members? static bool inlineInfoFlag; // show info about inline members?
static bool sortMembersFlag; // sort members alphabetically? static bool sortMembersFlag; // sort members alphabetically?
static bool distributeDocFlag; // distribute docs over member group?
static int tabSize; // number of spaces in a tab static int tabSize; // number of spaces in a tab
static QStrList sectionFilterList; // list of section filters that are enabled static QStrList sectionFilterList; // list of section filters that are enabled
static bool generateTodoList; // do we want a todo list? static bool generateTodoList; // do we want a todo list?
......
/* 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 * from config_templ.l
* *
* DO NOT EDIT! * DO NOT EDIT!
...@@ -101,6 +101,7 @@ bool Config::autoBriefFlag = TRUE; ...@@ -101,6 +101,7 @@ bool Config::autoBriefFlag = TRUE;
bool Config::inheritDocsFlag = TRUE; bool Config::inheritDocsFlag = TRUE;
bool Config::inlineInfoFlag = TRUE; bool Config::inlineInfoFlag = TRUE;
bool Config::sortMembersFlag = TRUE; bool Config::sortMembersFlag = TRUE;
bool Config::distributeDocFlag = FALSE;
int Config::tabSize = 8; int Config::tabSize = 8;
QStrList Config::sectionFilterList; QStrList Config::sectionFilterList;
bool Config::generateTodoList = TRUE; bool Config::generateTodoList = TRUE;
...@@ -357,6 +358,7 @@ static void readIncludeFile(const char *incName) ...@@ -357,6 +358,7 @@ static void readIncludeFile(const char *incName)
<Start>"INHERIT_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::inheritDocsFlag; } <Start>"INHERIT_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::inheritDocsFlag; }
<Start>"INLINE_INFO"[ \t]*"=" { BEGIN(GetBool); b=&Config::inlineInfoFlag; } <Start>"INLINE_INFO"[ \t]*"=" { BEGIN(GetBool); b=&Config::inlineInfoFlag; }
<Start>"SORT_MEMBER_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::sortMembersFlag; } <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>"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; l->clear(); elemStr=""; }
<Start>"ENABLED_SECTIONS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::sectionFilterList; elemStr=""; } <Start>"ENABLED_SECTIONS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::sectionFilterList; elemStr=""; }
...@@ -587,6 +589,7 @@ void dumpConfig() ...@@ -587,6 +589,7 @@ void dumpConfig()
printf("inheritDocsFlag=`%d'\n",Config::inheritDocsFlag); printf("inheritDocsFlag=`%d'\n",Config::inheritDocsFlag);
printf("inlineInfoFlag=`%d'\n",Config::inlineInfoFlag); printf("inlineInfoFlag=`%d'\n",Config::inlineInfoFlag);
printf("sortMembersFlag=`%d'\n",Config::sortMembersFlag); printf("sortMembersFlag=`%d'\n",Config::sortMembersFlag);
printf("distributeDocFlag=`%d'\n",Config::distributeDocFlag);
printf("tabSize=`%d'\n",Config::tabSize); printf("tabSize=`%d'\n",Config::tabSize);
{ {
char *is=Config::sectionFilterList.first(); char *is=Config::sectionFilterList.first();
...@@ -824,6 +827,7 @@ void Config::init() ...@@ -824,6 +827,7 @@ void Config::init()
Config::inheritDocsFlag = TRUE; Config::inheritDocsFlag = TRUE;
Config::inlineInfoFlag = TRUE; Config::inlineInfoFlag = TRUE;
Config::sortMembersFlag = TRUE; Config::sortMembersFlag = TRUE;
Config::distributeDocFlag = FALSE;
Config::tabSize = 8; Config::tabSize = 8;
Config::sectionFilterList.clear(); Config::sectionFilterList.clear();
Config::generateTodoList = TRUE; Config::generateTodoList = TRUE;
...@@ -1011,7 +1015,7 @@ void writeTemplateConfig(QFile *f,bool sl) ...@@ -1011,7 +1015,7 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# information to generate all constant output in the proper language. \n"; t << "# information to generate all constant output in the proper language. \n";
t << "# The default language is English, other supported languages are: \n"; t << "# The default language is English, other supported languages are: \n";
t << "# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, \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 << "\n";
} }
t << "OUTPUT_LANGUAGE = "; t << "OUTPUT_LANGUAGE = ";
...@@ -1278,6 +1282,18 @@ void writeTemplateConfig(QFile *f,bool sl) ...@@ -1278,6 +1282,18 @@ void writeTemplateConfig(QFile *f,bool sl)
writeBoolValue(t,Config::sortMembersFlag); writeBoolValue(t,Config::sortMembersFlag);
t << "\n"; t << "\n";
if (!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 << "\n";
t << "# The TAB_SIZE tag can be used to set the number of spaces in a tab. \n"; t << "# The TAB_SIZE tag can be used to set the number of spaces in a tab. \n";
...@@ -1323,10 +1339,11 @@ void writeTemplateConfig(QFile *f,bool sl) ...@@ -1323,10 +1339,11 @@ void writeTemplateConfig(QFile *f,bool sl)
{ {
t << "\n"; t << "\n";
t << "# This tag can be used to specify a number of aliases that acts \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 << "# 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 << "# 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 << "# 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 << "# Predefined commands cannot be overwritten using aliases. \n";
t << "\n"; t << "\n";
} }
......
...@@ -69,7 +69,7 @@ class Definition ...@@ -69,7 +69,7 @@ class Definition
virtual bool isLinkableInProject() = 0; virtual bool isLinkableInProject() = 0;
virtual bool isLinkable() = 0; virtual bool isLinkable() = 0;
bool isReference() { return !ref.isEmpty(); } bool isReference() const { return !ref.isEmpty(); }
void setReference(const char *r) { ref=r; } void setReference(const char *r) { ref=r; }
QCString getReference() { return ref; } QCString getReference() { return ref; }
......
...@@ -2042,9 +2042,16 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -2042,9 +2042,16 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
forceEndItemList(); forceEndItemList();
} }
else else
{
if (insidePre)
{
outDoc->docify(yytext);
}
else
{ {
outDoc->newParagraph(); outDoc->newParagraph();
} }
}
if (inBlock()) endBlock(); if (inBlock()) endBlock();
} }
<DocScan>{BN}+/\n { <DocScan>{BN}+/\n {
......
...@@ -1205,7 +1205,7 @@ void DotInclDepGraph::buildGraph(DotNode *n,FileDef *fd,int distance) ...@@ -1205,7 +1205,7 @@ void DotInclDepGraph::buildGraph(DotNode *n,FileDef *fd,int distance)
{ {
in = bfd->absFilePath(); in = bfd->absFilePath();
doc = bfd->isLinkableInProject(); doc = bfd->isLinkableInProject();
src = bfd->generateSource() || (!bfd->isReference() && Config::sourceBrowseFlag); src = bfd->generateSourceFile();
} }
if (doc || src) if (doc || src)
{ {
......
...@@ -90,6 +90,7 @@ FileNameDict *includeNameDict; // include names ...@@ -90,6 +90,7 @@ FileNameDict *includeNameDict; // include names
FileNameDict *exampleNameDict; // examples FileNameDict *exampleNameDict; // examples
FileNameDict *imageNameDict; // images FileNameDict *imageNameDict; // images
StringDict typedefDict(1009); // all typedefs StringDict typedefDict(1009); // all typedefs
StringDict namespaceAliasDict(257); // all namespace aliases
GroupDict groupDict(257); // all groups GroupDict groupDict(257); // all groups
FormulaDict formulaDict(1009); // all formulas FormulaDict formulaDict(1009); // all formulas
FormulaDict formulaNameDict(1009); // the label name of all formulas FormulaDict formulaNameDict(1009); // the label name of all formulas
...@@ -502,7 +503,7 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root) ...@@ -502,7 +503,7 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root)
// generate code for header // generate code for header
{ {
cd->setIncludeFile(fd,iName,local); cd->setIncludeFile(fd,iName,local);
fd->setGenerateSource(TRUE); //fd->setGenerateSource(TRUE);
} }
else // put #include in the class documentation without link else // put #include in the class documentation without link
{ {
...@@ -526,7 +527,7 @@ static bool addNamespace(Entry *root,ClassDef *cd) ...@@ -526,7 +527,7 @@ static bool addNamespace(Entry *root,ClassDef *cd)
//printf("addNameSpace() trying: %s\n",e->name.data()); //printf("addNameSpace() trying: %s\n",e->name.data());
QCString nsName = stripAnnonymousNamespaceScope(e->name); QCString nsName = stripAnnonymousNamespaceScope(e->name);
if (!nsName.isEmpty() && nsName.at(0)!='@' && if (!nsName.isEmpty() && nsName.at(0)!='@' &&
(nd=namespaceDict[nsName]) (nd=getResolvedNamespace(nsName))
) )
{ {
cd->setNamespace(nd); cd->setNamespace(nd);
...@@ -688,7 +689,7 @@ static void buildClassList(Entry *root) ...@@ -688,7 +689,7 @@ static void buildClassList(Entry *root)
// namespace is part of the class name // namespace is part of the class name
if (!found && !namespaceName.isEmpty()) if (!found && !namespaceName.isEmpty())
{ {
NamespaceDef *nd = namespaceDict[namespaceName]; NamespaceDef *nd = getResolvedNamespace(namespaceName);
if (nd) if (nd)
{ {
cd->setNamespace(nd); cd->setNamespace(nd);
...@@ -850,7 +851,7 @@ static void findUsingDirectives(Entry *root) ...@@ -850,7 +851,7 @@ static void findUsingDirectives(Entry *root)
nsName=root->parent->name.copy(); nsName=root->parent->name.copy();
if (!nsName.isEmpty()) if (!nsName.isEmpty())
{ {
nd = namespaceDict[nsName]; nd = getResolvedNamespace(nsName);
} }
} }
...@@ -864,7 +865,7 @@ static void findUsingDirectives(Entry *root) ...@@ -864,7 +865,7 @@ static void findUsingDirectives(Entry *root)
QCString scope=scopeOffset>0 ? QCString scope=scopeOffset>0 ?
nsName.left(scopeOffset)+"::" : QCString(); nsName.left(scopeOffset)+"::" : QCString();
//printf("Trying with scope=`%s'\n",scope.data()); //printf("Trying with scope=`%s'\n",scope.data());
usingNd = namespaceDict[scope+root->name]; usingNd = getResolvedNamespace(scope+root->name);
if (scopeOffset==0) if (scopeOffset==0)
{ {
scopeOffset=-1; scopeOffset=-1;
...@@ -959,7 +960,7 @@ static void findUsingDeclarations(Entry *root) ...@@ -959,7 +960,7 @@ static void findUsingDeclarations(Entry *root)
scName=root->parent->name.copy(); scName=root->parent->name.copy();
if (!scName.isEmpty()) if (!scName.isEmpty())
{ {
nd = namespaceDict[scName]; nd = getResolvedNamespace(scName);
} }
} }
...@@ -1175,7 +1176,7 @@ static MemberDef *addVariableToFile( ...@@ -1175,7 +1176,7 @@ static MemberDef *addVariableToFile(
QCString nscope=removeAnnonymousScopes(scope); QCString nscope=removeAnnonymousScopes(scope);
if (!nscope.isEmpty()) if (!nscope.isEmpty())
{ {
nd = namespaceDict[nscope]; nd = getResolvedNamespace(nscope);
} }
} }
QCString def; QCString def;
...@@ -1221,7 +1222,7 @@ static MemberDef *addVariableToFile( ...@@ -1221,7 +1222,7 @@ static MemberDef *addVariableToFile(
NamespaceDef *nd=0; NamespaceDef *nd=0;
if (!nscope.isEmpty()) if (!nscope.isEmpty())
{ {
nd = namespaceDict[nscope]; nd = getResolvedNamespace(nscope);
} }
if (nd==0 || md->getNamespaceDef()==nd) if (nd==0 || md->getNamespaceDef()==nd)
// variable already in the scope // variable already in the scope
...@@ -1541,8 +1542,9 @@ static void buildMemberList(Entry *root) ...@@ -1541,8 +1542,9 @@ static void buildMemberList(Entry *root)
MemberDef::MemberType mtype; MemberDef::MemberType mtype;
if (isFriend) mtype=MemberDef::Friend; if (isFriend) mtype=MemberDef::Friend;
else if (root->sig) mtype=MemberDef::Signal; else if (root->mtype==Signal) mtype=MemberDef::Signal;
else if (root->slot) mtype=MemberDef::Slot; else if (root->mtype==Slot) mtype=MemberDef::Slot;
else if (root->mtype==DCOP) mtype=MemberDef::DCOP;
else mtype=MemberDef::Function; else mtype=MemberDef::Function;
// strip redundant template specifier for constructors // strip redundant template specifier for constructors
...@@ -1699,7 +1701,7 @@ static void buildMemberList(Entry *root) ...@@ -1699,7 +1701,7 @@ static void buildMemberList(Entry *root)
NamespaceDef *rnd = 0; NamespaceDef *rnd = 0;
if (!root->parent->name.isEmpty()) if (!root->parent->name.isEmpty())
{ {
rnd = namespaceDict[root->parent->name]; rnd = getResolvedNamespace(root->parent->name);
} }
FileDef *fd = md->getFileDef(); FileDef *fd = md->getFileDef();
QCString nsName,rnsName; QCString nsName,rnsName;
...@@ -1811,7 +1813,7 @@ static void buildMemberList(Entry *root) ...@@ -1811,7 +1813,7 @@ static void buildMemberList(Entry *root)
QCString nscope=removeAnnonymousScopes(root->parent->name); QCString nscope=removeAnnonymousScopes(root->parent->name);
if (!nscope.isEmpty()) if (!nscope.isEmpty())
{ {
nd = namespaceDict[nscope]; nd = getResolvedNamespace(nscope);
} }
} }
...@@ -3197,7 +3199,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl ...@@ -3197,7 +3199,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
bool ambig; bool ambig;
FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig); FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
NamespaceDef *nd=0; NamespaceDef *nd=0;
if (!namespaceName.isEmpty()) nd=namespaceDict[namespaceName]; if (!namespaceName.isEmpty()) nd=getResolvedNamespace(namespaceName);
tcd = findClassDefinition(fd,nd,scopeName,classTempList); tcd = findClassDefinition(fd,nd,scopeName,classTempList);
if (cd && tcd==cd) // member's classes match if (cd && tcd==cd) // member's classes match
...@@ -3367,8 +3369,9 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl ...@@ -3367,8 +3369,9 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
if (unique) if (unique)
{ {
MemberDef::MemberType mtype; MemberDef::MemberType mtype;
if (root->sig) mtype=MemberDef::Signal; if (root->mtype==Signal) mtype=MemberDef::Signal;
else if (root->slot) mtype=MemberDef::Slot; else if (root->mtype==Slot) mtype=MemberDef::Slot;
else if (root->mtype==DCOP) mtype=MemberDef::DCOP;
else mtype=MemberDef::Function; else mtype=MemberDef::Function;
// new overloaded member function // new overloaded member function
...@@ -3440,10 +3443,12 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl ...@@ -3440,10 +3443,12 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
if (newMember) // need to create a new member if (newMember) // need to create a new member
{ {
MemberDef::MemberType mtype; MemberDef::MemberType mtype;
if (root->sig) if (root->mtype==Signal)
mtype=MemberDef::Signal; mtype=MemberDef::Signal;
else if (root->slot) else if (root->mtype==Slot)
mtype=MemberDef::Slot; mtype=MemberDef::Slot;
else if (root->mtype==DCOP)
mtype=MemberDef::DCOP;
else else
mtype=MemberDef::Function; mtype=MemberDef::Function;
...@@ -3679,7 +3684,7 @@ static void findEnums(Entry *root) ...@@ -3679,7 +3684,7 @@ static void findEnums(Entry *root)
{ {
QCString scope=root->name.left(i); // extract scope QCString scope=root->name.left(i); // extract scope
name=root->name.right(root->name.length()-i-2); // extract name 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 else // no scope, check the scope in which the docs where found
{ {
...@@ -3688,7 +3693,7 @@ static void findEnums(Entry *root) ...@@ -3688,7 +3693,7 @@ static void findEnums(Entry *root)
) // found enum docs inside a compound ) // found enum docs inside a compound
{ {
QCString scope=root->parent->name; 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(); name=root->name.copy();
} }
...@@ -4103,7 +4108,9 @@ static void generateFileSources() ...@@ -4103,7 +4108,9 @@ static void generateFileSources()
for (;(fd=fni.current());++fni) for (;(fd=fni.current());++fni)
{ {
bool src = !fd->isReference() && bool src = !fd->isReference() &&
(fd->generateSource() || Config::sourceBrowseFlag); (Config::verbatimHeaderFlag
//fd->generateSource()
|| Config::sourceBrowseFlag);
if (src) if (src)
{ {
msg("Generating code for file %s...\n",fd->name().data()); msg("Generating code for file %s...\n",fd->name().data());
...@@ -5883,8 +5890,11 @@ int main(int argc,char **argv) ...@@ -5883,8 +5890,11 @@ int main(int argc,char **argv)
msg("Adding members to member groups.\n"); msg("Adding members to member groups.\n");
addMembersToMemberGroup(); addMembersToMemberGroup();
if (Config::distributeDocFlag)
{
msg("Distributing member group documentation.\n"); msg("Distributing member group documentation.\n");
distributeMemberGroupDocumentation(); distributeMemberGroupDocumentation();
}
msg("Building full member lists recursively...\n"); msg("Building full member lists recursively...\n");
buildCompleteMemberLists(); buildCompleteMemberLists();
......
...@@ -91,6 +91,7 @@ extern QTextStream tagFile; ...@@ -91,6 +91,7 @@ extern QTextStream tagFile;
extern SectionDict sectionDict; extern SectionDict sectionDict;
extern FileNameList inputNameList; extern FileNameList inputNameList;
extern StringDict typedefDict; extern StringDict typedefDict;
extern StringDict namespaceAliasDict;
extern GroupList groupList; extern GroupList groupList;
extern GroupDict groupDict; extern GroupDict groupDict;
extern NamespaceList namespaceList; extern NamespaceList namespaceList;
......
...@@ -26,7 +26,7 @@ HEADERS = doxygen.h scanner.h doc.h classdef.h classlist.h memberdef.h \ ...@@ -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_nl.h translator_se.h translator_cz.h translator_fr.h \
translator_it.h formula.h debug.h membergroup.h htmlhelp.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 \ 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 \ SOURCES = doxygen.cpp scanner.cpp doc.cpp classdef.cpp classlist.cpp \
memberdef.cpp membername.cpp index.cpp memberlist.cpp \ memberdef.cpp membername.cpp index.cpp memberlist.cpp \
entry.cpp logos.cpp instdox.cpp message.cpp code.cpp \ entry.cpp logos.cpp instdox.cpp message.cpp code.cpp \
......
...@@ -48,8 +48,7 @@ Entry::Entry(const Entry &e) ...@@ -48,8 +48,7 @@ Entry::Entry(const Entry &e)
//printf("Copy New Entry %d\n",num); //printf("Copy New Entry %d\n",num);
section = e.section; section = e.section;
protection = e.protection; protection = e.protection;
sig = e.sig; mtype = e.mtype;
slot = e.slot;
stat = e.stat; stat = e.stat;
explicitExternal = e.explicitExternal; explicitExternal = e.explicitExternal;
virt = e.virt; virt = e.virt;
...@@ -219,9 +218,8 @@ void Entry::reset() ...@@ -219,9 +218,8 @@ void Entry::reset()
todoId = 0; todoId = 0;
testId = 0; testId = 0;
section = EMPTY_SEC; section = EMPTY_SEC;
sig = FALSE; mtype = Method;
virt = Normal; virt = Normal;
slot = FALSE;
stat = FALSE; stat = FALSE;
proto = FALSE; proto = FALSE;
explicitExternal = FALSE; explicitExternal = FALSE;
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
enum Protection { Public, Protected, Private } ; enum Protection { Public, Protected, Private } ;
enum Specifier { Normal, Virtual, Pure } ; enum Specifier { Normal, Virtual, Pure } ;
enum MethodTypes { Method, Signal, Slot, DCOP };
struct BaseInfo struct BaseInfo
{ {
...@@ -161,8 +162,9 @@ class Entry ...@@ -161,8 +162,9 @@ class Entry
int section; // entry type (see Sections); int section; // entry type (see Sections);
Protection protection; // class protection Protection protection; // class protection
bool sig; // a Qt signal ? //bool sig; // a Qt signal ?
bool slot; // a Qt slot ? //bool slot; // a Qt slot ?
MethodTypes mtype; // signal, slot or dcop method?
bool stat; // static ? bool stat; // static ?
bool explicitExternal; // explicitly defined as external? bool explicitExternal; // explicitly defined as external?
bool proto; // prototype ? bool proto; // prototype ?
......
...@@ -164,9 +164,7 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -164,9 +164,7 @@ void FileDef::writeDocumentation(OutputList &ol)
ol.docify(ii->includeName); ol.docify(ii->includeName);
ol.enableAll(); ol.enableAll();
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
if (fd && fd->isLinkable() && if (fd && fd->isLinkable() && fd->generateSourceFile())
(fd->generateSource() || Config::sourceBrowseFlag)
)
{ {
ol.writeObjectLink(fd->getReference(),fd->includeName(),0,ii->includeName); ol.writeObjectLink(fd->getReference(),fd->includeName(),0,ii->includeName);
} }
...@@ -222,7 +220,7 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -222,7 +220,7 @@ void FileDef::writeDocumentation(OutputList &ol)
//incDepGraph.writeGraph(Config::htmlOutputDir,fd->getOutputFileBase()); //incDepGraph.writeGraph(Config::htmlOutputDir,fd->getOutputFileBase());
} }
if (generateSource() || (!isReference() && Config::sourceBrowseFlag)) if (generateSourceFile())
{ {
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
ol.newParagraph(); ol.newParagraph();
......
...@@ -120,8 +120,11 @@ class FileDef : public Definition ...@@ -120,8 +120,11 @@ class FileDef : public Definition
void addUsingDeclaration(ClassDef *cd); void addUsingDeclaration(ClassDef *cd);
ClassList *getUsedClasses() const { return usingDeclList; } ClassList *getUsedClasses() const { return usingDeclList; }
void setGenerateSource(bool b) { isSource=b; } //void setGenerateSource(bool b) { isSource=b; }
bool generateSource() const { return isSource; } bool generateSourceFile() const
{ return !isReference() &&
(Config::sourceBrowseFlag || Config::verbatimHeaderFlag);
}
void addIncludeDependency(FileDef *fd,const char *incName,bool local); void addIncludeDependency(FileDef *fd,const char *incName,bool local);
void addIncludedByDependency(FileDef *fd,const char *incName,bool local); void addIncludedByDependency(FileDef *fd,const char *incName,bool local);
......
...@@ -333,7 +333,7 @@ void countFiles(int &htmlFiles,int &files) ...@@ -333,7 +333,7 @@ void countFiles(int &htmlFiles,int &files)
for (;(fd=fni.current());++fni) for (;(fd=fni.current());++fni)
{ {
bool doc = fd->isLinkableInProject(); bool doc = fd->isLinkableInProject();
bool src = fd->generateSource() || Config::sourceBrowseFlag; bool src = fd->generateSourceFile();
if (doc || src) if (doc || src)
{ {
htmlFiles++; htmlFiles++;
...@@ -415,7 +415,7 @@ void writeFileIndex(OutputList &ol) ...@@ -415,7 +415,7 @@ void writeFileIndex(OutputList &ol)
{ {
//printf("Found filedef %s\n",fd->name().data()); //printf("Found filedef %s\n",fd->name().data());
bool doc = fd->isLinkableInProject(); bool doc = fd->isLinkableInProject();
bool src = fd->generateSource() || Config::sourceBrowseFlag; bool src = fd->generateSourceFile();
if ((doc || src) && !fd->isReference()) if ((doc || src) && !fd->isReference())
{ {
QCString path; QCString path;
...@@ -849,7 +849,7 @@ void writeAlphabeticalClassList(OutputList &ol) ...@@ -849,7 +849,7 @@ void writeAlphabeticalClassList(OutputList &ol)
if (!namesp.isEmpty()) if (!namesp.isEmpty())
{ {
ol.docify(" ("); ol.docify(" (");
NamespaceDef *nd = namespaceDict[namesp]; NamespaceDef *nd = getResolvedNamespace(namesp);
if (nd && nd->isLinkable()) if (nd && nd->isLinkable())
{ {
ol.writeObjectLink(nd->getReference(), ol.writeObjectLink(nd->getReference(),
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include "translator_pl.h" #include "translator_pl.h"
#include "translator_pt.h" #include "translator_pt.h"
#include "translator_hu.h" #include "translator_hu.h"
#include "translator_kr.h"
#endif #endif
#define L_EQUAL(a) !stricmp(langName,a) #define L_EQUAL(a) !stricmp(langName,a)
...@@ -105,6 +106,10 @@ bool setTranslator(const char *langName) ...@@ -105,6 +106,10 @@ bool setTranslator(const char *langName)
{ {
theTranslator=new TranslatorHungarian; theTranslator=new TranslatorHungarian;
} }
else if (L_EQUAL("korean"))
{
theTranslator=new TranslatorKorean;
}
#endif #endif
else // use the default language (i.e. english) else // use the default language (i.e. english)
{ {
......
...@@ -1134,6 +1134,7 @@ void LatexGenerator::docify(const char *str) ...@@ -1134,6 +1134,7 @@ void LatexGenerator::docify(const char *str)
{ {
static bool isCzech = theTranslator->idLanguage()=="czech"; static bool isCzech = theTranslator->idLanguage()=="czech";
static bool isJapanese = theTranslator->idLanguage()=="japanese"; static bool isJapanese = theTranslator->idLanguage()=="japanese";
static bool isKorean = theTranslator->idLanguage()=="korean";
static bool isRussian = theTranslator->idLanguage()=="russian"; static bool isRussian = theTranslator->idLanguage()=="russian";
static bool isGerman = theTranslator->idLanguage()=="german"; static bool isGerman = theTranslator->idLanguage()=="german";
if (str) if (str)
...@@ -1192,7 +1193,7 @@ void LatexGenerator::docify(const char *str) ...@@ -1192,7 +1193,7 @@ void LatexGenerator::docify(const char *str)
break; break;
default: default:
if (isJapanese) if (isJapanese || isKorean)
{ // Japanese language uses wide characters { // Japanese language uses wide characters
if (c>=128) if (c>=128)
{ {
......
...@@ -1414,6 +1414,7 @@ void MemberDef::generateXML(QTextStream &t,Definition *def) ...@@ -1414,6 +1414,7 @@ void MemberDef::generateXML(QTextStream &t,Definition *def)
case Signal: // fall through case Signal: // fall through
case Prototype: // fall through case Prototype: // fall through
case Friend: // fall through case Friend: // fall through
case DCOP: // fall through
case Slot: t << "functiondef"; xmlType=function_t; break; case Slot: t << "functiondef"; xmlType=function_t; break;
} }
t << " id=\""; t << " id=\"";
...@@ -1562,6 +1563,7 @@ void MemberDef::generateXML(QTextStream &t,Definition *def) ...@@ -1562,6 +1563,7 @@ void MemberDef::generateXML(QTextStream &t,Definition *def)
case Signal: // fall through case Signal: // fall through
case Prototype: // fall through case Prototype: // fall through
case Friend: // fall through case Friend: // fall through
case DCOP: // fall through
case Slot: t << "functiondef"; break; case Slot: t << "functiondef"; break;
} }
t << ">" << endl; t << ">" << endl;
......
...@@ -57,7 +57,8 @@ class MemberDef : public Definition ...@@ -57,7 +57,8 @@ class MemberDef : public Definition
Prototype, Prototype,
Signal, Signal,
Slot, Slot,
Friend Friend,
DCOP
}; };
enum enum
...@@ -107,6 +108,7 @@ class MemberDef : public Definition ...@@ -107,6 +108,7 @@ class MemberDef : public Definition
bool isFunction() const { return mtype==Function; } bool isFunction() const { return mtype==Function; }
bool isDefine() const { return mtype==Define; } bool isDefine() const { return mtype==Define; }
bool isFriend() const { return mtype==Friend; } bool isFriend() const { return mtype==Friend; }
bool isDCOP() const { return mtype==DCOP; }
bool isRelated() const { return related; } bool isRelated() const { return related; }
bool isStatic() const { return stat; } bool isStatic() const { return stat; }
bool isInline() const { return (memSpec&Entry::Inline)!=0; } bool isInline() const { return (memSpec&Entry::Inline)!=0; }
......
...@@ -73,6 +73,7 @@ void MemberList::countDecMembers(bool inGroup,bool countSubGroups,bool sectionPe ...@@ -73,6 +73,7 @@ void MemberList::countDecMembers(bool inGroup,bool countSubGroups,bool sectionPe
case MemberDef::Variable: varCnt++,m_count++; break; case MemberDef::Variable: varCnt++,m_count++; break;
case MemberDef::Function: // fall through case MemberDef::Function: // fall through
case MemberDef::Signal: // fall through case MemberDef::Signal: // fall through
case MemberDef::DCOP: // fall through
case MemberDef::Slot: if (!md->isRelated() || md->getClassDef()) case MemberDef::Slot: if (!md->isRelated() || md->getClassDef())
funcCnt++,m_count++; funcCnt++,m_count++;
break; break;
...@@ -409,7 +410,7 @@ void MemberList::writePlainDeclarations(OutputList &ol, ...@@ -409,7 +410,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,
for ( ; (md=mli.current()) ; ++mli ) for ( ; (md=mli.current()) ; ++mli )
{ {
if ( if (
( md->isFunction() || md->isSignal() || md->isSlot()) && ( md->isFunction() || md->isSignal() || md->isSlot() || md->isDCOP()) &&
( !md->isRelated() || md->getClassDef() ) && ( !md->isRelated() || md->getClassDef() ) &&
inGroup==md->visibleMemberGroup(sectionPerType) inGroup==md->visibleMemberGroup(sectionPerType)
) )
......
...@@ -326,19 +326,19 @@ static const struct ...@@ -326,19 +326,19 @@ static const struct
{ "ListEnum4", { "ListEnum4",
"\\s94\\fi-360\\li1800\\widctlpar\\fs20\\cgrid " "\\s94\\fi-360\\li1800\\widctlpar\\fs20\\cgrid "
}, },
{ "ListEnum4", { "ListEnum5",
"\\s95\\fi-360\\li2160\\widctlpar\\fs20\\cgrid " "\\s95\\fi-360\\li2160\\widctlpar\\fs20\\cgrid "
}, },
{ "ListEnum5", { "ListEnum6",
"\\s96\\fi-360\\li2520\\widctlpar\\fs20\\cgrid " "\\s96\\fi-360\\li2520\\widctlpar\\fs20\\cgrid "
}, },
{ "ListEnum6", { "ListEnum7",
"\\s97\\fi-360\\li2880\\widctlpar\\fs20\\cgrid " "\\s97\\fi-360\\li2880\\widctlpar\\fs20\\cgrid "
}, },
{ "ListEnum7", { "ListEnum8",
"\\s98\\fi-360\\li3240\\widctlpar\\fs20\\cgrid " "\\s98\\fi-360\\li3240\\widctlpar\\fs20\\cgrid "
}, },
{ "ListEnum8", { "ListEnum9",
"\\s99\\fi-360\\li3600\\widctlpar\\fs20\\cgrid " "\\s99\\fi-360\\li3600\\widctlpar\\fs20\\cgrid "
}, },
{ 0, { 0,
......
...@@ -100,8 +100,7 @@ static int yyLineNr = 1 ; ...@@ -100,8 +100,7 @@ static int yyLineNr = 1 ;
static int anonCount = 0 ; static int anonCount = 0 ;
static char yyFileName[4096] ; static char yyFileName[4096] ;
static int lastMemberGroupLine; static int lastMemberGroupLine;
static bool sig; static MethodTypes mtype;
static bool slot;
static bool gstat; static bool gstat;
static bool removeSlashes; static bool removeSlashes;
static Specifier virt; static Specifier virt;
...@@ -119,6 +118,7 @@ static SectionInfo::SectionType ...@@ -119,6 +118,7 @@ static SectionInfo::SectionType
sectionType; sectionType;
static QCString funcPtrType; static QCString funcPtrType;
static QCString templateStr; static QCString templateStr;
static QCString aliasName;
static QCString baseName; static QCString baseName;
static QCString* specName; static QCString* specName;
static QCString formulaText; static QCString formulaText;
...@@ -157,8 +157,7 @@ static void initParser() ...@@ -157,8 +157,7 @@ static void initParser()
curlyCount = 0; curlyCount = 0;
ifCount = 0; ifCount = 0;
memberGroupId = NOGROUP; memberGroupId = NOGROUP;
sig = FALSE; mtype = Method;
slot = FALSE;
gstat = FALSE; gstat = FALSE;
virt = Normal; virt = Normal;
baseVirt = Normal; baseVirt = Normal;
...@@ -442,6 +441,8 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -442,6 +441,8 @@ TITLE [tT][iI][tT][lL][eE]
%x CopyRound %x CopyRound
%x CopyCurly %x CopyCurly
%x IDLUnionCase %x IDLUnionCase
%x NSAliasName
%x NSAliasArg
%% %%
...@@ -512,8 +513,16 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -512,8 +513,16 @@ TITLE [tT][iI][tT][lL][eE]
unput(*yytext); unput(*yytext);
BEGIN( FindMembers ) ; BEGIN( FindMembers ) ;
} }
<FindMembers>{B}*"signals"{BN}*":"{BN}* { current->sig = sig = TRUE; <FindMembers>{B}*"k_dcop"{BN}*":"{BN}* { current->mtype = mtype = DCOP;
current->slot = slot = FALSE; 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->protection = protection = Public ;
current->type.resize(0); current->type.resize(0);
current->name.resize(0); current->name.resize(0);
...@@ -524,8 +533,7 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -524,8 +533,7 @@ TITLE [tT][iI][tT][lL][eE]
<FindMembers>{B}*"public"{BN}*"slots"{BN}*":"{BN}* { <FindMembers>{B}*"public"{BN}*"slots"{BN}*":"{BN}* {
current->protection = protection = Public ; current->protection = protection = Public ;
current->slot = slot = TRUE; current->mtype = mtype = Slot;
current->sig = sig = FALSE;
current->type.resize(0); current->type.resize(0);
current->name.resize(0); current->name.resize(0);
current->args.resize(0); current->args.resize(0);
...@@ -535,8 +543,7 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -535,8 +543,7 @@ TITLE [tT][iI][tT][lL][eE]
<FindMembers>{B}*"protected"{BN}*"slots"{BN}*":"{BN}* { <FindMembers>{B}*"protected"{BN}*"slots"{BN}*":"{BN}* {
current->protection = protection = Protected ; current->protection = protection = Protected ;
current->slot = slot = TRUE; current->mtype = mtype = Slot;
current->sig = sig = FALSE;
current->type.resize(0); current->type.resize(0);
current->name.resize(0); current->name.resize(0);
current->args.resize(0); current->args.resize(0);
...@@ -546,8 +553,7 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -546,8 +553,7 @@ TITLE [tT][iI][tT][lL][eE]
<FindMembers>{B}*"private"{BN}*"slots"{BN}*":"{BN}* { <FindMembers>{B}*"private"{BN}*"slots"{BN}*":"{BN}* {
current->protection = protection = Private ; current->protection = protection = Private ;
current->slot = slot = TRUE; current->mtype = mtype = Slot;
current->sig = sig = FALSE;
current->type.resize(0); current->type.resize(0);
current->name.resize(0); current->name.resize(0);
current->args.resize(0); current->args.resize(0);
...@@ -558,8 +564,7 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -558,8 +564,7 @@ TITLE [tT][iI][tT][lL][eE]
<FindMembers>{B}*"methods"{B}":" { /* M$-IDL only: ignored */ } <FindMembers>{B}*"methods"{B}":" { /* M$-IDL only: ignored */ }
<FindMembers>{B}*"public"{BN}*":"{BN}* { <FindMembers>{B}*"public"{BN}*":"{BN}* {
current->protection = protection = Public ; current->protection = protection = Public ;
current->slot = slot = FALSE; current->mtype = mtype = Method;
current->sig = sig = FALSE;
current->type.resize(0); current->type.resize(0);
current->name.resize(0); current->name.resize(0);
current->args.resize(0); current->args.resize(0);
...@@ -568,8 +573,7 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -568,8 +573,7 @@ TITLE [tT][iI][tT][lL][eE]
} }
<FindMembers>{B}*"protected"{BN}*":"{BN}* { <FindMembers>{B}*"protected"{BN}*":"{BN}* {
current->protection = protection = Protected ; current->protection = protection = Protected ;
current->slot = slot = FALSE; current->mtype = mtype = Method;
current->sig = sig = FALSE;
current->type.resize(0); current->type.resize(0);
current->name.resize(0); current->name.resize(0);
current->args.resize(0); current->args.resize(0);
...@@ -578,8 +582,7 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -578,8 +582,7 @@ TITLE [tT][iI][tT][lL][eE]
} }
<FindMembers>{B}*"private"{BN}*":"{BN}* { <FindMembers>{B}*"private"{BN}*":"{BN}* {
current->protection = protection = Private ; current->protection = protection = Private ;
current->slot = slot = FALSE; current->mtype = mtype = Method;
current->sig = sig = FALSE;
current->type.resize(0); current->type.resize(0);
current->name.resize(0); current->name.resize(0);
current->args.resize(0); current->args.resize(0);
...@@ -766,6 +769,20 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -766,6 +769,20 @@ TITLE [tT][iI][tT][lL][eE]
//printf("Start template list\n"); //printf("Start template list\n");
BEGIN( ReadTempArgs ); 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}+ { <FindMembers>"using"{BN}+ {
current->startLine=yyLineNr; current->startLine=yyLineNr;
lineCount(); lineCount();
...@@ -780,10 +797,9 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -780,10 +797,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry(current); current_root->addSubEntry(current);
current = new Entry ; current = new Entry ;
current->protection = protection ; current->protection = protection ;
current->sig = sig; current->mtype = mtype;
current->virt = virt; current->virt = virt;
current->stat = gstat; current->stat = gstat;
current->slot = slot;
current->mGrpId = memberGroupId; current->mGrpId = memberGroupId;
BEGIN(Using); BEGIN(Using);
} }
...@@ -794,10 +810,9 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -794,10 +810,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry(current); current_root->addSubEntry(current);
current = new Entry ; current = new Entry ;
current->protection = protection ; current->protection = protection ;
current->sig = sig; current->mtype = mtype;
current->virt = virt; current->virt = virt;
current->stat = gstat; current->stat = gstat;
current->slot = slot;
current->mGrpId = memberGroupId; current->mGrpId = memberGroupId;
BEGIN(Using); BEGIN(Using);
} }
...@@ -958,10 +973,9 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -958,10 +973,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry(current); current_root->addSubEntry(current);
current = new Entry ; current = new Entry ;
current->protection = protection ; current->protection = protection ;
current->sig = sig; current->mtype = mtype;
current->virt = virt; current->virt = virt;
current->stat = gstat; current->stat = gstat;
current->slot = slot;
current->mGrpId = memberGroupId; current->mGrpId = memberGroupId;
BEGIN(FindMembers); BEGIN(FindMembers);
} }
...@@ -1258,8 +1272,7 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -1258,8 +1272,7 @@ TITLE [tT][iI][tT][lL][eE]
// variable found // variable found
current->section = Entry::EMPTY_SEC ; current->section = Entry::EMPTY_SEC ;
current->protection = protection; current->protection = protection;
current->slot = slot = FALSE; current->mtype = Method;
current->sig = sig = FALSE;
current->virt = Normal; current->virt = Normal;
current->stat = gstat; current->stat = gstat;
current->mGrpId = memberGroupId; current->mGrpId = memberGroupId;
...@@ -1355,10 +1368,9 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -1355,10 +1368,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->parent->addSubEntry(current); current_root->parent->addSubEntry(current);
current = new Entry ; current = new Entry ;
current->protection = protection ; current->protection = protection ;
current->sig = sig; current->mtype = mtype;
current->virt = virt; current->virt = virt;
current->stat = gstat; current->stat = gstat;
current->slot = slot;
current->mGrpId = memberGroupId; current->mGrpId = memberGroupId;
} }
else // probably a redundant , else // probably a redundant ,
...@@ -1429,10 +1441,9 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -1429,10 +1441,9 @@ TITLE [tT][iI][tT][lL][eE]
{ // namespaces and interfaces ends with a closing bracket without semicolon { // namespaces and interfaces ends with a closing bracket without semicolon
current->reset(); current->reset();
current->protection = protection ; current->protection = protection ;
current->sig = sig; current->mtype = mtype;
current->virt = virt; current->virt = virt;
current->stat = gstat; current->stat = gstat;
current->slot = slot;
current->mGrpId = memberGroupId; current->mGrpId = memberGroupId;
BEGIN( FindMembers ) ; BEGIN( FindMembers ) ;
} }
...@@ -1457,10 +1468,9 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -1457,10 +1468,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry( current ) ; current_root->addSubEntry( current ) ;
current = new Entry; current = new Entry;
current->protection = protection ; current->protection = protection ;
current->sig = sig; current->mtype = mtype;
current->virt = virt; current->virt = virt;
current->stat = gstat; current->stat = gstat;
current->slot = slot;
current->mGrpId = memberGroupId; current->mGrpId = memberGroupId;
BEGIN(MemberSpecSkip); BEGIN(MemberSpecSkip);
} }
...@@ -1509,10 +1519,9 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -1509,10 +1519,9 @@ TITLE [tT][iI][tT][lL][eE]
{ {
Entry *varEntry=new Entry; Entry *varEntry=new Entry;
varEntry->protection = current->protection ; varEntry->protection = current->protection ;
varEntry->sig = current->sig; varEntry->mtype = current->mtype;
varEntry->virt = current->virt; varEntry->virt = current->virt;
varEntry->stat = current->stat; varEntry->stat = current->stat;
varEntry->slot = current->slot;
varEntry->section = Entry::VARIABLE_SEC; varEntry->section = Entry::VARIABLE_SEC;
varEntry->name = msName.stripWhiteSpace(); varEntry->name = msName.stripWhiteSpace();
varEntry->type = current->type.simplifyWhiteSpace()+" "; varEntry->type = current->type.simplifyWhiteSpace()+" ";
...@@ -1548,10 +1557,9 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -1548,10 +1557,9 @@ TITLE [tT][iI][tT][lL][eE]
isTypedef=FALSE; isTypedef=FALSE;
current->reset(); current->reset();
current->protection = protection ; current->protection = protection ;
current->sig = sig; current->mtype = mtype;
current->virt = virt; current->virt = virt;
current->stat = gstat; current->stat = gstat;
current->slot = slot;
current->mGrpId = memberGroupId; current->mGrpId = memberGroupId;
BEGIN( FindMembers ); BEGIN( FindMembers );
} }
...@@ -1962,10 +1970,9 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -1962,10 +1970,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry(current); current_root->addSubEntry(current);
current = new Entry ; current = new Entry ;
current->protection = protection; current->protection = protection;
current->sig = sig; current->mtype = mtype;
current->virt = virt; current->virt = virt;
current->stat = gstat; current->stat = gstat;
current->slot = slot;
current->mGrpId = memberGroupId; current->mGrpId = memberGroupId;
lastCurlyContext = FindMembers; lastCurlyContext = FindMembers;
if( *yytext == '{' ) if( *yytext == '{' )
...@@ -2564,6 +2571,12 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -2564,6 +2571,12 @@ TITLE [tT][iI][tT][lL][eE]
} }
<SkipHtmlComment>"--"[!]?">" { BEGIN(lastSkipHtmlCommentContext); } <SkipHtmlComment>"--"[!]?">" { BEGIN(lastSkipHtmlCommentContext); }
<SkipHtmlComment>. <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] { <AfterDoc,AfterDocLine,LineDoc,Doc,JavaDoc,ClassDoc,PageDoc>{CMD}"todo"/[^a-z_A-Z0-9] {
todoStartContext = YY_START; todoStartContext = YY_START;
lastBriefContext = TodoParam; // this is where we will continue at the end of the argument lastBriefContext = TodoParam; // this is where we will continue at the end of the argument
...@@ -3019,10 +3032,9 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -3019,10 +3032,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry(current); current_root->addSubEntry(current);
current = new Entry ; current = new Entry ;
current->protection = protection ; current->protection = protection ;
current->sig = sig; current->mtype = mtype;
current->virt = virt; current->virt = virt;
current->stat = gstat; current->stat = gstat;
current->slot = slot;
current->mGrpId = memberGroupId; current->mGrpId = memberGroupId;
BEGIN( FindMembers ); BEGIN( FindMembers );
} }
...@@ -3300,10 +3312,9 @@ TITLE [tT][iI][tT][lL][eE] ...@@ -3300,10 +3312,9 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry(current); current_root->addSubEntry(current);
current = new Entry ; current = new Entry ;
current->protection = protection ; current->protection = protection ;
current->sig = sig; current->mtype = mtype;
current->virt = virt; current->virt = virt;
current->stat = gstat; current->stat = gstat;
current->slot = slot;
current->mGrpId = memberGroupId; current->mGrpId = memberGroupId;
BEGIN( FindMembers ); BEGIN( FindMembers );
} }
...@@ -3399,8 +3410,7 @@ static void parseCompounds(Entry *rt) ...@@ -3399,8 +3410,7 @@ static void parseCompounds(Entry *rt)
current->protection = protection = ce->protection; current->protection = protection = ce->protection;
else // named struct, union, or interface else // named struct, union, or interface
current->protection = protection = Public ; current->protection = protection = Public ;
sig = FALSE; mtype = Method;
slot = FALSE;
gstat = FALSE; gstat = FALSE;
virt = Normal; virt = Normal;
current->mGrpId = memberGroupId = ce->mGrpId; current->mGrpId = memberGroupId = ce->mGrpId;
...@@ -3419,8 +3429,7 @@ void parseMain(Entry *rt) ...@@ -3419,8 +3429,7 @@ void parseMain(Entry *rt)
initParser(); initParser();
anonCount = 0; anonCount = 0;
protection = Public; protection = Public;
sig = FALSE; mtype = Method;
slot = FALSE;
gstat = FALSE; gstat = FALSE;
virt = Normal; virt = Normal;
current_root = rt; current_root = rt;
......
...@@ -24,6 +24,89 @@ ...@@ -24,6 +24,89 @@
class Translator 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: public:
// --- Language contol methods ------------------- // --- Language contol methods -------------------
...@@ -993,6 +1076,16 @@ class Translator ...@@ -993,6 +1076,16 @@ class Translator
return "Test List"; 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 #endif
...@@ -48,105 +48,48 @@ ...@@ -48,105 +48,48 @@
// 2000/08/02 (Petr Prikryl) // 2000/08/02 (Petr Prikryl)
// - Updated for 1.2.0 // - 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: // Notices:
// -------- // --------
// The conditional compilation ensures or the neutral functionality // The conditional compilation ensures or the neutral functionality
// of the macro DECODE, or calling the WinToISO() method for // of the private inline Decode(), or calling the WinToISO() method
// on-line encoding conversion. If you want to maintain the source // for on-line encoding conversion. If you want to maintain the
// in the iso-8859-2, do convert the source, change the conditional // source in the iso-8859-2, do convert the source encoding, change
// definition of the DECODE macro using the method ISOToWin() -- // the conditional definition of the inline Decode() using the
// for conversion of strings for the Windows version. The version // method ISO88592ToWin1250() -- for conversion of strings for the
// which does not call the function is slightly faster. // Windows version. The version which does not call the function is
// // probably slightly faster (if the inline is well optimized).
// 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
class TranslatorCzech : public Translator class TranslatorCzech : public Translator
{ {
private: private:
/*! returns the string converted from windows-1250 to iso-8859-2 */ /*! The Decode() inline assumes the source written in the
QCString WinToISO(const QCString sInput) Windows encoding (maintainer dependent).
{ */
// The conversion table for characters >127 inline QCString Decode(const QCString & sInput)
//
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]; #ifdef _WIN32
result += (c > 127) ? ISOToWinTab[c & 0x7F] : c; return sInput;
} #else
return result; return Win1250ToISO88592(sInput);
#endif
} }
public: public:
...@@ -176,51 +119,51 @@ class TranslatorCzech : public Translator ...@@ -176,51 +119,51 @@ class TranslatorCzech : public Translator
/*! used in the compound documentation before a list of related functions. */ /*! used in the compound documentation before a list of related functions. */
virtual QCString trRelatedFunctions() virtual QCString trRelatedFunctions()
{ return DECODE("Související funkce"); } { return Decode("Související funkce"); }
/*! subscript for the related functions. */ /*! subscript for the related functions. */
virtual QCString trRelatedSubscript() 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. */ /*! header that is put before the detailed description of files, classes and namespaces. */
virtual QCString trDetailedDescription() virtual QCString trDetailedDescription()
{ return DECODE("Detailní popis"); } { return Decode("Detailní popis"); }
/*! header that is put before the list of typedefs. */ /*! header that is put before the list of typedefs. */
virtual QCString trMemberTypedefDocumentation() 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. */ /*! header that is put before the list of enumerations. */
virtual QCString trMemberEnumerationDocumentation() 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. */ /*! header that is put before the list of member functions. */
virtual QCString trMemberFunctionDocumentation() 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. */ /*! header that is put before the list of member attributes. */
virtual QCString trMemberDataDocumentation() 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. */ /*! this is the text of a link put after brief descriptions. */
virtual QCString trMore() virtual QCString trMore()
{ return DECODE("(...)"); } { return Decode("(...)"); }
/*! put in the class documentation */ /*! put in the class documentation */
virtual QCString trListOfAllMembers() 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 */ /*! used as the title of the "list of all members" page of a class */
virtual QCString trMemberList() 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 */ /*! this is the first part of a sentence that is followed by a class name */
virtual QCString trThisIsTheListOfAllMembers() 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 */ /*! this is the remainder of the sentence after the class name */
virtual QCString trIncludingInheritedMembers() 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. /*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name. * parameter s is name of the project name.
...@@ -230,26 +173,26 @@ class TranslatorCzech : public Translator ...@@ -230,26 +173,26 @@ class TranslatorCzech : public Translator
"ze zdrojových textù"; "ze zdrojových textù";
if (s) result+=(QCString)" projektu "+s; if (s) result+=(QCString)" projektu "+s;
result+="."; result+=".";
return DECODE(result); return Decode(result);
} }
/*! put after an enum name in the list of all members */ /*! put after an enum name in the list of all members */
virtual QCString trEnumName() 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 */ /*! put after an enum value in the list of all members */
virtual QCString trEnumValue() virtual QCString trEnumValue()
{ return DECODE("hodnota výètu"); } { return Decode("hodnota výètu"); }
/*! put after an undocumented member in the list of all members */ /*! put after an undocumented member in the list of all members */
virtual QCString trDefinedIn() 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. /*! put as in introduction in the verbatim header file of a class.
* parameter f is the name of the include file. * parameter f is the name of the include file.
*/ */
virtual QCString trVerbatimText(const char *f) 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 // quick reference sections
...@@ -257,47 +200,47 @@ class TranslatorCzech : public Translator ...@@ -257,47 +200,47 @@ class TranslatorCzech : public Translator
* compounds or files (see the \group command). * compounds or files (see the \group command).
*/ */
virtual QCString trModules() virtual QCString trModules()
{ return DECODE("Moduly"); } { return Decode("Moduly"); }
/*! This is put above each page as a link to the class hierarchy */ /*! This is put above each page as a link to the class hierarchy */
virtual QCString trClassHierarchy() 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 */ /*! This is put above each page as a link to the list of annotated classes */
virtual QCString trCompoundList() 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 */ /*! This is put above each page as a link to the list of documented files */
virtual QCString trFileList() 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 */ /*! This is put above each page as a link to the list of all verbatim headers */
virtual QCString trHeaderFiles() 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. */ /*! This is put above each page as a link to all members of compounds. */
virtual QCString trCompoundMembers() 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. */ /*! This is put above each page as a link to all members of files. */
virtual QCString trFileMembers() 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. */ /*! This is put above each page as a link to all related pages. */
virtual QCString trRelatedPages() 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. */ /*! This is put above each page as a link to all examples. */
virtual QCString trExamples() virtual QCString trExamples()
{ return DECODE("Pøíklady"); } { return Decode("Pøíklady"); }
/*! This is put above each page as a link to the search engine. */ /*! This is put above each page as a link to the search engine. */
virtual QCString trSearch() virtual QCString trSearch()
{ return DECODE("Hledat"); } { return Decode("Hledat"); }
/*! This is an introduction to the class hierarchy. */ /*! This is an introduction to the class hierarchy. */
virtual QCString trClassHierarchyDescription() 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:"); "Je seøazen pøibližnì (ale ne úplnì) podle abecedy:");
} }
...@@ -307,12 +250,12 @@ class TranslatorCzech : public Translator ...@@ -307,12 +250,12 @@ class TranslatorCzech : public Translator
QCString result="Zde naleznete seznam všech "; QCString result="Zde naleznete seznam všech ";
if (!extractAll) result+="dokumentovaných "; if (!extractAll) result+="dokumentovaných ";
result+="souborù se struènými popisy:"; result+="souborù se struènými popisy:";
return DECODE(result); return Decode(result);
} }
/*! This is an introduction to the annotated compound list. */ /*! This is an introduction to the annotated compound list. */
virtual QCString trCompoundListDescription() 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 " "ale nachází se zde i další netriviální prvky, jako jsou "
"struktury (struct), unie (union) a rozhraní (interface). " "struktury (struct), unie (union) a rozhraní (interface). "
"V seznamu jsou uvedeny jejich struèné popisy:"); "V seznamu jsou uvedeny jejich struèné popisy:");
...@@ -328,7 +271,7 @@ class TranslatorCzech : public Translator ...@@ -328,7 +271,7 @@ class TranslatorCzech : public Translator
result+="dokumentaci tøíd, ke kterým pøíslušejí:"; result+="dokumentaci tøíd, ke kterým pøíslušejí:";
else else
result+="tøídy, ke kterým pøíslušejí:"; 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. */ /*! This is an introduction to the page with all file members. */
...@@ -349,197 +292,197 @@ class TranslatorCzech : public Translator ...@@ -349,197 +292,197 @@ class TranslatorCzech : public Translator
"Symbol mùže oznaèovat makro, typ, instanci tøídy, " "Symbol mùže oznaèovat makro, typ, instanci tøídy, "
"promìnnou, konstantu, funkci, výèet, hodnotu výètu a podobnì:"; "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. */ /*! This is an introduction to the page with the list of all header files. */
virtual QCString trHeaderFilesDescription() 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):"); } "aplikaèní programátorské rozhraní (API):"); }
/*! This is an introduction to the page with the list of all examples */ /*! This is an introduction to the page with the list of all examples */
virtual QCString trExamplesDescription() 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 */ /*! This is an introduction to the page with the list of related pages */
virtual QCString trRelatedPagesDescription() 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:"); } "dokumentace:"); }
/*! This is an introduction to the page with the list of class/file groups */ /*! This is an introduction to the page with the list of class/file groups */
virtual QCString trModulesDescription() 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 /*! This sentences is used in the annotated class/file lists if no brief
* description is given. * description is given.
*/ */
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
{ return DECODE("Popis není k dispozici"); } { return Decode("Popis není k dispozici"); }
// index titles (the project name is prepended for these) // index titles (the project name is prepended for these)
/*! This is used in HTML as the title of index.html. */ /*! This is used in HTML as the title of index.html. */
virtual QCString trDocumentation() virtual QCString trDocumentation()
{ return DECODE("Dokumentace"); } { return Decode("Dokumentace"); }
/*! This is used in LaTeX as the title of the chapter with the /*! This is used in LaTeX as the title of the chapter with the
* index of all groups. * index of all groups.
*/ */
virtual QCString trModuleIndex() 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 /*! This is used in LaTeX as the title of the chapter with the
* class hierarchy. * class hierarchy.
*/ */
virtual QCString trHierarchicalIndex() 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 /*! This is used in LaTeX as the title of the chapter with the
* annotated compound index. * annotated compound index.
*/ */
virtual QCString trCompoundIndex() 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 /*! This is used in LaTeX as the title of the chapter with the
* list of all files. * list of all files.
*/ */
virtual QCString trFileIndex() 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 /*! This is used in LaTeX as the title of the chapter containing
* the documentation of all groups. * the documentation of all groups.
*/ */
virtual QCString trModuleDocumentation() virtual QCString trModuleDocumentation()
{ return DECODE("Dokumentace modulù"); } { return Decode("Dokumentace modulù"); }
/*! This is used in LaTeX as the title of the chapter containing /*! This is used in LaTeX as the title of the chapter containing
* the documentation of all classes, structs and unions. * the documentation of all classes, structs and unions.
*/ */
virtual QCString trClassDocumentation() 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 /*! This is used in LaTeX as the title of the chapter containing
* the documentation of all files. * the documentation of all files.
*/ */
virtual QCString trFileDocumentation() virtual QCString trFileDocumentation()
{ return DECODE("Dokumentace souborù"); } { return Decode("Dokumentace souborù"); }
/*! This is used in LaTeX as the title of the chapter containing /*! This is used in LaTeX as the title of the chapter containing
* the documentation of all examples. * the documentation of all examples.
*/ */
virtual QCString trExampleDocumentation() 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 /*! This is used in LaTeX as the title of the chapter containing
* the documentation of all related pages. * the documentation of all related pages.
*/ */
virtual QCString trPageDocumentation() 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 */ /*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual() 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 /*! This is used in the documentation of a file as a header before the
* list of defines * list of defines
*/ */
virtual QCString trDefines() 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 /*! This is used in the documentation of a file as a header before the
* list of function prototypes * list of function prototypes
*/ */
virtual QCString trFuncProtos() virtual QCString trFuncProtos()
{ return DECODE("Prototypy"); } { return Decode("Prototypy"); }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of typedefs * list of typedefs
*/ */
virtual QCString trTypedefs() 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 /*! This is used in the documentation of a file as a header before the
* list of enumerations * list of enumerations
*/ */
virtual QCString trEnumerations() 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 /*! This is used in the documentation of a file as a header before the
* list of (global) functions * list of (global) functions
*/ */
virtual QCString trFunctions() virtual QCString trFunctions()
{ return DECODE("Funkce"); } { return Decode("Funkce"); }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of (global) variables * list of (global) variables
*/ */
virtual QCString trVariables() 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 /*! This is used in the documentation of a file as a header before the
* list of (global) variables * list of (global) variables
*/ */
virtual QCString trEnumerationValues() virtual QCString trEnumerationValues()
{ return DECODE("Hodnoty výètù"); } { return Decode("Hodnoty výètù"); }
/*! This is used in man pages as the author section. */ /*! This is used in man pages as the author section. */
virtual QCString trAuthor() virtual QCString trAuthor()
{ return DECODE("Autor"); } { return Decode("Autor"); }
/*! This is used in the documentation of a file before the list of /*! This is used in the documentation of a file before the list of
* documentation blocks for defines * documentation blocks for defines
*/ */
virtual QCString trDefineDocumentation() 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 /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for function prototypes * of documentation blocks for function prototypes
*/ */
virtual QCString trFunctionPrototypeDocumentation() virtual QCString trFunctionPrototypeDocumentation()
{ return DECODE("Dokumentace prototypù"); } { return Decode("Dokumentace prototypù"); }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs * of documentation blocks for typedefs
*/ */
virtual QCString trTypedefDocumentation() 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 /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types * of documentation blocks for enumeration types
*/ */
virtual QCString trEnumerationTypeDocumentation() 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 /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values * of documentation blocks for enumeration values
*/ */
virtual QCString trEnumerationValueDocumentation() 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 /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for functions * of documentation blocks for functions
*/ */
virtual QCString trFunctionDocumentation() virtual QCString trFunctionDocumentation()
{ return DECODE("Dokumentace funkcí"); } { return Decode("Dokumentace funkcí"); }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for variables * of documentation blocks for variables
*/ */
virtual QCString trVariableDocumentation() 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 /*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds * the list of links to documented compounds
*/ */
virtual QCString trCompounds() virtual QCString trCompounds()
{ return DECODE("Tøídy"); } { return Decode("Tøídy"); }
/*! This is used in the documentation of a group before the list of /*! This is used in the documentation of a group before the list of
* links to documented files * links to documented files
*/ */
virtual QCString trFiles() virtual QCString trFiles()
{ return DECODE("Soubory"); } { return Decode("Soubory"); }
/*! This is used in the standard footer of each page and indicates when /*! This is used in the standard footer of each page and indicates when
* the page was generated * the page was generated
...@@ -549,75 +492,75 @@ class TranslatorCzech : public Translator ...@@ -549,75 +492,75 @@ class TranslatorCzech : public Translator
QCString result=(QCString)"Generováno "+date; QCString result=(QCString)"Generováno "+date;
if (projName) result+=(QCString)" pro projekt "+projName; if (projName) result+=(QCString)" pro projekt "+projName;
result+=(QCString)" programem"; result+=(QCString)" programem";
return DECODE(result); return Decode(result);
} }
/*! This is part of the sentence used in the standard footer of each page. /*! This is part of the sentence used in the standard footer of each page.
*/ */
virtual QCString trWrittenBy() virtual QCString trWrittenBy()
{ {
return DECODE(" -- autor "); return Decode(" -- autor ");
} }
/*! this text is put before a class diagram */ /*! this text is put before a class diagram */
virtual QCString trClassDiagram(const char *clName) 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. */ /*! this text is generated when the \internal command is used. */
virtual QCString trForInternalUseOnly() 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. */ /*! this text is generated when the \reimp command is used. */
virtual QCString trReimplementedForInternalReasons() 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."); } "aplikaèní rozhraní zachováno."); }
/*! this text is generated when the \warning command is used. */ /*! this text is generated when the \warning command is used. */
virtual QCString trWarning() virtual QCString trWarning()
{ return DECODE("Pozor"); } { return Decode("Pozor"); }
/*! this text is generated when the \bug command is used. */ /*! this text is generated when the \bug command is used. */
virtual QCString trBugsAndLimitations() virtual QCString trBugsAndLimitations()
{ return DECODE("Chyby a omezení"); } { return Decode("Chyby a omezení"); }
/*! this text is generated when the \version command is used. */ /*! this text is generated when the \version command is used. */
virtual QCString trVersion() virtual QCString trVersion()
{ return DECODE("Verze"); } { return Decode("Verze"); }
/*! this text is generated when the \date command is used. */ /*! this text is generated when the \date command is used. */
virtual QCString trDate() virtual QCString trDate()
{ return DECODE("Datum"); } { return Decode("Datum"); }
/*! this text is generated when the \author command is used. */ /*! this text is generated when the \author command is used. */
virtual QCString trAuthors() virtual QCString trAuthors()
{ return DECODE("Autor/autoøi"); } { return Decode("Autor/autoøi"); }
/*! this text is generated when the \return command is used. */ /*! this text is generated when the \return command is used. */
virtual QCString trReturns() virtual QCString trReturns()
{ return DECODE("Návratová hodnota"); } { return Decode("Návratová hodnota"); }
/*! this text is generated when the \sa command is used. */ /*! this text is generated when the \sa command is used. */
virtual QCString trSeeAlso() virtual QCString trSeeAlso()
{ return DECODE("Viz také"); } { return Decode("Viz také"); }
/*! this text is generated when the \param command is used. */ /*! this text is generated when the \param command is used. */
virtual QCString trParameters() virtual QCString trParameters()
{ return DECODE("Parametry"); } { return Decode("Parametry"); }
/*! this text is generated when the \exception command is used. */ /*! this text is generated when the \exception command is used. */
virtual QCString trExceptions() virtual QCString trExceptions()
{ return DECODE("Výjimky"); } { return Decode("Výjimky"); }
/*! this text is used in the title page of a LaTeX document. */ /*! this text is used in the title page of a LaTeX document. */
virtual QCString trGeneratedBy() virtual QCString trGeneratedBy()
{ return DECODE("Generováno programem"); } { return Decode("Generováno programem"); }
// new since 0.49-990307 // new since 0.49-990307
/*! used as the title of page containing all the index of all namespaces. */ /*! used as the title of page containing all the index of all namespaces. */
virtual QCString trNamespaceList() virtual QCString trNamespaceList()
{ return DECODE("Seznam prostorù jmen"); } { return Decode("Seznam prostorù jmen"); }
/*! used as an introduction to the namespace list */ /*! used as an introduction to the namespace list */
virtual QCString trNamespaceListDescription(bool extractAll) virtual QCString trNamespaceListDescription(bool extractAll)
...@@ -625,14 +568,14 @@ class TranslatorCzech : public Translator ...@@ -625,14 +568,14 @@ class TranslatorCzech : public Translator
QCString result="Zde naleznete seznam všech "; QCString result="Zde naleznete seznam všech ";
if (!extractAll) result+="dokumentovaných "; if (!extractAll) result+="dokumentovaných ";
result+="prostorù jmen se struèným popisem:"; 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 /*! used in the class documentation as a header before the list of all
* friends of a class * friends of a class
*/ */
virtual QCString trFriends() virtual QCString trFriends()
{ return DECODE("Friends"); } { return Decode("Friends"); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990405 // new since 0.49-990405
...@@ -642,7 +585,7 @@ class TranslatorCzech : public Translator ...@@ -642,7 +585,7 @@ class TranslatorCzech : public Translator
* related classes * related classes
*/ */
virtual QCString trRelatedFunctionDocumentation() virtual QCString trRelatedFunctionDocumentation()
{ return DECODE("Dokumentace k friends"); } { return Decode("Dokumentace k friends"); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990425 // new since 0.49-990425
...@@ -664,7 +607,7 @@ class TranslatorCzech : public Translator ...@@ -664,7 +607,7 @@ class TranslatorCzech : public Translator
case ClassDef::Exception: result+="výjimky "; break; case ClassDef::Exception: result+="výjimky "; break;
} }
result+=clName; result+=clName;
return DECODE(result); return Decode(result);
} }
/*! used as the title of the HTML page of a file */ /*! used as the title of the HTML page of a file */
...@@ -672,7 +615,7 @@ class TranslatorCzech : public Translator ...@@ -672,7 +615,7 @@ class TranslatorCzech : public Translator
{ {
QCString result("Dokumentace souboru "); QCString result("Dokumentace souboru ");
result+=fileName; result+=fileName;
return DECODE(result); return Decode(result);
} }
/*! used as the title of the HTML page of a namespace */ /*! used as the title of the HTML page of a namespace */
...@@ -680,32 +623,32 @@ class TranslatorCzech : public Translator ...@@ -680,32 +623,32 @@ class TranslatorCzech : public Translator
{ {
QCString result("Dokumentace prostoru jmen "); QCString result("Dokumentace prostoru jmen ");
result+=namespaceName; result+=namespaceName;
return DECODE(result); return Decode(result);
} }
/*! \mgroup Class sections /*! \mgroup Class sections
* these are for the member sections of a class, struct or union * these are for the member sections of a class, struct or union
*/ */
virtual QCString trPublicMembers() virtual QCString trPublicMembers()
{ return DECODE("Veøejné metody"); } { return Decode("Veøejné metody"); }
virtual QCString trPublicSlots() virtual QCString trPublicSlots()
{ return DECODE("Veøejné sloty"); } { return Decode("Veøejné sloty"); }
virtual QCString trSignals() virtual QCString trSignals()
{ return DECODE("Signály"); } { return Decode("Signály"); }
virtual QCString trStaticPublicMembers() virtual QCString trStaticPublicMembers()
{ return DECODE("Statické veøejné metody"); } { return Decode("Statické veøejné metody"); }
virtual QCString trProtectedMembers() virtual QCString trProtectedMembers()
{ return DECODE("Chránìné metody"); } { return Decode("Chránìné metody"); }
virtual QCString trProtectedSlots() virtual QCString trProtectedSlots()
{ return DECODE("Chránìné sloty"); } { return Decode("Chránìné sloty"); }
virtual QCString trStaticProtectedMembers() virtual QCString trStaticProtectedMembers()
{ return DECODE("Statické chránìné metody"); } { return Decode("Statické chránìné metody"); }
virtual QCString trPrivateMembers() virtual QCString trPrivateMembers()
{ return DECODE("Privátní metody"); } { return Decode("Privátní metody"); }
virtual QCString trPrivateSlots() virtual QCString trPrivateSlots()
{ return DECODE("Privátní sloty"); } { return Decode("Privátní sloty"); }
virtual QCString trStaticPrivateMembers() virtual QCString trStaticPrivateMembers()
{ return DECODE("Statické privátní metody"); } { return Decode("Statické privátní metody"); }
/*! \endmgroup */ /*! \endmgroup */
/*! this function is used to produce a comma-separated list of items. /*! this function is used to produce a comma-separated list of items.
...@@ -730,7 +673,7 @@ class TranslatorCzech : public Translator ...@@ -730,7 +673,7 @@ class TranslatorCzech : public Translator
result+=" a "; result+=" a ";
} }
} }
return DECODE(result); return Decode(result);
} }
/*! used in class documentation to produce a list of base classes, /*! used in class documentation to produce a list of base classes,
...@@ -738,7 +681,10 @@ class TranslatorCzech : public Translator ...@@ -738,7 +681,10 @@ class TranslatorCzech : public Translator
*/ */
virtual QCString trInheritsList(int numEntries) 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, /*! used in class documentation to produce a list of super classes,
...@@ -749,7 +695,7 @@ class TranslatorCzech : public Translator ...@@ -749,7 +695,7 @@ class TranslatorCzech : public Translator
QCString result("Zdìdìna "); QCString result("Zdìdìna ");
result += (numEntries == 1) ? "tøídou " : "tøídami "; result += (numEntries == 1) ? "tøídou " : "tøídami ";
result += trWriteList(numEntries)+"."; result += trWriteList(numEntries)+".";
return DECODE(result); return Decode(result);
} }
/*! used in member documentation blocks to produce a list of /*! used in member documentation blocks to produce a list of
...@@ -760,7 +706,7 @@ class TranslatorCzech : public Translator ...@@ -760,7 +706,7 @@ class TranslatorCzech : public Translator
QCString result("Reimplementuje "); QCString result("Reimplementuje ");
result += (numEntries == 1) ? "metodu tøídy " : "metody tøíd "; result += (numEntries == 1) ? "metodu tøídy " : "metody tøíd ";
result += trWriteList(numEntries)+"."; result += trWriteList(numEntries)+".";
return DECODE(result); return Decode(result);
} }
/*! used in member documentation blocks to produce a list of /*! used in member documentation blocks to produce a list of
...@@ -771,12 +717,12 @@ class TranslatorCzech : public Translator ...@@ -771,12 +717,12 @@ class TranslatorCzech : public Translator
QCString result("Reimplementováno "); QCString result("Reimplementováno ");
result += (numEntries == 1) ? "tøídou " : "tøídami "; result += (numEntries == 1) ? "tøídou " : "tøídami ";
result += trWriteList(numEntries)+"."; result += trWriteList(numEntries)+".";
return DECODE(result); return Decode(result);
} }
/*! This is put above each page as a link to all members of namespaces. */ /*! This is put above each page as a link to all members of namespaces. */
virtual QCString trNamespaceMembers() 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 */ /*! This is an introduction to the page with all namespace members */
virtual QCString trNamespaceMemberDescription(bool extractAll) virtual QCString trNamespaceMemberDescription(bool extractAll)
...@@ -789,19 +735,19 @@ class TranslatorCzech : public Translator ...@@ -789,19 +735,19 @@ class TranslatorCzech : public Translator
result+="dokumentaci pøíslušného prostoru jmen:"; result+="dokumentaci pøíslušného prostoru jmen:";
else else
result+="pøíslušný prostor jmen:"; 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 /*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces. * index of all namespaces.
*/ */
virtual QCString trNamespaceIndex() 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 /*! This is used in LaTeX as the title of the chapter containing
* the documentation of all namespaces. * the documentation of all namespaces.
*/ */
virtual QCString trNamespaceDocumentation() virtual QCString trNamespaceDocumentation()
{ return DECODE("Dokumentace prostorù jmen"); } { return Decode("Dokumentace prostorù jmen"); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990522 // new since 0.49-990522
...@@ -811,7 +757,7 @@ class TranslatorCzech : public Translator ...@@ -811,7 +757,7 @@ class TranslatorCzech : public Translator
* namespaces in a file. * namespaces in a file.
*/ */
virtual QCString trNamespaces() virtual QCString trNamespaces()
{ return DECODE("Prostory jmen"); } { return Decode("Prostory jmen"); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990728 // new since 0.49-990728
...@@ -836,14 +782,14 @@ class TranslatorCzech : public Translator ...@@ -836,14 +782,14 @@ class TranslatorCzech : public Translator
result+=" byla generována z "; result+=" byla generována z ";
if (single) result+="následujícího souboru:"; if (single) result+="následujícího souboru:";
else result+="následujících souborù:"; 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 /*! This is in the (quick) index as a link to the alphabetical compound
* list. * list.
*/ */
virtual QCString trAlphabeticalList() virtual QCString trAlphabeticalList()
{ return DECODE("Rejstøík tøíd"); } { return Decode("Rejstøík tøíd"); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990901 // new since 0.49-990901
...@@ -851,18 +797,18 @@ class TranslatorCzech : public Translator ...@@ -851,18 +797,18 @@ class TranslatorCzech : public Translator
/*! This is used as the heading text for the retval command. */ /*! This is used as the heading text for the retval command. */
virtual QCString trReturnValues() 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) /*! This is in the (quick) index as a link to the main page (index.html)
*/ */
virtual QCString trMainPage() 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 /*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page. * documentation. It should be an abbreviation of the word page.
*/ */
virtual QCString trPageAbbreviation() virtual QCString trPageAbbreviation()
{ return DECODE("s."); } { return Decode("s."); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-991003 // new since 0.49-991003
...@@ -870,15 +816,15 @@ class TranslatorCzech : public Translator ...@@ -870,15 +816,15 @@ class TranslatorCzech : public Translator
virtual QCString trSources() virtual QCString trSources()
{ {
return DECODE("Zdroje"); return Decode("Zdroje");
} }
virtual QCString trDefinedAtLineInSourceFile() 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() virtual QCString trDefinedInSourceFile()
{ {
return DECODE("Definice v souboru @0."); return Decode("Definice v souboru @0.");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -887,7 +833,7 @@ class TranslatorCzech : public Translator ...@@ -887,7 +833,7 @@ class TranslatorCzech : public Translator
virtual QCString trDeprecated() virtual QCString trDeprecated()
{ {
return DECODE("Zastaralé"); return Decode("Zastaralé");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -897,69 +843,69 @@ class TranslatorCzech : public Translator ...@@ -897,69 +843,69 @@ class TranslatorCzech : public Translator
/*! this text is put before a collaboration diagram */ /*! this text is put before a collaboration diagram */
virtual QCString trCollaborationDiagram(const char *clName) 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 */ /*! this text is put before an include dependency graph */
virtual QCString trInclDepGraph(const char *fName) 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+":"); "pro "+fName+":");
} }
/*! header that is put before the list of constructor/destructors. */ /*! header that is put before the list of constructor/destructors. */
virtual QCString trConstructorDocumentation() 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. */ /*! Used in the file documentation to point to the corresponding sources. */
virtual QCString trGotoSourceCode() 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. */ /*! Used in the file sources to point to the corresponding documentation. */
virtual QCString trGotoDocumentation() virtual QCString trGotoDocumentation()
{ {
return DECODE("Zobrazit dokumentaci tohoto souboru."); return Decode("Zobrazit dokumentaci tohoto souboru.");
} }
/*! Text for the \pre command */ /*! Text for the \pre command */
virtual QCString trPrecondition() virtual QCString trPrecondition()
{ {
return DECODE("Precondition"); return Decode("Precondition");
} }
/*! Text for the \post command */ /*! Text for the \post command */
virtual QCString trPostcondition() virtual QCString trPostcondition()
{ {
return DECODE("Postcondition"); return Decode("Postcondition");
} }
/*! Text for the \invariant command */ /*! Text for the \invariant command */
virtual QCString trInvariant() virtual QCString trInvariant()
{ {
return DECODE("Invariant"); return Decode("Invariant");
} }
/*! Text shown before a multi-line variable/enum initialization */ /*! Text shown before a multi-line variable/enum initialization */
virtual QCString trInitialValue() virtual QCString trInitialValue()
{ {
return DECODE("Initializer:"); return Decode("Initializer:");
} }
/*! Text used the source code in the file index */ /*! Text used the source code in the file index */
virtual QCString trCode() virtual QCString trCode()
{ {
return DECODE("zdrojový text"); return Decode("zdrojový text");
} }
virtual QCString trGraphicalHierarchy() virtual QCString trGraphicalHierarchy()
{ {
return DECODE("Grafické zobrazení hierarchie tøíd"); return Decode("Grafické zobrazení hierarchie tøíd");
} }
virtual QCString trGotoGraphicalHierarchy() virtual QCString trGotoGraphicalHierarchy()
{ {
return DECODE("Zobrazit grafickou podobu hierarchie tøíd"); return Decode("Zobrazit grafickou podobu hierarchie tøíd");
} }
virtual QCString trGotoTextualHierarchy() virtual QCString trGotoTextualHierarchy()
{ {
return DECODE("Zobrazit textovou podobu hierarchie tøíd"); return Decode("Zobrazit textovou podobu hierarchie tøíd");
} }
virtual QCString trPageIndex() virtual QCString trPageIndex()
{ {
return DECODE("Rejstøík stránek"); return Decode("Rejstøík stránek");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -968,43 +914,43 @@ class TranslatorCzech : public Translator ...@@ -968,43 +914,43 @@ class TranslatorCzech : public Translator
virtual QCString trNote() virtual QCString trNote()
{ {
return DECODE("Poznámka"); return Decode("Poznámka");
} }
virtual QCString trPublicTypes() virtual QCString trPublicTypes()
{ {
return DECODE("Veøejné typy"); return Decode("Veøejné typy");
} }
virtual QCString trPublicAttribs() virtual QCString trPublicAttribs()
{ {
return DECODE("Veøejné atributy"); return Decode("Veøejné atributy");
} }
virtual QCString trStaticPublicAttribs() virtual QCString trStaticPublicAttribs()
{ {
return DECODE("Statické veøejné atributy"); return Decode("Statické veøejné atributy");
} }
virtual QCString trProtectedTypes() virtual QCString trProtectedTypes()
{ {
return DECODE("Chránìné typy"); return Decode("Chránìné typy");
} }
virtual QCString trProtectedAttribs() virtual QCString trProtectedAttribs()
{ {
return DECODE("Chránìné atributy"); return Decode("Chránìné atributy");
} }
virtual QCString trStaticProtectedAttribs() virtual QCString trStaticProtectedAttribs()
{ {
return DECODE("Statické chránìné atributy"); return Decode("Statické chránìné atributy");
} }
virtual QCString trPrivateTypes() virtual QCString trPrivateTypes()
{ {
return DECODE("Privátní typy"); return Decode("Privátní typy");
} }
virtual QCString trPrivateAttribs() virtual QCString trPrivateAttribs()
{ {
return DECODE("Privátní atributy"); return Decode("Privátní atributy");
} }
virtual QCString trStaticPrivateAttribs() virtual QCString trStaticPrivateAttribs()
{ {
return DECODE("Statické privátní atributy"); return Decode("Statické privátní atributy");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1014,12 +960,12 @@ class TranslatorCzech : public Translator ...@@ -1014,12 +960,12 @@ class TranslatorCzech : public Translator
/*! Used as a marker that is put before a todo item */ /*! Used as a marker that is put before a todo item */
virtual QCString trTodo() virtual QCString trTodo()
{ {
return DECODE("Udìlat"); return Decode("Plánované úpravy");
} }
/*! Used as the header of the todo list */ /*! Used as the header of the todo list */
virtual QCString trTodoList() 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 ...@@ -1028,24 +974,24 @@ class TranslatorCzech : public Translator
virtual QCString trReferencedBy() virtual QCString trReferencedBy()
{ {
return DECODE("Používá se v"); return Decode("Používá se v");
} }
virtual QCString trRemarks() virtual QCString trRemarks()
{ {
return DECODE("Poznámky"); // ??? not checked in a context return Decode("Poznámky"); // ??? not checked in a context
} }
virtual QCString trAttention() virtual QCString trAttention()
{ {
return DECODE("Upozornìní"); // ??? not checked in a context return Decode("Upozornìní"); // ??? not checked in a context
} }
virtual QCString trInclByDepGraph() 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:"); "nepøímo vkládají tento soubor:");
} }
virtual QCString trSince() 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 ...@@ -1055,7 +1001,7 @@ class TranslatorCzech : public Translator
/*! title of the graph legend page */ /*! title of the graph legend page */
virtual QCString trLegendTitle() 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 */ /*! page explaining how the dot graph's should be interpreted */
virtual QCString trLegendDocs() virtual QCString trLegendDocs()
...@@ -1124,12 +1070,12 @@ class TranslatorCzech : public Translator ...@@ -1124,12 +1070,12 @@ class TranslatorCzech : public Translator
"je tøída nebo struktura zpøístupnìna.\n" "je tøída nebo struktura zpøístupnìna.\n"
"</ul>\n"); "</ul>\n");
return DECODE(result); return Decode(result);
} }
/*! text for the link to the legend page */ /*! text for the link to the legend page */
virtual QCString trLegend() virtual QCString trLegend()
{ {
return DECODE("vysvìtlivky"); return Decode("vysvìtlivky");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1139,13 +1085,13 @@ class TranslatorCzech : public Translator ...@@ -1139,13 +1085,13 @@ class TranslatorCzech : public Translator
/*! Used as a marker that is put before a test item */ /*! Used as a marker that is put before a test item */
virtual QCString trTest() virtual QCString trTest()
{ {
return "Test"; return Decode("Test");
} }
/*! Used as the header of the test list */ /*! Used as the header of the test list */
virtual QCString trTestList() virtual QCString trTestList()
{ {
return "Seznam testù"; return Decode("Seznam testù");
} }
}; };
......
...@@ -35,84 +35,15 @@ class TranslatorCroatian : public Translator ...@@ -35,84 +35,15 @@ class TranslatorCroatian : public Translator
/* Speed loss is actualy less than in Czech version due to /* Speed loss is actualy less than in Czech version due to
fewer QCString copying. fewer QCString copying.
*/ */
inline QCString& decode(const QCString& sInput) inline QCString decode(const QCString& sInput)
{ {
#ifdef _WIN32 #ifdef _WIN32
return ISOToWin(sInput); return ISO88592ToWin1250(sInput);
#else #else
return const_cast<QCString&>(sInput); return sInput;
#endif #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: public:
QCString idLanguage() QCString idLanguage()
{ return "croatian"; } { return "croatian"; }
......
/******************************************************************************
*
*
*
* 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
...@@ -314,6 +314,31 @@ ClassDef *getClass(const char *name) ...@@ -314,6 +314,31 @@ ClassDef *getClass(const char *name)
return classDict[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) ClassDef *getResolvedClass(const char *name)
{ {
if (name==0 || name[0]=='\0') return 0; if (name==0 || name[0]=='\0') return 0;
...@@ -2434,9 +2459,10 @@ void extractNamespaceName(const QCString &scopeName, ...@@ -2434,9 +2459,10 @@ void extractNamespaceName(const QCString &scopeName,
{ {
QCString clName=scopeName.copy(); QCString clName=scopeName.copy();
//QCString nsName; //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) { // the whole name is a namespace (and not a class)
namespaceName=clName.copy(); namespaceName=nd->name().copy();
className.resize(0); className.resize(0);
//printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(), //printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(),
// className.data(),namespaceName.data()); // className.data(),namespaceName.data());
...@@ -2446,9 +2472,9 @@ void extractNamespaceName(const QCString &scopeName, ...@@ -2446,9 +2472,9 @@ void extractNamespaceName(const QCString &scopeName,
while (p>=0 && (i=clName.findRev("::",p))!=-1) while (p>=0 && (i=clName.findRev("::",p))!=-1)
// see if the first part is a namespace (and not a class) // 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); className=clName.right(clName.length()-i-2);
//printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(), //printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(),
// className.data(),namespaceName.data()); // className.data(),namespaceName.data());
......
...@@ -107,6 +107,7 @@ extern QCString substitute(const char *s,const char *src,const char *dst); ...@@ -107,6 +107,7 @@ extern QCString substitute(const char *s,const char *src,const char *dst);
extern QCString resolveDefines(const char *n); extern QCString resolveDefines(const char *n);
extern ClassDef *getClass(const char *key); extern ClassDef *getClass(const char *key);
extern ClassDef *getResolvedClass(const char *key); extern ClassDef *getResolvedClass(const char *key);
extern NamespaceDef *getResolvedNamespace(const char *key);
extern FileDef *findFileDef(const FileNameDict *fnDict,const char *n, extern FileDef *findFileDef(const FileNameDict *fnDict,const char *n,
bool &ambig); bool &ambig);
extern QCString showFileDefMatches(const FileNameDict *fnDict,const char *n); extern QCString showFileDefMatches(const FileNameDict *fnDict,const char *n);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment