Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
doxverilog
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
doxverilog
Commits
69ead65c
Commit
69ead65c
authored
Sep 10, 2000
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-20000910
parent
92663f87
Changes
38
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
38 changed files
with
1434 additions
and
471 deletions
+1434
-471
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
configgen.cpp
addon/configgen/configgen.cpp
+18
-7
config.doc
doc/config.doc
+47
-2
faq.doc
doc/faq.doc
+10
-0
features.doc
doc/features.doc
+1
-1
index.doc
doc/index.doc
+2
-2
language.doc
doc/language.doc
+31
-4
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+17
-5
classdef.h
src/classdef.h
+1
-0
config.h
src/config.h
+2
-1
config.l
src/config.l
+20
-3
definition.h
src/definition.h
+1
-1
doc.l
src/doc.l
+8
-1
dot.cpp
src/dot.cpp
+1
-1
doxygen.cpp
src/doxygen.cpp
+34
-24
doxygen.h
src/doxygen.h
+1
-0
doxygen.pro.in
src/doxygen.pro.in
+1
-1
entry.cpp
src/entry.cpp
+2
-4
entry.h
src/entry.h
+4
-2
filedef.cpp
src/filedef.cpp
+2
-4
filedef.h
src/filedef.h
+5
-2
index.cpp
src/index.cpp
+3
-3
language.cpp
src/language.cpp
+5
-0
latexgen.cpp
src/latexgen.cpp
+2
-1
memberdef.cpp
src/memberdef.cpp
+2
-0
memberdef.h
src/memberdef.h
+3
-1
memberlist.cpp
src/memberlist.cpp
+2
-1
rtfgen.cpp
src/rtfgen.cpp
+5
-5
scanner.l
src/scanner.l
+55
-46
translator.h
src/translator.h
+93
-0
translator_cz.h
src/translator_cz.h
+190
-244
translator_hr.h
src/translator_hr.h
+26
-95
translator_kr.h
src/translator_kr.h
+803
-0
util.cpp
src/util.cpp
+30
-4
util.h
src/util.h
+1
-0
No files found.
INSTALL
View file @
69ead65c
DOXYGEN Version 1.2.1-20000
829
DOXYGEN Version 1.2.1-20000
910
Please read the installation section of the manual for instructions.
--------
Dimitri van Heesch (
29 August
2000)
Dimitri van Heesch (
10 September
2000)
README
View file @
69ead65c
DOXYGEN Version 1.2.1-20000
829
DOXYGEN Version 1.2.1-20000
910
Please read INSTALL for compilation instructions.
...
...
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Dimitri van Heesch (
29 August
2000)
Dimitri van Heesch (
10 September
2000)
VERSION
View file @
69ead65c
1.2.1-20000
829
1.2.1-20000
910
addon/configgen/configgen.cpp
View file @
69ead65c
...
...
@@ -775,7 +775,7 @@ void init()
"information to generate all constant output in the proper language.
\n
"
"The default language is English, other supported languages are:
\n
"
"Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese,
\n
"
"Spanish, Russian, Croatian, Polish, and Portuguese.
\n
"
"
Korean, Hungarian,
Spanish, Russian, Croatian, Polish, and Portuguese.
\n
"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"English"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Dutch"
);
...
...
@@ -785,7 +785,9 @@ void init()
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Swedish"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"German"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Finnish"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Hungarian"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Japanese"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Korean"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Spanish"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Russian"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Croatian"
);
...
...
@@ -920,11 +922,11 @@ void init()
"CASE_SENSE_NAMES"
,
"TRUE"
,
"determines if output can be mixed case."
,
"If the CASE_SENSE_NAMES tag is set to NO
(the default) then Doxygen
\n
"
"
will only generate file names in lower case letters. If set t
o
\n
"
"
YES upper case letters are also allowed. This is useful if you have
\n
"
"
classes or files whose names only differ in case and if your file system
\n
"
"
supports case sensitive file names.
\n
"
"If the CASE_SENSE_NAMES tag is set to NO
then Doxygen will only generate
\n
"
"
file names in lower case letters. If set to YES upper case letters are als
o
\n
"
"
allowed. This is useful if you have classes or files whose names only differ
\n
"
"
in case and if your file system supports case sensitive file names. Windows
\n
"
"
users are adviced to set this option to NO.
\n
"
);
ConfigBool
::
add
(
"hideScopeNames"
,
"HIDE_SCOPE_NAMES"
,
...
...
@@ -983,6 +985,15 @@ void init()
"alphabetically by member name. If set to NO the members will appear in
\n
"
"declaration order.
\n
"
);
ConfigBool
::
add
(
"distributeDocFlag"
,
"DISTRIBUTE_GROUP_DOC"
,
"FALSE"
,
"distribute docs over member group?"
,
"If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
\n
"
"tag is set to YES, then doxygen will reuse the documentation of the first
\n
"
"member in the group (if any) for the other members of the group. By default
\n
"
"all members of a group must be documented explicitly.
\n
"
);
ConfigInt
::
add
(
"tabSize"
,
"TAB_SIZE"
,
"8"
,
...
...
@@ -1019,7 +1030,7 @@ void init()
""
,
"list of aliases"
,
"This tag can be used to specify a number of aliases that acts
\n
"
"as commands in the documentation. An alias has the form
\"
\\
name=value
\"
.
\n
"
"as commands in the documentation. An alias has the form
\"
name=value
\"
.
\n
"
"For example adding
\"
sideeffect=
\\
par Side Effects:
\\
n
\"
will allow you to
\n
"
"put the command
\\
sideeffect (or @sideeffect) in the documentation, which
\n
"
"will result in a user defined paragraph with heading
\"
Side Effects:
\"
.
\n
"
...
...
doc/config.doc
View file @
69ead65c
...
...
@@ -66,6 +66,7 @@ followed by the descriptions of the tags grouped by category.
\
begin
{
multicols
}{
3
}
\
begin
{
CompactList
}
\
endlatexonly
<
li
>
\
refitem
cfg_aliases
ALIASES
<
li
>
\
refitem
cfg_allexternals
ALLEXTERNALS
<
li
>
\
refitem
cfg_alphabetical_index
ALPHABETICAL_INDEX
<
li
>
\
refitem
cfg_always_detailed_sec
ALWAYS_DETAILED_SEC
...
...
@@ -81,6 +82,7 @@ followed by the descriptions of the tags grouped by category.
<
li
>
\
refitem
cfg_compact_latex
COMPACT_LATEX
<
li
>
\
refitem
cfg_compact_rtf
COMPACT_RTF
<
li
>
\
refitem
cfg_disable_index
DISABLE_INDEX
<
li
>
\
refitem
cfg_distribute_group_doc
DISTRIBUTE_GROUP_DOC
<
li
>
\
refitem
cfg_doc_abspath
DOC_ABSPATH
<
li
>
\
refitem
cfg_doc_url
DOC_URL
<
li
>
\
refitem
cfg_dot_path
DOT_PATH
...
...
@@ -104,6 +106,8 @@ followed by the descriptions of the tags grouped by category.
<
li
>
\
refitem
cfg_generate_man
GENERATE_MAN
<
li
>
\
refitem
cfg_generate_rtf
GENERATE_RTF
<
li
>
\
refitem
cfg_generate_tagfile
GENERATE_TAGFILE
<
li
>
\
refitem
cfg_generate_testlist
GENERATE_TESTLIST
<
li
>
\
refitem
cfg_generate_todolist
GENERATE_TODOLIST
<
li
>
\
refitem
cfg_graphical_hierarchy
GRAPHICAL_HIERARCHY
<
li
>
\
refitem
cfg_have_dot
HAVE_DOT
<
li
>
\
refitem
cfg_hide_scope_names
HIDE_SCOPE_NAMES
...
...
@@ -203,8 +207,8 @@ followed by the descriptions of the tags grouped by category.
documentation
generated
by
doxygen
is
written
.
Doxygen
will
use
this
information
to
generate
all
constant
output
in
the
proper
language
.
The
default
language
is
English
,
other
supported
languages
are
:
Dutch
,
French
,
Italian
,
Czech
,
Swedish
,
German
,
Finnish
,
Japanese
,
Spanish
,
Russian
,
Croatian
,
Polish
and
Portuguese
.
Dutch
,
French
,
Italian
,
Czech
,
Swedish
,
German
,
Finnish
,
Hungarian
,
Japanese
,
Korean
,
Spanish
,
Russian
,
Croatian
,
Polish
and
Portuguese
.
\
anchor
cfg_disable_index
<
dt
>\
c
DISABLE_INDEX
<
dd
>
...
...
@@ -392,6 +396,14 @@ followed by the descriptions of the tags grouped by category.
alphabetically
by
member
name
.
If
set
to
\
c
NO
the
members
will
appear
in
declaration
order
.
\
anchor
cfg_distribute_group_doc
<
dt
>\
c
DISTRIBUTE_GROUP_DOC
<
dd
>
\
addindex
DISTRIBUTE_GROUP_DOC
If
member
grouping
is
used
in
the
documentation
and
the
DISTRIBUTE_GROUP_DOC
tag
is
set
to
YES
,
then
doxygen
will
reuse
the
documentation
of
the
first
member
in
the
group
(
if
any
)
for
the
other
members
of
the
group
.
By
default
all
members
of
a
group
must
be
documented
explicitly
.
\
anchor
cfg_tab_size
<
dt
>\
c
TAB_SIZE
<
dd
>
\
addindex
TAB_SIZE
...
...
@@ -405,6 +417,39 @@ followed by the descriptions of the tags grouped by category.
documentation
sections
,
marked
by
\
ref
cmdif
"
\\
if"
\<
section
-
label
\>
...
\
ref
cmdendif
"
\\
endif"
blocks
.
\
anchor
cfg_generate_todolist
<
dt
>\
c
GENERATE_TODOLIST
<
dd
>
\
addindex
GENERATE_TODOLIST
The
GENERATE_TODOLIST
tag
can
be
used
to
enable
(
YES
)
or
disable
(
NO
)
the
todo
list
.
This
list
is
created
by
putting
\
ref
cmdtodo
"
\\
todo"
commands
in
the
documentation
.
\
anchor
cfg_generate_testlist
<
dt
>\
c
GENERATE_TESTLIST
<
dd
>
\
addindex
GENERATE_TESTLIST
The
GENERATE_TESTLIST
tag
can
be
used
to
enable
(
YES
)
or
disable
(
NO
)
the
test
list
.
This
list
is
created
by
putting
\
ref
cmdtest
"
\\
test"
commands
in
the
documentation
.
\
anchor
cfg_aliases
<
dt
>\
c
ALIASES
<
dd
>
\
addindex
ALIASES
This
tag
can
be
used
to
specify
a
number
of
aliases
that
acts
as
commands
in
the
documentation
.
An
alias
has
the
form
\
verbatim
name
=
value
\
endverbatim
For
example
adding
\
verbatim
"sideeffect=\par Side Effects:
\n
"
\
endverbatim
will
allow
you
to
put
the
command
\\
sideeffect
(
or
\@
sideeffect
)
in
the
documentation
,
which
will
result
in
a
user
defined
paragraph
with
heading
"Side Effects:"
.
You
can
put
\\
n
's in the value part of an alias to insert newlines.
Predefined commands cannot be overwritten using aliases.
</dl>
\subsection messages_input Options related to warning and progress messages
...
...
doc/faq.doc
View file @
69ead65c
...
...
@@ -169,6 +169,16 @@ EXCLUDE_PATTERNS = */test/*
Put a \% in front of the class name. Like this: \%MyClass. Doxygen will then
remove the % and keep the word unlinked.
<li><b>Help! I get the cryptic message
"input buffer overflow, can't enlarge buffer because scanner uses REJECT"</b>
This error happens when doxygen lexical scanner has a rules that matches
more than 16K input character in one go. I've seen this happening
on a very large generated file (>16K lines), where the built-in preprocessor
converted it into an empty file (with >16K of newlines). Another case
where this might happen is if you have lines in you code with more than
16K characters.
</ol>
\htmlonly
...
...
doc/features.doc
View file @
69ead65c
...
...
@@ -23,7 +23,7 @@
<li>Requires very little overhead from the writer of the documentation.
Plain text will do, but for more fancy or structured output HTML tags
and/or some of doxygen's special commands can be used.
<li>Supports C++, (Corba
and Microsoft
) IDL and C sources.
<li>Supports C++, (Corba
, Microsoft, and KDE-DCOP
) IDL and C sources.
<li>Supports documentation of files, namespaces, classes, structs, unions,
templates, variables, functions, typedefs, enums and defines.
<li>JavaDoc (1.1), Qt-Doc, and KDOC compatible.
...
...
doc/index.doc
View file @
69ead65c
...
...
@@ -49,8 +49,8 @@ Documents produced by Doxygen are derivative works derived from the
input used in their production; they are not affected by this license.
<h2>Introduction</h2>
Doxygen is a documentation system for C++, IDL
(Corba and Microsoft flavors)
and C.
Doxygen is a documentation system for C++, IDL
(Corba, Microsoft and KDE-DCOP flavors)
and C.
It can help you in three ways:
<ol>
...
...
doc/language.doc
View file @
69ead65c
...
...
@@ -22,9 +22,9 @@ Doxygen has support for multiple languages. This means that the text fragments t
doxygen generates can changed into languages other than English
(the default) at configuration time.
<p>
Currently, supported languages are English, French, Czech, Dutch,
Swedish,
Italian, German and Japanese. A number
of people have volunteered to add support for other languages as well.
Currently, supported languages are English, French, Czech, Dutch,
Spannish,
Swedish,
Russian, Czech, Croatian, Italian, Hungarian, Finnish, German and Japanese,
and Korean.
Here is a list of the languages and their current maintainers:
<p>
...
...
@@ -155,6 +155,30 @@ Here is a list of the languages and their current maintainers:
snob@NOSPAM.int.spb.ru</a>
</TD>
</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">
<TD>
Croatian
...
...
@@ -167,7 +191,6 @@ Here is a list of the languages and their current maintainers:
boris.bralo@NOSPAM.zg.tel.hr</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Polish
...
...
@@ -225,6 +248,10 @@ Here is a list of the languages and their current maintainers:
\hline
Russian & Nickolay Semyonov & {\tt snob@int.spb.ru} \\
\hline
Korean & Richard Kim & {\\tt ryk@dspwiz.com} \\
\hline
Hungarian & Fldvri Gyrgy & {\\tt foldvari@diatronltd.com} \\
\hline
Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} \\
\hline
Polish & Grzegorz Kowal & {\tt g\_kowal@poczta.onet.pl} \\
...
...
packages/rpm/doxygen.spec
View file @
69ead65c
Name: doxygen
Version: 1.2.1-20000
829
Version: 1.2.1-20000
910
Summary: documentation system for C, C++ and IDL
Release: 1
Source0: doxygen-%{version}.src.tar.gz
...
...
src/classdef.cpp
View file @
69ead65c
...
...
@@ -178,6 +178,7 @@ void ClassDef::addMembersToMemberGroup()
addMemberListToGroup
(
&
pubAttribs
);
addMemberListToGroup
(
&
pubSlots
);
addMemberListToGroup
(
&
signals
);
addMemberListToGroup
(
&
dcopMethods
);
addMemberListToGroup
(
&
pubStaticMembers
);
addMemberListToGroup
(
&
pubStaticAttribs
);
addMemberListToGroup
(
&
proTypes
);
...
...
@@ -219,11 +220,15 @@ void ClassDef::insertMember(MemberDef *md)
{
switch
(
md
->
memberType
())
{
case
MemberDef
:
:
Signal
:
case
MemberDef
:
:
Signal
:
// Qt specific
signals
.
append
(
md
);
md
->
setSectionList
(
&
signals
);
break
;
case
MemberDef
:
:
Slot
:
case
MemberDef
:
:
DCOP
:
// KDE2 specific
dcopMethods
.
append
(
md
);
md
->
setSectionList
(
&
dcopMethods
);
break
;
case
MemberDef
:
:
Slot
:
// Qt specific
switch
(
md
->
protection
())
{
case
Protected
:
...
...
@@ -358,7 +363,8 @@ void ClassDef::insertMember(MemberDef *md)
{
switch
(
md
->
memberType
())
{
case
MemberDef
:
:
Signal
:
case
MemberDef
:
:
Signal
:
// fall through
case
MemberDef
:
:
DCOP
:
if
(
Config
::
sortMembersFlag
)
functionMembers
.
inSort
(
md
);
else
...
...
@@ -511,6 +517,7 @@ void ClassDef::computeAnchors()
setAnchors
(
's'
,
&
pubTypes
);
setAnchors
(
't'
,
&
proTypes
);
setAnchors
(
'u'
,
&
priTypes
);
setAnchors
(
'v'
,
&
dcopMethods
);
}
void
ClassDef
::
distributeMemberGroupDocumentation
()
...
...
@@ -857,6 +864,8 @@ void ClassDef::writeDocumentation(OutputList &ol)
pubAttribs
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trPublicAttribs
(),
0
);
pubSlots
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trPublicSlots
(),
0
);
signals
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trSignals
(),
0
);
dcopMethods
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trDCOPMethods
(),
0
);
// static public members
pubStaticMembers
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trStaticPublicMembers
(),
0
);
pubStaticAttribs
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trStaticPublicAttribs
(),
0
);
...
...
@@ -1066,7 +1075,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol
.
docify
(
stripFromPath
(
path
));
}
if
(
fd
->
generateSource
()
||
(
!
fd
->
isReference
()
&&
Config
::
sourceBrowseFlag
))
if
(
fd
->
generateSource
File
(
))
{
ol
.
writeObjectLink
(
0
,
fd
->
sourceName
(),
0
,
fd
->
name
());
}
...
...
@@ -1340,6 +1349,7 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup)
pubAttribs
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
pubSlots
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
signals
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
dcopMethods
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
pubStaticMembers
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
pubStaticAttribs
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
proTypes
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
...
...
@@ -1856,7 +1866,8 @@ void ClassDef::generateXML(QTextStream &t)
}
int
numMembers
=
pubTypes
.
count
()
+
pubMembers
.
count
()
+
pubAttribs
.
count
()
+
pubSlots
.
count
()
+
signals
.
count
()
+
pubStaticMembers
.
count
()
+
pubSlots
.
count
()
+
signals
.
count
()
+
dcopMethods
.
count
()
+
pubStaticMembers
.
count
()
+
pubStaticAttribs
.
count
()
+
proTypes
.
count
()
+
proMembers
.
count
()
+
proAttribs
.
count
()
+
proSlots
.
count
()
+
proStaticMembers
.
count
()
+
proStaticAttribs
.
count
()
+
priTypes
.
count
()
+
priMembers
.
count
()
+
...
...
@@ -1870,6 +1881,7 @@ void ClassDef::generateXML(QTextStream &t)
generateXMLSection
(
t
,
&
pubAttribs
,
"public-attrib"
);
generateXMLSection
(
t
,
&
pubSlots
,
"public-slot"
);
generateXMLSection
(
t
,
&
signals
,
"signal"
);
generateXMLSection
(
t
,
&
dcopMethods
,
"dcop-func"
);
generateXMLSection
(
t
,
&
pubStaticMembers
,
"public-static-func"
);
generateXMLSection
(
t
,
&
pubStaticAttribs
,
"public-static-attrib"
);
generateXMLSection
(
t
,
&
proTypes
,
"protected-type"
);
...
...
src/classdef.h
View file @
69ead65c
...
...
@@ -167,6 +167,7 @@ class ClassDef : public Definition
MemberList
related
;
MemberList
signals
;
MemberList
friends
;
MemberList
dcopMethods
;
/* member list by types */
MemberList
constructors
;
...
...
src/config.h
View file @
69ead65c
/* This file was generated by configgen on
Fri Aug 25 21:22:11
2000
/* This file was generated by configgen on
Sat Sep 2 10:51:52
2000
* from config_templ.h
*
* DO NOT EDIT!
...
...
@@ -64,6 +64,7 @@ struct Config
static
bool
inheritDocsFlag
;
// inheritance of documentation enabled?
static
bool
inlineInfoFlag
;
// show info about inline members?
static
bool
sortMembersFlag
;
// sort members alphabetically?
static
bool
distributeDocFlag
;
// distribute docs over member group?
static
int
tabSize
;
// number of spaces in a tab
static
QStrList
sectionFilterList
;
// list of section filters that are enabled
static
bool
generateTodoList
;
// do we want a todo list?
...
...
src/config.l
View file @
69ead65c
/* This file was generated by configgen on
Fri Aug 25 21:22:11
2000
/* This file was generated by configgen on
Sat Sep 2 10:51:52
2000
* from config_templ.l
*
* DO NOT EDIT!
...
...
@@ -101,6 +101,7 @@ bool Config::autoBriefFlag = TRUE;
bool Config::inheritDocsFlag = TRUE;
bool Config::inlineInfoFlag = TRUE;
bool Config::sortMembersFlag = TRUE;
bool Config::distributeDocFlag = FALSE;
int Config::tabSize = 8;
QStrList Config::sectionFilterList;
bool Config::generateTodoList = TRUE;
...
...
@@ -357,6 +358,7 @@ static void readIncludeFile(const char *incName)
<Start>"INHERIT_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::inheritDocsFlag; }
<Start>"INLINE_INFO"[ \t]*"=" { BEGIN(GetBool); b=&Config::inlineInfoFlag; }
<Start>"SORT_MEMBER_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::sortMembersFlag; }
<Start>"DISTRIBUTE_GROUP_DOC"[ \t]*"=" { BEGIN(GetBool); b=&Config::distributeDocFlag; }
<Start>"TAB_SIZE"[ \t]*"=" { BEGIN(GetString); s=&tabSizeString; s->resize(0); }
<Start>"ENABLED_SECTIONS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::sectionFilterList; l->clear(); elemStr=""; }
<Start>"ENABLED_SECTIONS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::sectionFilterList; elemStr=""; }
...
...
@@ -587,6 +589,7 @@ void dumpConfig()
printf("inheritDocsFlag=`%d'\n",Config::inheritDocsFlag);
printf("inlineInfoFlag=`%d'\n",Config::inlineInfoFlag);
printf("sortMembersFlag=`%d'\n",Config::sortMembersFlag);
printf("distributeDocFlag=`%d'\n",Config::distributeDocFlag);
printf("tabSize=`%d'\n",Config::tabSize);
{
char *is=Config::sectionFilterList.first();
...
...
@@ -824,6 +827,7 @@ void Config::init()
Config::inheritDocsFlag = TRUE;
Config::inlineInfoFlag = TRUE;
Config::sortMembersFlag = TRUE;
Config::distributeDocFlag = FALSE;
Config::tabSize = 8;
Config::sectionFilterList.clear();
Config::generateTodoList = TRUE;
...
...
@@ -1011,7 +1015,7 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# information to generate all constant output in the proper language. \n";
t << "# The default language is English, other supported languages are: \n";
t << "# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, \n";
t << "# Spanish, Russian, Croatian, Polish, and Portuguese.\n";
t << "#
Korean, Hungarian,
Spanish, Russian, Croatian, Polish, and Portuguese.\n";
t << "\n";
}
t << "OUTPUT_LANGUAGE = ";
...
...
@@ -1278,6 +1282,18 @@ void writeTemplateConfig(QFile *f,bool sl)
writeBoolValue(t,Config::sortMembersFlag);
t << "\n";
if (!sl)
{
t << "\n";
t << "# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC \n";
t << "# tag is set to YES, then doxygen will reuse the documentation of the first \n";
t << "# member in the group (if any) for the other members of the group. By default \n";
t << "# all members of a group must be documented explicitly.\n";
t << "\n";
}
t << "DISTRIBUTE_GROUP_DOC = ";
writeBoolValue(t,Config::distributeDocFlag);
t << "\n";
if (!sl)
{
t << "\n";
t << "# The TAB_SIZE tag can be used to set the number of spaces in a tab. \n";
...
...
@@ -1323,10 +1339,11 @@ void writeTemplateConfig(QFile *f,bool sl)
{
t << "\n";
t << "# This tag can be used to specify a number of aliases that acts \n";
t << "# as commands in the documentation. An alias has the form \"
\\
name=value\". \n";
t << "# as commands in the documentation. An alias has the form \"name=value\". \n";
t << "# For example adding \"sideeffect=\\par Side Effects:\\n\" will allow you to \n";
t << "# put the command \\sideeffect (or @sideeffect) in the documentation, which \n";
t << "# will result in a user defined paragraph with heading \"Side Effects:\". \n";
t << "# You can put \\n's in the value part of an alias to insert newlines. \n";
t << "# Predefined commands cannot be overwritten using aliases. \n";
t << "\n";
}
...
...
src/definition.h
View file @
69ead65c
...
...
@@ -69,7 +69,7 @@ class Definition
virtual
bool
isLinkableInProject
()
=
0
;
virtual
bool
isLinkable
()
=
0
;
bool
isReference
()
{
return
!
ref
.
isEmpty
();
}
bool
isReference
()
const
{
return
!
ref
.
isEmpty
();
}
void
setReference
(
const
char
*
r
)
{
ref
=
r
;
}
QCString
getReference
()
{
return
ref
;
}
...
...
src/doc.l
View file @
69ead65c
...
...
@@ -2042,9 +2042,16 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
forceEndItemList();
}
else
{
if (insidePre)
{
outDoc->docify(yytext);
}
else
{
outDoc->newParagraph();
}
}
if (inBlock()) endBlock();
}
<DocScan>{BN}+/\n {
...
...
src/dot.cpp
View file @
69ead65c
...
...
@@ -1205,7 +1205,7 @@ void DotInclDepGraph::buildGraph(DotNode *n,FileDef *fd,int distance)
{
in
=
bfd
->
absFilePath
();
doc
=
bfd
->
isLinkableInProject
();
src
=
bfd
->
generateSource
()
||
(
!
bfd
->
isReference
()
&&
Config
::
sourceBrowseFlag
);
src
=
bfd
->
generateSource
File
(
);
}
if
(
doc
||
src
)
{
...
...
src/doxygen.cpp
View file @
69ead65c
...
...
@@ -90,6 +90,7 @@ FileNameDict *includeNameDict; // include names
FileNameDict
*
exampleNameDict
;
// examples
FileNameDict
*
imageNameDict
;
// images
StringDict
typedefDict
(
1009
);
// all typedefs
StringDict
namespaceAliasDict
(
257
);
// all namespace aliases
GroupDict
groupDict
(
257
);
// all groups
FormulaDict
formulaDict
(
1009
);
// all formulas
FormulaDict
formulaNameDict
(
1009
);
// the label name of all formulas
...
...
@@ -502,7 +503,7 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root)
// generate code for header
{
cd
->
setIncludeFile
(
fd
,
iName
,
local
);
fd
->
setGenerateSource
(
TRUE
);
//
fd->setGenerateSource(TRUE);
}
else
// put #include in the class documentation without link
{
...
...
@@ -526,7 +527,7 @@ static bool addNamespace(Entry *root,ClassDef *cd)
//printf("addNameSpace() trying: %s\n",e->name.data());
QCString
nsName
=
stripAnnonymousNamespaceScope
(
e
->
name
);
if
(
!
nsName
.
isEmpty
()
&&
nsName
.
at
(
0
)
!=
'@'
&&
(
nd
=
namespaceDict
[
nsName
]
)
(
nd
=
getResolvedNamespace
(
nsName
)
)
)
{
cd
->
setNamespace
(
nd
);
...
...
@@ -688,7 +689,7 @@ static void buildClassList(Entry *root)
// namespace is part of the class name
if
(
!
found
&&
!
namespaceName
.
isEmpty
())
{
NamespaceDef
*
nd
=
namespaceDict
[
namespaceName
]
;
NamespaceDef
*
nd
=
getResolvedNamespace
(
namespaceName
)
;
if
(
nd
)
{
cd
->
setNamespace
(
nd
);
...
...
@@ -850,7 +851,7 @@ static void findUsingDirectives(Entry *root)
nsName
=
root
->
parent
->
name
.
copy
();
if
(
!
nsName
.
isEmpty
())
{
nd
=
namespaceDict
[
nsName
]
;
nd
=
getResolvedNamespace
(
nsName
)
;
}
}
...
...
@@ -864,7 +865,7 @@ static void findUsingDirectives(Entry *root)
QCString
scope
=
scopeOffset
>
0
?
nsName
.
left
(
scopeOffset
)
+
"::"
:
QCString
();
//printf("Trying with scope=`%s'\n",scope.data());
usingNd
=
namespaceDict
[
scope
+
root
->
name
]
;
usingNd
=
getResolvedNamespace
(
scope
+
root
->
name
)
;
if
(
scopeOffset
==
0
)
{
scopeOffset
=-
1
;
...
...
@@ -959,7 +960,7 @@ static void findUsingDeclarations(Entry *root)
scName
=
root
->
parent
->
name
.
copy
();
if
(
!
scName
.
isEmpty
())
{
nd
=
namespaceDict
[
scName
]
;
nd
=
getResolvedNamespace
(
scName
)
;
}
}
...
...
@@ -1175,7 +1176,7 @@ static MemberDef *addVariableToFile(
QCString
nscope
=
removeAnnonymousScopes
(
scope
);
if
(
!
nscope
.
isEmpty
())
{
nd
=
namespaceDict
[
nscope
]
;
nd
=
getResolvedNamespace
(
nscope
)
;
}
}
QCString
def
;
...
...
@@ -1221,7 +1222,7 @@ static MemberDef *addVariableToFile(
NamespaceDef
*
nd
=
0
;
if
(
!
nscope
.
isEmpty
())
{
nd
=
namespaceDict
[
nscope
]
;
nd
=
getResolvedNamespace
(
nscope
)
;
}
if
(
nd
==
0
||
md
->
getNamespaceDef
()
==
nd
)
// variable already in the scope
...
...
@@ -1541,8 +1542,9 @@ static void buildMemberList(Entry *root)
MemberDef
::
MemberType
mtype
;
if
(
isFriend
)
mtype
=
MemberDef
::
Friend
;
else
if
(
root
->
sig
)
mtype
=
MemberDef
::
Signal
;
else
if
(
root
->
slot
)
mtype
=
MemberDef
::
Slot
;
else
if
(
root
->
mtype
==
Signal
)
mtype
=
MemberDef
::
Signal
;
else
if
(
root
->
mtype
==
Slot
)
mtype
=
MemberDef
::
Slot
;
else
if
(
root
->
mtype
==
DCOP
)
mtype
=
MemberDef
::
DCOP
;
else
mtype
=
MemberDef
::
Function
;
// strip redundant template specifier for constructors
...
...
@@ -1699,7 +1701,7 @@ static void buildMemberList(Entry *root)
NamespaceDef
*
rnd
=
0
;
if
(
!
root
->
parent
->
name
.
isEmpty
())
{
rnd
=
namespaceDict
[
root
->
parent
->
name
]
;
rnd
=
getResolvedNamespace
(
root
->
parent
->
name
)
;
}
FileDef
*
fd
=
md
->
getFileDef
();
QCString
nsName
,
rnsName
;
...
...
@@ -1811,7 +1813,7 @@ static void buildMemberList(Entry *root)
QCString
nscope
=
removeAnnonymousScopes
(
root
->
parent
->
name
);
if
(
!
nscope
.
isEmpty
())
{
nd
=
namespaceDict
[
nscope
]
;
nd
=
getResolvedNamespace
(
nscope
)
;
}
}
...
...
@@ -3197,7 +3199,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
bool
ambig
;
FileDef
*
fd
=
findFileDef
(
inputNameDict
,
root
->
fileName
,
ambig
);
NamespaceDef
*
nd
=
0
;
if
(
!
namespaceName
.
isEmpty
())
nd
=
namespaceDict
[
namespaceName
]
;
if
(
!
namespaceName
.
isEmpty
())
nd
=
getResolvedNamespace
(
namespaceName
)
;
tcd
=
findClassDefinition
(
fd
,
nd
,
scopeName
,
classTempList
);
if
(
cd
&&
tcd
==
cd
)
// member's classes match
...
...
@@ -3367,8 +3369,9 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
if
(
unique
)
{
MemberDef
::
MemberType
mtype
;
if
(
root
->
sig
)
mtype
=
MemberDef
::
Signal
;
else
if
(
root
->
slot
)
mtype
=
MemberDef
::
Slot
;
if
(
root
->
mtype
==
Signal
)
mtype
=
MemberDef
::
Signal
;
else
if
(
root
->
mtype
==
Slot
)
mtype
=
MemberDef
::
Slot
;
else
if
(
root
->
mtype
==
DCOP
)
mtype
=
MemberDef
::
DCOP
;
else
mtype
=
MemberDef
::
Function
;
// new overloaded member function
...
...
@@ -3440,10 +3443,12 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
if
(
newMember
)
// need to create a new member
{
MemberDef
::
MemberType
mtype
;
if
(
root
->
sig
)
if
(
root
->
mtype
==
Signal
)
mtype
=
MemberDef
::
Signal
;
else
if
(
root
->
s
lot
)
else
if
(
root
->
mtype
==
S
lot
)
mtype
=
MemberDef
::
Slot
;
else
if
(
root
->
mtype
==
DCOP
)
mtype
=
MemberDef
::
DCOP
;
else
mtype
=
MemberDef
::
Function
;
...
...
@@ -3679,7 +3684,7 @@ static void findEnums(Entry *root)
{
QCString
scope
=
root
->
name
.
left
(
i
);
// extract scope
name
=
root
->
name
.
right
(
root
->
name
.
length
()
-
i
-
2
);
// extract name
if
((
cd
=
getClass
(
scope
))
==
0
)
nd
=
namespaceDict
[
scope
]
;
if
((
cd
=
getClass
(
scope
))
==
0
)
nd
=
getResolvedNamespace
(
scope
)
;
}
else
// no scope, check the scope in which the docs where found
{
...
...
@@ -3688,7 +3693,7 @@ static void findEnums(Entry *root)
)
// found enum docs inside a compound
{
QCString
scope
=
root
->
parent
->
name
;
if
((
cd
=
getClass
(
scope
))
==
0
)
nd
=
namespaceDict
[
scope
]
;
if
((
cd
=
getClass
(
scope
))
==
0
)
nd
=
getResolvedNamespace
(
scope
)
;
}
name
=
root
->
name
.
copy
();
}
...
...
@@ -4103,7 +4108,9 @@ static void generateFileSources()
for
(;(
fd
=
fni
.
current
());
++
fni
)
{
bool
src
=
!
fd
->
isReference
()
&&
(
fd
->
generateSource
()
||
Config
::
sourceBrowseFlag
);
(
Config
::
verbatimHeaderFlag
//fd->generateSource()
||
Config
::
sourceBrowseFlag
);
if
(
src
)
{
msg
(
"Generating code for file %s...
\n
"
,
fd
->
name
().
data
());
...
...
@@ -5883,8 +5890,11 @@ int main(int argc,char **argv)
msg
(
"Adding members to member groups.
\n
"
);
addMembersToMemberGroup
();
if
(
Config
::
distributeDocFlag
)
{
msg
(
"Distributing member group documentation.
\n
"
);
distributeMemberGroupDocumentation
();
}
msg
(
"Building full member lists recursively...
\n
"
);
buildCompleteMemberLists
();
...
...
src/doxygen.h
View file @
69ead65c
...
...
@@ -91,6 +91,7 @@ extern QTextStream tagFile;
extern
SectionDict
sectionDict
;
extern
FileNameList
inputNameList
;
extern
StringDict
typedefDict
;
extern
StringDict
namespaceAliasDict
;
extern
GroupList
groupList
;
extern
GroupDict
groupDict
;
extern
NamespaceList
namespaceList
;
...
...
src/doxygen.pro.in
View file @
69ead65c
...
...
@@ -26,7 +26,7 @@ HEADERS = doxygen.h scanner.h doc.h classdef.h classlist.h memberdef.h \
translator_nl.h translator_se.h translator_cz.h translator_fr.h \
translator_it.h formula.h debug.h membergroup.h htmlhelp.h \
translator_ru.h translator_pl.h dot.h rtfgen.h xml.h xml_dtd.h \
reflist.h page.h sortdict.h translator_hu.h
reflist.h page.h sortdict.h translator_hu.h
translator_kr.h
SOURCES = doxygen.cpp scanner.cpp doc.cpp classdef.cpp classlist.cpp \
memberdef.cpp membername.cpp index.cpp memberlist.cpp \
entry.cpp logos.cpp instdox.cpp message.cpp code.cpp \
...
...
src/entry.cpp
View file @
69ead65c
...
...
@@ -48,8 +48,7 @@ Entry::Entry(const Entry &e)
//printf("Copy New Entry %d\n",num);
section
=
e
.
section
;
protection
=
e
.
protection
;
sig
=
e
.
sig
;
slot
=
e
.
slot
;
mtype
=
e
.
mtype
;
stat
=
e
.
stat
;
explicitExternal
=
e
.
explicitExternal
;
virt
=
e
.
virt
;
...
...
@@ -219,9 +218,8 @@ void Entry::reset()
todoId
=
0
;
testId
=
0
;
section
=
EMPTY_SEC
;
sig
=
FALSE
;
mtype
=
Method
;
virt
=
Normal
;
slot
=
FALSE
;
stat
=
FALSE
;
proto
=
FALSE
;
explicitExternal
=
FALSE
;
...
...
src/entry.h
View file @
69ead65c
...
...
@@ -23,6 +23,7 @@
enum
Protection
{
Public
,
Protected
,
Private
}
;
enum
Specifier
{
Normal
,
Virtual
,
Pure
}
;
enum
MethodTypes
{
Method
,
Signal
,
Slot
,
DCOP
};
struct
BaseInfo
{
...
...
@@ -161,8 +162,9 @@ class Entry
int
section
;
// entry type (see Sections);
Protection
protection
;
// class protection
bool
sig
;
// a Qt signal ?
bool
slot
;
// a Qt slot ?
//bool sig; // a Qt signal ?
//bool slot; // a Qt slot ?
MethodTypes
mtype
;
// signal, slot or dcop method?
bool
stat
;
// static ?
bool
explicitExternal
;
// explicitly defined as external?
bool
proto
;
// prototype ?
...
...
src/filedef.cpp
View file @
69ead65c
...
...
@@ -164,9 +164,7 @@ void FileDef::writeDocumentation(OutputList &ol)
ol
.
docify
(
ii
->
includeName
);
ol
.
enableAll
();
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
if
(
fd
&&
fd
->
isLinkable
()
&&
(
fd
->
generateSource
()
||
Config
::
sourceBrowseFlag
)
)
if
(
fd
&&
fd
->
isLinkable
()
&&
fd
->
generateSourceFile
())
{
ol
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
includeName
(),
0
,
ii
->
includeName
);
}
...
...
@@ -222,7 +220,7 @@ void FileDef::writeDocumentation(OutputList &ol)
//incDepGraph.writeGraph(Config::htmlOutputDir,fd->getOutputFileBase());
}
if
(
generateSource
()
||
(
!
isReference
()
&&
Config
::
sourceBrowseFlag
))
if
(
generateSource
File
(
))
{
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
newParagraph
();
...
...
src/filedef.h
View file @
69ead65c
...
...
@@ -120,8 +120,11 @@ class FileDef : public Definition
void
addUsingDeclaration
(
ClassDef
*
cd
);
ClassList
*
getUsedClasses
()
const
{
return
usingDeclList
;
}
void
setGenerateSource
(
bool
b
)
{
isSource
=
b
;
}
bool
generateSource
()
const
{
return
isSource
;
}
//void setGenerateSource(bool b) { isSource=b; }
bool
generateSourceFile
()
const
{
return
!
isReference
()
&&
(
Config
::
sourceBrowseFlag
||
Config
::
verbatimHeaderFlag
);
}
void
addIncludeDependency
(
FileDef
*
fd
,
const
char
*
incName
,
bool
local
);
void
addIncludedByDependency
(
FileDef
*
fd
,
const
char
*
incName
,
bool
local
);
...
...
src/index.cpp
View file @
69ead65c
...
...
@@ -333,7 +333,7 @@ void countFiles(int &htmlFiles,int &files)
for
(;(
fd
=
fni
.
current
());
++
fni
)
{
bool
doc
=
fd
->
isLinkableInProject
();
bool
src
=
fd
->
generateSource
()
||
Config
::
sourceBrowseFlag
;
bool
src
=
fd
->
generateSource
File
()
;
if
(
doc
||
src
)
{
htmlFiles
++
;
...
...
@@ -415,7 +415,7 @@ void writeFileIndex(OutputList &ol)
{
//printf("Found filedef %s\n",fd->name().data());
bool
doc
=
fd
->
isLinkableInProject
();
bool
src
=
fd
->
generateSource
()
||
Config
::
sourceBrowseFlag
;
bool
src
=
fd
->
generateSource
File
()
;
if
((
doc
||
src
)
&&
!
fd
->
isReference
())
{
QCString
path
;
...
...
@@ -849,7 +849,7 @@ void writeAlphabeticalClassList(OutputList &ol)
if
(
!
namesp
.
isEmpty
())
{
ol
.
docify
(
" ("
);
NamespaceDef
*
nd
=
namespaceDict
[
namesp
]
;
NamespaceDef
*
nd
=
getResolvedNamespace
(
namesp
)
;
if
(
nd
&&
nd
->
isLinkable
())
{
ol
.
writeObjectLink
(
nd
->
getReference
(),
...
...
src/language.cpp
View file @
69ead65c
...
...
@@ -32,6 +32,7 @@
#include "translator_pl.h"
#include "translator_pt.h"
#include "translator_hu.h"
#include "translator_kr.h"
#endif
#define L_EQUAL(a) !stricmp(langName,a)
...
...
@@ -105,6 +106,10 @@ bool setTranslator(const char *langName)
{
theTranslator
=
new
TranslatorHungarian
;
}
else
if
(
L_EQUAL
(
"korean"
))
{
theTranslator
=
new
TranslatorKorean
;
}
#endif
else
// use the default language (i.e. english)
{
...
...
src/latexgen.cpp
View file @
69ead65c
...
...
@@ -1134,6 +1134,7 @@ void LatexGenerator::docify(const char *str)
{
static
bool
isCzech
=
theTranslator
->
idLanguage
()
==
"czech"
;
static
bool
isJapanese
=
theTranslator
->
idLanguage
()
==
"japanese"
;
static
bool
isKorean
=
theTranslator
->
idLanguage
()
==
"korean"
;
static
bool
isRussian
=
theTranslator
->
idLanguage
()
==
"russian"
;
static
bool
isGerman
=
theTranslator
->
idLanguage
()
==
"german"
;
if
(
str
)
...
...
@@ -1192,7 +1193,7 @@ void LatexGenerator::docify(const char *str)
break
;
default
:
if
(
isJapanese
)
if
(
isJapanese
||
isKorean
)
{
// Japanese language uses wide characters
if
(
c
>=
128
)
{
...
...
src/memberdef.cpp
View file @
69ead65c
...
...
@@ -1414,6 +1414,7 @@ void MemberDef::generateXML(QTextStream &t,Definition *def)
case
Signal
:
// fall through
case
Prototype
:
// fall through
case
Friend
:
// fall through
case
DCOP
:
// fall through
case
Slot
:
t
<<
"functiondef"
;
xmlType
=
function_t
;
break
;
}
t
<<
" id=
\"
"
;
...
...
@@ -1562,6 +1563,7 @@ void MemberDef::generateXML(QTextStream &t,Definition *def)
case
Signal
:
// fall through
case
Prototype
:
// fall through
case
Friend
:
// fall through
case
DCOP
:
// fall through
case
Slot
:
t
<<
"functiondef"
;
break
;
}
t
<<
">"
<<
endl
;
...
...
src/memberdef.h
View file @
69ead65c
...
...
@@ -57,7 +57,8 @@ class MemberDef : public Definition
Prototype
,
Signal
,
Slot
,
Friend
Friend
,
DCOP
};
enum
...
...
@@ -107,6 +108,7 @@ class MemberDef : public Definition
bool
isFunction
()
const
{
return
mtype
==
Function
;
}
bool
isDefine
()
const
{
return
mtype
==
Define
;
}
bool
isFriend
()
const
{
return
mtype
==
Friend
;
}
bool
isDCOP
()
const
{
return
mtype
==
DCOP
;
}
bool
isRelated
()
const
{
return
related
;
}
bool
isStatic
()
const
{
return
stat
;
}
bool
isInline
()
const
{
return
(
memSpec
&
Entry
::
Inline
)
!=
0
;
}
...
...
src/memberlist.cpp
View file @
69ead65c
...
...
@@ -73,6 +73,7 @@ void MemberList::countDecMembers(bool inGroup,bool countSubGroups,bool sectionPe
case
MemberDef
:
:
Variable
:
varCnt
++
,
m_count
++
;
break
;
case
MemberDef
:
:
Function
:
// fall through
case
MemberDef
:
:
Signal
:
// fall through
case
MemberDef
:
:
DCOP
:
// fall through
case
MemberDef
:
:
Slot
:
if
(
!
md
->
isRelated
()
||
md
->
getClassDef
())
funcCnt
++
,
m_count
++
;
break
;
...
...
@@ -409,7 +410,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,
for
(
;
(
md
=
mli
.
current
())
;
++
mli
)
{
if
(
(
md
->
isFunction
()
||
md
->
isSignal
()
||
md
->
isSlot
())
&&
(
md
->
isFunction
()
||
md
->
isSignal
()
||
md
->
isSlot
()
||
md
->
isDCOP
()
)
&&
(
!
md
->
isRelated
()
||
md
->
getClassDef
()
)
&&
inGroup
==
md
->
visibleMemberGroup
(
sectionPerType
)
)
...
...
src/rtfgen.cpp
View file @
69ead65c
...
...
@@ -326,19 +326,19 @@ static const struct
{
"ListEnum4"
,
"
\\
s94
\\
fi-360
\\
li1800
\\
widctlpar
\\
fs20
\\
cgrid "
},
{
"ListEnum
4
"
,
{
"ListEnum
5
"
,
"
\\
s95
\\
fi-360
\\
li2160
\\
widctlpar
\\
fs20
\\
cgrid "
},
{
"ListEnum
5
"
,
{
"ListEnum
6
"
,
"
\\
s96
\\
fi-360
\\
li2520
\\
widctlpar
\\
fs20
\\
cgrid "
},
{
"ListEnum
6
"
,
{
"ListEnum
7
"
,
"
\\
s97
\\
fi-360
\\
li2880
\\
widctlpar
\\
fs20
\\
cgrid "
},
{
"ListEnum
7
"
,
{
"ListEnum
8
"
,
"
\\
s98
\\
fi-360
\\
li3240
\\
widctlpar
\\
fs20
\\
cgrid "
},
{
"ListEnum
8
"
,
{
"ListEnum
9
"
,
"
\\
s99
\\
fi-360
\\
li3600
\\
widctlpar
\\
fs20
\\
cgrid "
},
{
0
,
...
...
src/scanner.l
View file @
69ead65c
This diff is collapsed.
Click to expand it.
src/translator.h
View file @
69ead65c
...
...
@@ -24,6 +24,89 @@
class
Translator
{
protected
:
/*! Returns the string converted from windows-1250 to iso-8859-2. */
/* The method was designed initially for translator_cz.h.
It is used for on-line encoding conversion related to conditional
compilation in Unix/MS Windows environments (both use different
encoding). Later, the translator_hr.h (by Boris Bralo) used and
improved the same style. As the method with the translation table
was the same, the decision to move it to this base class was made.
The same holds for ISO88592ToWin1250() method. It is recommended
for possibly other similar methods in future.
*/
QCString
Win1250ToISO88592
(
const
QCString
&
sInput
)
{
// The conversion table for characters >127
//
static
const
char
WinToISOTab
[]
=
{
'\x80'
,
'\x81'
,
'\x82'
,
'\x83'
,
'\x84'
,
'\x85'
,
'\x86'
,
'\x87'
,
'\x88'
,
'\x89'
,
'\xA9'
,
'\x8B'
,
'\xA6'
,
'\xAB'
,
'\xAE'
,
'\xAC'
,
'\x90'
,
'\x91'
,
'\x92'
,
'\x93'
,
'\x94'
,
'\x2E'
,
'\x96'
,
'\x97'
,
'\x98'
,
'\x99'
,
'\xB9'
,
'\x9B'
,
'\xB6'
,
'\xBB'
,
'\xBE'
,
'\xBC'
,
'\xA0'
,
'\x20'
,
'\x20'
,
'\xA3'
,
'\xA4'
,
'\xA1'
,
'\xA6'
,
'\xA7'
,
'\x22'
,
'\xA9'
,
'\xAA'
,
'\x3C'
,
'\xAC'
,
'\x2D'
,
'\xAE'
,
'\xAF'
,
'\x2E'
,
'\x2B'
,
'\x20'
,
'\xB3'
,
'\x27'
,
'\x75'
,
'\xB6'
,
'\xB7'
,
'\x20'
,
'\xB1'
,
'\xBA'
,
'\x3E'
,
'\xA5'
,
'\x22'
,
'\xB5'
,
'\xBF'
,
'\xC0'
,
'\xC1'
,
'\xC2'
,
'\xC3'
,
'\xC4'
,
'\xC5'
,
'\xC6'
,
'\xC7'
,
'\xC8'
,
'\xC9'
,
'\xCA'
,
'\xCB'
,
'\xCC'
,
'\xCD'
,
'\xCE'
,
'\xCF'
,
'\xD0'
,
'\xD1'
,
'\xD2'
,
'\xD3'
,
'\xD4'
,
'\xD5'
,
'\xD6'
,
'\xD7'
,
'\xD8'
,
'\xD9'
,
'\xDA'
,
'\xDB'
,
'\xDC'
,
'\xDD'
,
'\xDE'
,
'\xDF'
,
'\xE0'
,
'\xE1'
,
'\xE2'
,
'\xE3'
,
'\xE4'
,
'\xE5'
,
'\xE6'
,
'\xE7'
,
'\xE8'
,
'\xE9'
,
'\xEA'
,
'\xEB'
,
'\xEC'
,
'\xED'
,
'\xEE'
,
'\xEF'
,
'\xF0'
,
'\xF1'
,
'\xF2'
,
'\xF3'
,
'\xF4'
,
'\xF5'
,
'\xF6'
,
'\x2D'
,
'\xF8'
,
'\xF9'
,
'\xFA'
,
'\xFB'
,
'\xFC'
,
'\xFD'
,
'\xFE'
,
'\xFF'
,
'\0'
};
QCString
result
;
int
len
=
sInput
.
length
();
for
(
int
i
=
0
;
i
<
len
;
++
i
)
{
unsigned
int
c
=
sInput
[
i
];
result
+=
(
c
>
127
)
?
WinToISOTab
[
c
&
0x7F
]
:
c
;
}
return
result
;
}
/*! returns the string converted from iso-8859-2 to windows-1250 */
/* See the comments of the Win1250ToISO88592() method for details. */
QCString
ISO88592ToWin1250
(
const
QCString
&
sInput
)
{
// The conversion table for characters >127
//
static
const
char
ISOToWinTab
[]
=
{
'\x80'
,
'\x81'
,
'\x82'
,
'\x83'
,
'\x84'
,
'\x85'
,
'\x86'
,
'\x87'
,
'\x88'
,
'\x89'
,
'\x8A'
,
'\x8B'
,
'\x8C'
,
'\x8D'
,
'\x8E'
,
'\x8F'
,
'\x90'
,
'\x91'
,
'\x92'
,
'\x93'
,
'\x94'
,
'\x95'
,
'\x96'
,
'\x97'
,
'\x98'
,
'\x99'
,
'\x9A'
,
'\x9B'
,
'\x9C'
,
'\x9D'
,
'\x9E'
,
'\x9F'
,
'\xA0'
,
'\xA5'
,
'\xA2'
,
'\xA3'
,
'\xA4'
,
'\xBC'
,
'\x8C'
,
'\xA7'
,
'\xA8'
,
'\x8A'
,
'\xAA'
,
'\x8D'
,
'\x8F'
,
'\xAD'
,
'\x8E'
,
'\xAF'
,
'\xB0'
,
'\xB9'
,
'\xB2'
,
'\xB3'
,
'\xB4'
,
'\xBE'
,
'\x9C'
,
'\xB7'
,
'\xB8'
,
'\x9A'
,
'\xBA'
,
'\x9D'
,
'\x9F'
,
'\xBD'
,
'\x9E'
,
'\xBF'
,
'\xC0'
,
'\xC1'
,
'\xC2'
,
'\xC3'
,
'\xC4'
,
'\xC5'
,
'\xC6'
,
'\xC7'
,
'\xC8'
,
'\xC9'
,
'\xCA'
,
'\xCB'
,
'\xCC'
,
'\xCD'
,
'\xCE'
,
'\xCF'
,
'\xD0'
,
'\xD1'
,
'\xD2'
,
'\xD3'
,
'\xD4'
,
'\xD5'
,
'\xD6'
,
'\xD7'
,
'\xD8'
,
'\xD9'
,
'\xDA'
,
'\xDB'
,
'\xDC'
,
'\xDD'
,
'\xDE'
,
'\xDF'
,
'\xE0'
,
'\xE1'
,
'\xE2'
,
'\xE3'
,
'\xE4'
,
'\xE5'
,
'\xE6'
,
'\xE7'
,
'\xE8'
,
'\xE9'
,
'\xEA'
,
'\xEB'
,
'\xEC'
,
'\xED'
,
'\xEE'
,
'\xEF'
,
'\xF0'
,
'\xF1'
,
'\xF2'
,
'\xF3'
,
'\xF4'
,
'\xF5'
,
'\xF6'
,
'\xF7'
,
'\xF8'
,
'\xF9'
,
'\xFA'
,
'\xFB'
,
'\xFC'
,
'\xFD'
,
'\xFE'
,
'\xFF'
,
'\0'
};
QCString
result
;
int
len
=
sInput
.
length
();
for
(
int
i
=
0
;
i
<
len
;
++
i
)
{
unsigned
int
c
=
sInput
[
i
];
result
+=
(
c
>
127
)
?
ISOToWinTab
[
c
&
0x7F
]
:
c
;
}
return
result
;
}
public
:
// --- Language contol methods -------------------
...
...
@@ -993,6 +1076,16 @@ class Translator
return
"Test List"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.1
//////////////////////////////////////////////////////////////////////////
/*! Used as a section header for KDE-2 IDL methods */
virtual
QCString
trDCOPMethods
()
{
return
"DCOP Methods"
;
}
};
#endif
src/translator_cz.h
View file @
69ead65c
This diff is collapsed.
Click to expand it.
src/translator_hr.h
View file @
69ead65c
...
...
@@ -35,84 +35,15 @@ class TranslatorCroatian : public Translator
/* Speed loss is actualy less than in Czech version due to
fewer QCString copying.
*/
inline
QCString
&
decode
(
const
QCString
&
sInput
)
inline
QCString
decode
(
const
QCString
&
sInput
)
{
#ifdef _WIN32
return
ISOToWin
(
sInput
);
return
ISO88592ToWin1250
(
sInput
);
#else
return
const_cast
<
QCString
&>
(
sInput
)
;
return
sInput
;
#endif
}
/*! returns the string converted from windows-1250 to iso-8859-2 */
QCString
WinToISO
(
const
QCString
&
sInput
)
{
// The conversion table for characters >127
//
static
const
char
WinToISOTab
[]
=
{
'\x80'
,
'\x81'
,
'\x82'
,
'\x83'
,
'\x84'
,
'\x85'
,
'\x86'
,
'\x87'
,
'\x88'
,
'\x89'
,
'\xA9'
,
'\x8B'
,
'\xA6'
,
'\xAB'
,
'\xAE'
,
'\xAC'
,
'\x90'
,
'\x91'
,
'\x92'
,
'\x93'
,
'\x94'
,
'\x2E'
,
'\x96'
,
'\x97'
,
'\x98'
,
'\x99'
,
'\xB9'
,
'\x9B'
,
'\xB6'
,
'\xBB'
,
'\xBE'
,
'\xBC'
,
'\xA0'
,
'\x20'
,
'\x20'
,
'\xA3'
,
'\xA4'
,
'\xA1'
,
'\xA6'
,
'\xA7'
,
'\x22'
,
'\xA9'
,
'\xAA'
,
'\x3C'
,
'\xAC'
,
'\x2D'
,
'\xAE'
,
'\xAF'
,
'\x2E'
,
'\x2B'
,
'\x20'
,
'\xB3'
,
'\x27'
,
'\x75'
,
'\xB6'
,
'\xB7'
,
'\x20'
,
'\xB1'
,
'\xBA'
,
'\x3E'
,
'\xA5'
,
'\x22'
,
'\xB5'
,
'\xBF'
,
'\xC0'
,
'\xC1'
,
'\xC2'
,
'\xC3'
,
'\xC4'
,
'\xC5'
,
'\xC6'
,
'\xC7'
,
'\xC8'
,
'\xC9'
,
'\xCA'
,
'\xCB'
,
'\xCC'
,
'\xCD'
,
'\xCE'
,
'\xCF'
,
'\xD0'
,
'\xD1'
,
'\xD2'
,
'\xD3'
,
'\xD4'
,
'\xD5'
,
'\xD6'
,
'\xD7'
,
'\xD8'
,
'\xD9'
,
'\xDA'
,
'\xDB'
,
'\xDC'
,
'\xDD'
,
'\xDE'
,
'\xDF'
,
'\xE0'
,
'\xE1'
,
'\xE2'
,
'\xE3'
,
'\xE4'
,
'\xE5'
,
'\xE6'
,
'\xE7'
,
'\xE8'
,
'\xE9'
,
'\xEA'
,
'\xEB'
,
'\xEC'
,
'\xED'
,
'\xEE'
,
'\xEF'
,
'\xF0'
,
'\xF1'
,
'\xF2'
,
'\xF3'
,
'\xF4'
,
'\xF5'
,
'\xF6'
,
'\x2D'
,
'\xF8'
,
'\xF9'
,
'\xFA'
,
'\xFB'
,
'\xFC'
,
'\xFD'
,
'\xFE'
,
'\xFF'
,
'\0'
};
QCString
result
;
int
len
=
sInput
.
length
();
for
(
int
i
=
0
;
i
<
len
;
++
i
)
{
unsigned
int
c
=
sInput
[
i
];
result
+=
(
c
>
127
)
?
WinToISOTab
[
c
&
0x7F
]
:
c
;
}
return
result
;
}
/*! returns the string converted from iso-8859-2 to windows-1250 */
QCString
ISOToWin
(
const
QCString
&
sInput
)
{
// The conversion table for characters >127
//
static
const
char
ISOToWinTab
[]
=
{
'\x80'
,
'\x81'
,
'\x82'
,
'\x83'
,
'\x84'
,
'\x85'
,
'\x86'
,
'\x87'
,
'\x88'
,
'\x89'
,
'\x8A'
,
'\x8B'
,
'\x8C'
,
'\x8D'
,
'\x8E'
,
'\x8F'
,
'\x90'
,
'\x91'
,
'\x92'
,
'\x93'
,
'\x94'
,
'\x95'
,
'\x96'
,
'\x97'
,
'\x98'
,
'\x99'
,
'\x9A'
,
'\x9B'
,
'\x9C'
,
'\x9D'
,
'\x9E'
,
'\x9F'
,
'\xA0'
,
'\xA5'
,
'\xA2'
,
'\xA3'
,
'\xA4'
,
'\xBC'
,
'\x8C'
,
'\xA7'
,
'\xA8'
,
'\x8A'
,
'\xAA'
,
'\x8D'
,
'\x8F'
,
'\xAD'
,
'\x8E'
,
'\xAF'
,
'\xB0'
,
'\xB9'
,
'\xB2'
,
'\xB3'
,
'\xB4'
,
'\xBE'
,
'\x9C'
,
'\xB7'
,
'\xB8'
,
'\x9A'
,
'\xBA'
,
'\x9D'
,
'\x9F'
,
'\xBD'
,
'\x9E'
,
'\xBF'
,
'\xC0'
,
'\xC1'
,
'\xC2'
,
'\xC3'
,
'\xC4'
,
'\xC5'
,
'\xC6'
,
'\xC7'
,
'\xC8'
,
'\xC9'
,
'\xCA'
,
'\xCB'
,
'\xCC'
,
'\xCD'
,
'\xCE'
,
'\xCF'
,
'\xD0'
,
'\xD1'
,
'\xD2'
,
'\xD3'
,
'\xD4'
,
'\xD5'
,
'\xD6'
,
'\xD7'
,
'\xD8'
,
'\xD9'
,
'\xDA'
,
'\xDB'
,
'\xDC'
,
'\xDD'
,
'\xDE'
,
'\xDF'
,
'\xE0'
,
'\xE1'
,
'\xE2'
,
'\xE3'
,
'\xE4'
,
'\xE5'
,
'\xE6'
,
'\xE7'
,
'\xE8'
,
'\xE9'
,
'\xEA'
,
'\xEB'
,
'\xEC'
,
'\xED'
,
'\xEE'
,
'\xEF'
,
'\xF0'
,
'\xF1'
,
'\xF2'
,
'\xF3'
,
'\xF4'
,
'\xF5'
,
'\xF6'
,
'\xF7'
,
'\xF8'
,
'\xF9'
,
'\xFA'
,
'\xFB'
,
'\xFC'
,
'\xFD'
,
'\xFE'
,
'\xFF'
,
'\0'
};
QCString
result
;
int
len
=
sInput
.
length
();
for
(
int
i
=
0
;
i
<
len
;
++
i
)
{
unsigned
int
c
=
sInput
[
i
];
result
+=
(
c
>
127
)
?
ISOToWinTab
[
c
&
0x7F
]
:
c
;
}
return
result
;
}
public
:
QCString
idLanguage
()
{
return
"croatian"
;
}
...
...
src/translator_kr.h
0 → 100644
View file @
69ead65c
This diff is collapsed.
Click to expand it.
src/util.cpp
View file @
69ead65c
...
...
@@ -314,6 +314,31 @@ ClassDef *getClass(const char *name)
return
classDict
[
name
];
}
NamespaceDef
*
getResolvedNamespace
(
const
char
*
name
)
{
if
(
name
==
0
||
name
[
0
]
==
'\0'
)
return
0
;
QCString
*
subst
=
namespaceAliasDict
[
name
];
if
(
subst
)
{
int
count
=
0
;
// recursion detection guard
QCString
*
newSubst
;
while
((
newSubst
=
namespaceAliasDict
[
*
subst
])
&&
count
<
10
)
{
subst
=
newSubst
;
count
++
;
}
if
(
count
==
10
)
{
warn_cont
(
"Warning: possible recursive namespace alias detected for %s!
\n
"
,
name
);
}
return
namespaceDict
[
subst
->
data
()];
}
else
{
return
namespaceDict
[
name
];
}
}
ClassDef
*
getResolvedClass
(
const
char
*
name
)
{
if
(
name
==
0
||
name
[
0
]
==
'\0'
)
return
0
;
...
...
@@ -2434,9 +2459,10 @@ void extractNamespaceName(const QCString &scopeName,
{
QCString
clName
=
scopeName
.
copy
();
//QCString nsName;
if
(
!
clName
.
isEmpty
()
&&
namespaceDict
[
clName
]
&&
getClass
(
clName
)
==
0
)
NamespaceDef
*
nd
;
if
(
!
clName
.
isEmpty
()
&&
(
nd
=
getResolvedNamespace
(
clName
))
&&
getClass
(
clName
)
==
0
)
{
// the whole name is a namespace (and not a class)
namespaceName
=
clName
.
copy
();
namespaceName
=
nd
->
name
()
.
copy
();
className
.
resize
(
0
);
//printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(),
// className.data(),namespaceName.data());
...
...
@@ -2446,9 +2472,9 @@ void extractNamespaceName(const QCString &scopeName,
while
(
p
>=
0
&&
(
i
=
clName
.
findRev
(
"::"
,
p
))
!=-
1
)
// see if the first part is a namespace (and not a class)
{
if
(
i
>
0
&&
namespaceDict
[
clName
.
left
(
i
)]
&&
getClass
(
clName
.
left
(
i
))
==
0
)
if
(
i
>
0
&&
(
nd
=
getResolvedNamespace
(
clName
.
left
(
i
)))
&&
getClass
(
clName
.
left
(
i
))
==
0
)
{
namespaceName
=
clName
.
left
(
i
);
namespaceName
=
nd
->
name
().
copy
(
);
className
=
clName
.
right
(
clName
.
length
()
-
i
-
2
);
//printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(),
// className.data(),namespaceName.data());
...
...
src/util.h
View file @
69ead65c
...
...
@@ -107,6 +107,7 @@ extern QCString substitute(const char *s,const char *src,const char *dst);
extern
QCString
resolveDefines
(
const
char
*
n
);
extern
ClassDef
*
getClass
(
const
char
*
key
);
extern
ClassDef
*
getResolvedClass
(
const
char
*
key
);
extern
NamespaceDef
*
getResolvedNamespace
(
const
char
*
key
);
extern
FileDef
*
findFileDef
(
const
FileNameDict
*
fnDict
,
const
char
*
n
,
bool
&
ambig
);
extern
QCString
showFileDefMatches
(
const
FileNameDict
*
fnDict
,
const
char
*
n
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment