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
0d0eec1d
Commit
0d0eec1d
authored
Oct 01, 2000
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.2.2-20001001
parent
6778bfcd
Changes
59
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
59 changed files
with
1030 additions
and
212 deletions
+1030
-212
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
configgen.cpp
addon/configgen/configgen.cpp
+16
-14
autolink.doc
doc/autolink.doc
+5
-1
config.doc
doc/config.doc
+5
-5
docblocks.doc
doc/docblocks.doc
+15
-16
afterdoc.cfg
examples/afterdoc.cfg
+9
-8
author.cfg
examples/author.cfg
+1
-0
autolink.cfg
examples/autolink.cfg
+1
-0
class.cfg
examples/class.cfg
+1
-0
define.cfg
examples/define.cfg
+1
-0
diagrams.cfg
examples/diagrams.cfg
+1
-0
enum.cfg
examples/enum.cfg
+1
-0
example.cfg
examples/example.cfg
+1
-0
file.cfg
examples/file.cfg
+1
-0
func.cfg
examples/func.cfg
+1
-0
group.cfg
examples/group.cfg
+1
-0
include.cfg
examples/include.cfg
+1
-0
jdstyle.cfg
examples/jdstyle.cfg
+9
-8
memgrp.cfg
examples/memgrp.cfg
+10
-8
memgrp.cpp
examples/memgrp.cpp
+2
-1
overload.cfg
examples/overload.cfg
+1
-0
page.cfg
examples/page.cfg
+1
-0
par.cfg
examples/par.cfg
+1
-0
qtstyle.cfg
examples/qtstyle.cfg
+1
-0
relates.cfg
examples/relates.cfg
+1
-0
restypedef.cfg
examples/restypedef.cfg
+1
-0
structcmd.cfg
examples/structcmd.cfg
+1
-0
tag.cfg
examples/tag.cfg
+1
-0
templ.cfg
examples/templ.cfg
+1
-0
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+7
-4
classdef.h
src/classdef.h
+1
-0
config.h
src/config.h
+2
-2
config.l
src/config.l
+9
-8
definition.h
src/definition.h
+15
-10
doc.l
src/doc.l
+5
-0
doxygen.cpp
src/doxygen.cpp
+29
-2
doxygen.pro.in
src/doxygen.pro.in
+1
-1
entry.cpp
src/entry.cpp
+3
-0
entry.h
src/entry.h
+3
-4
filedef.h
src/filedef.h
+1
-0
groupdef.cpp
src/groupdef.cpp
+6
-16
groupdef.h
src/groupdef.h
+1
-0
htmlgen.cpp
src/htmlgen.cpp
+6
-0
htmlhelp.cpp
src/htmlhelp.cpp
+26
-5
htmlhelp.h
src/htmlhelp.h
+6
-0
language.cpp
src/language.cpp
+5
-0
memberdef.cpp
src/memberdef.cpp
+22
-18
memberdef.h
src/memberdef.h
+4
-0
memberlist.cpp
src/memberlist.cpp
+26
-12
memberlist.h
src/memberlist.h
+1
-1
namespacedef.h
src/namespacedef.h
+1
-0
page.h
src/page.h
+5
-2
rtfgen.cpp
src/rtfgen.cpp
+5
-5
scanner.l
src/scanner.l
+64
-52
translator_si.h
src/translator_si.h
+671
-0
util.cpp
src/util.cpp
+8
-3
No files found.
INSTALL
View file @
0d0eec1d
DOXYGEN Version 1.2.2
DOXYGEN Version 1.2.2
-20001001
Please read the installation section of the manual for instructions.
Please read the installation section of the manual for instructions.
--------
--------
Dimitri van Heesch (
24 Septem
ber 2000)
Dimitri van Heesch (
01 Octo
ber 2000)
README
View file @
0d0eec1d
DOXYGEN Version 1.2.2
DOXYGEN Version 1.2.2
-20001001
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 (
24 Septem
ber 2000)
Dimitri van Heesch (
01 Octo
ber 2000)
VERSION
View file @
0d0eec1d
1.2.2
1.2.2
-20001001
addon/configgen/configgen.cpp
View file @
0d0eec1d
...
@@ -775,26 +775,27 @@ void init()
...
@@ -775,26 +775,27 @@ 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
"
"Korean, Hungarian, Spanish, Romanian, Russian, Croatian, Polish,
and
\n
"
"Korean, Hungarian, Spanish, Romanian, Russian, Croatian, Polish,
\n
"
"Portuguese.
\n
"
"Portuguese
and Slovene
.
\n
"
);
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"English"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Croatian"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Czech"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Dutch"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Dutch"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"English"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"French"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"French"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Italian"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Czech"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Swedish"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"German"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Finnish"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Finnish"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"German"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Hungarian"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Hungarian"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Italian"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Japanese"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Japanese"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Korean"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Korean"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Spanish"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Romanian"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Romanian"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Russian"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Russian"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Croatian"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Polish"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Polish"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Portuguese"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Portuguese"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Slovene"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Spanish"
);
ConfigString
::
addFixedValue
(
"outputLanguage"
,
"Swedish"
);
ConfigBool
::
add
(
"extractAllFlag"
,
ConfigBool
::
add
(
"extractAllFlag"
,
"EXTRACT_ALL"
,
"EXTRACT_ALL"
,
"FALSE"
,
"FALSE"
,
...
@@ -956,12 +957,13 @@ void init()
...
@@ -956,12 +957,13 @@ void init()
);
);
ConfigBool
::
add
(
"autoBriefFlag"
,
ConfigBool
::
add
(
"autoBriefFlag"
,
"JAVADOC_AUTOBRIEF"
,
"JAVADOC_AUTOBRIEF"
,
"
TRU
E"
,
"
FALS
E"
,
"javadoc comments behaves as Qt comments."
,
"
should
javadoc comments behaves as Qt comments."
,
"If the JAVADOC_AUTOBRIEF tag is set to YES
(the default)
then Doxygen
\n
"
"If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
\n
"
"will interpret the first line (until the first dot) of a JavaDoc-style
\n
"
"will interpret the first line (until the first dot) of a JavaDoc-style
\n
"
"comment as the brief description. If set to NO, the Javadoc-style will
\n
"
"comment as the brief description. If set to NO, the JavaDoc
\n
"
"behave just like the Qt-style comments.
\n
"
"comments will behave just like the Qt-style comments (thus requiring an
\n
"
"explict @brief command for a brief description.
\n
"
);
);
ConfigBool
::
add
(
"inheritDocsFlag"
,
ConfigBool
::
add
(
"inheritDocsFlag"
,
"INHERIT_DOCS"
,
"INHERIT_DOCS"
,
...
...
doc/autolink.doc
View file @
0d0eec1d
...
@@ -69,6 +69,10 @@
...
@@ -69,6 +69,10 @@
\par Note 2:
\par Note 2:
For JavaDoc compatibility a \# may be used instead of a :: in
For JavaDoc compatibility a \# may be used instead of a :: in
the patterns above.
the patterns above.
\par Note 3:
In the documentation of a class containing a member foo,
a reference to a global variable is made using ::foo, whereas \#foo
will link to the member.
For non overloaded members the argument list may be omitted.
For non overloaded members the argument list may be omitted.
...
@@ -111,7 +115,7 @@ typedef struct StructName TypeName
...
@@ -111,7 +115,7 @@ typedef struct StructName TypeName
\par Example:
\par Example:
\verbinclude restypedef.cpp
\verbinclude restypedef.cpp
\htmlonly
\htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/restypedef/html/restypedef
.
cpp.html">here</a>
Click <a href="$(DOXYGEN_DOCDIR)/examples/restypedef/html/restypedef
_
cpp.html">here</a>
for the corresponding HTML documentation that is generated by Doxygen.
for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly
\endhtmlonly
*/
*/
doc/config.doc
View file @
0d0eec1d
...
@@ -47,10 +47,10 @@ file using a <code>\@INCLUDE</code> tag as follows:
...
@@ -47,10 +47,10 @@ file using a <code>\@INCLUDE</code> tag as follows:
\
endverbatim
\
endverbatim
The
include
file
is
searched
in
the
current
working
directory
.
You
can
The
include
file
is
searched
in
the
current
working
directory
.
You
can
also
specify
a
list
of
directories
that
should
be
searched
before
looking
also
specify
a
list
of
directories
that
should
be
searched
before
looking
in
the
current
working
directory
.
Do
this
by
putting
a
<
code
>\@
INCLUDEPATH
</
code
>
tag
in
the
current
working
directory
.
Do
this
by
putting
a
<
code
>\@
INCLUDE
_
PATH
</
code
>
tag
with
these
paths
before
the
<
code
>\@
INCLUDE
</
code
>
tag
,
e
.
g
:
with
these
paths
before
the
<
code
>\@
INCLUDE
</
code
>
tag
,
e
.
g
:
\
verbatim
\
verbatim
@
INCLUDEPATH
=
my_config_dir
@
INCLUDE
_
PATH
=
my_config_dir
\
endverbatim
\
endverbatim
The
configuration
options
can
be
divided
into
several
categories
.
The
configuration
options
can
be
divided
into
several
categories
.
...
@@ -370,10 +370,10 @@ followed by the descriptions of the tags grouped by category.
...
@@ -370,10 +370,10 @@ followed by the descriptions of the tags grouped by category.
\
anchor
cfg_javadoc_autobrief
\
anchor
cfg_javadoc_autobrief
<
dt
>\
c
JAVADOC_AUTOBRIEF
<
dd
>
<
dt
>\
c
JAVADOC_AUTOBRIEF
<
dd
>
\
addindex
JAVADOC_AUTOBRIEF
\
addindex
JAVADOC_AUTOBRIEF
If
the
\
c
JAVADOC_AUTOBRIEF
is
set
to
\
c
YES
(
the
default
)
then
Doxygen
If
the
\
c
JAVADOC_AUTOBRIEF
is
set
to
\
c
YES
then
Doxygen
will
interpret
the
first
line
(
until
the
first
dot
)
of
a
JavaDoc
-
style
will
interpret
the
first
line
(
until
the
first
dot
)
of
a
JavaDoc
-
style
comment
as
the
brief
description
.
If
set
to
NO
,
the
Javadoc
-
style
will
comment
as
the
brief
description
.
If
set
to
NO
(
the
default
),
the
behave
just
like
the
Qt
-
style
comments
.
Javadoc
-
style
will
behave
just
like
the
Qt
-
style
comments
.
\
anchor
cfg_inherit_docs
\
anchor
cfg_inherit_docs
<
dt
>\
c
INHERIT_DOCS
<
dd
>
<
dt
>\
c
INHERIT_DOCS
<
dd
>
...
...
doc/docblocks.doc
View file @
0d0eec1d
...
@@ -66,34 +66,33 @@ sentence of the detailed description
...
@@ -66,34 +66,33 @@ sentence of the detailed description
to \c NO). Both the brief and the detailed descriptions are optional
to \c NO). Both the brief and the detailed descriptions are optional
for the Qt style.
for the Qt style.
Here is the same piece of code, this time documented using the JavaDoc
By default a JavaDoc style documentation block behaves the same way as a
style:
Qt style documentation block. This is not according the JavaDoc specification
however, where the first sentence of the documentation block is automatically
treated as a brief description. To enable this behaviour you should set
\ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" to YES in the configuration
file. If you enble this option and want to put a dot in the middle of a
sentence without ending it, you should put a backslash and a space after it.
Here is an example:
\verbatim
/** Brief description (e.g.\ using only a few words). Details follow. */
\endverbatim
Here is the same piece of code as shown above, this time documented using the
JavaDoc style and \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" set to YES:
\verbinclude jdstyle.cpp
\verbinclude jdstyle.cpp
\htmlonly
\htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/jdstyle/html/class_test.html">here</a>
Click <a href="$(DOXYGEN_DOCDIR)/examples/jdstyle/html/class_test.html">here</a>
for the corresponding HTML documentation that is generated by doxygen.
for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly
\endhtmlonly
Note that by default the first sentence of the documentation (until the <tt>.</tt>)
is treated as a brief description, whereas the documentation block as a whole
forms the detailed description. If you want to put a dot in the middle of a
sentence you should put a backslash and space behind it. Example:
\verbatim
/** Brief description (e.g.\ using only a few words). Details follow. */
\endverbatim
The brief description is required for the JavaDoc style, unless you set
\ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" to NO. If you do this,
doxygen treats JavaDoc comments just like Qt comments (i.e. You have
to insert an explicit \ref cmdbrief "\\brief" command to add a brief description).
Unlike most other documentation systems, doxygen also allows you to put
Unlike most other documentation systems, doxygen also allows you to put
the documentation of members (including global functions) in front of
the documentation of members (including global functions) in front of
the \e definition. This way the documentation can be placed in the source
the \e definition. This way the documentation can be placed in the source
file instead of the header file. This keeps the header file compact, and allows the
file instead of the header file. This keeps the header file compact, and allows the
implementer of the members more direct access to the documentation.
implementer of the members more direct access to the documentation.
As a compromise the brief description could be placed before the
As a compromise the brief description could be placed before the
declaration and the detailed description before the member definition
declaration and the detailed description before the member definition.
(assuming you use the Qt style comments).
\par Note:
\par Note:
Each entity can only have \e one brief and \e one detailed description. If you
Each entity can only have \e one brief and \e one detailed description. If you
...
...
examples/afterdoc.cfg
View file @
0d0eec1d
PROJECT_NAME = "AfterDocs"
PROJECT_NAME = "AfterDocs"
OUTPUT_DIRECTORY = afterdoc
OUTPUT_DIRECTORY = afterdoc
GENERATE_LATEX = NO
GENERATE_LATEX = NO
GENERATE_MAN = NO
GENERATE_MAN = NO
GENERATE_RTF = NO
GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = afterdoc.h
INPUT = afterdoc.h
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/author.cfg
View file @
0d0eec1d
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = author.cpp
INPUT = author.cpp
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/autolink.cfg
View file @
0d0eec1d
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = autolink.cpp
INPUT = autolink.cpp
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/class.cfg
View file @
0d0eec1d
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = class.h
INPUT = class.h
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/define.cfg
View file @
0d0eec1d
...
@@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO
...
@@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO
INPUT = define.h
INPUT = define.h
ENABLE_PREPROCESSING = YES
ENABLE_PREPROCESSING = YES
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/diagrams.cfg
View file @
0d0eec1d
...
@@ -10,3 +10,4 @@ ENABLE_PREPROCESSING = YES
...
@@ -10,3 +10,4 @@ ENABLE_PREPROCESSING = YES
INPUT = .
INPUT = .
FILE_PATTERNS = diagrams_*.h
FILE_PATTERNS = diagrams_*.h
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/enum.cfg
View file @
0d0eec1d
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = enum.h
INPUT = enum.h
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/example.cfg
View file @
0d0eec1d
...
@@ -8,3 +8,4 @@ CASE_SENSE_NAMES = NO
...
@@ -8,3 +8,4 @@ CASE_SENSE_NAMES = NO
INPUT = example.cpp
INPUT = example.cpp
EXAMPLE_PATH = example_test.cpp
EXAMPLE_PATH = example_test.cpp
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/file.cfg
View file @
0d0eec1d
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = file.h
INPUT = file.h
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/func.cfg
View file @
0d0eec1d
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = func.h
INPUT = func.h
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/group.cfg
View file @
0d0eec1d
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = group.cpp
INPUT = group.cpp
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/include.cfg
View file @
0d0eec1d
...
@@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO
...
@@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO
INPUT = include.cpp
INPUT = include.cpp
EXAMPLE_PATH = example_test.cpp
EXAMPLE_PATH = example_test.cpp
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/jdstyle.cfg
View file @
0d0eec1d
PROJECT_NAME = "JavaDoc Style"
PROJECT_NAME = "JavaDoc Style"
OUTPUT_DIRECTORY = jdstyle
OUTPUT_DIRECTORY = jdstyle
GENERATE_LATEX = NO
GENERATE_LATEX = NO
GENERATE_MAN = NO
GENERATE_MAN = NO
GENERATE_RTF = NO
GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = jdstyle.cpp
INPUT = jdstyle.cpp
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/memgrp.cfg
View file @
0d0eec1d
PROJECT_NAME = "Member Grouping"
PROJECT_NAME = "Member Grouping"
OUTPUT_DIRECTORY = memgrp
OUTPUT_DIRECTORY = memgrp
GENERATE_LATEX = NO
GENERATE_LATEX = NO
GENERATE_MAN = NO
GENERATE_MAN = NO
GENERATE_RTF = NO
GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = memgrp.cpp
INPUT = memgrp.cpp
QUIET = YES
QUIET = YES
DISTRIBUTE_GROUP_DOC = YES
JAVADOC_AUTOBRIEF = YES
examples/memgrp.cpp
View file @
0d0eec1d
...
@@ -33,7 +33,8 @@ void Test::func1InGroup2() {}
...
@@ -33,7 +33,8 @@ void Test::func1InGroup2() {}
*/
*/
//@{
//@{
//! one description for all members of this group
//! one description for all members of this group
//! (because DISTRIBUTE_GROUP_DOC is YES in the config file)
#define A 1
#define A 1
#define B 2
#define B 2
void
glob_func
();
void
glob_func
();
...
...
examples/overload.cfg
View file @
0d0eec1d
...
@@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO
...
@@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO
SORT_MEMBER_DOCS = NO
SORT_MEMBER_DOCS = NO
INPUT = overload.cpp
INPUT = overload.cpp
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/page.cfg
View file @
0d0eec1d
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = page.doc
INPUT = page.doc
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/par.cfg
View file @
0d0eec1d
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = par.cpp
INPUT = par.cpp
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/qtstyle.cfg
View file @
0d0eec1d
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = qtstyle.cpp
INPUT = qtstyle.cpp
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/relates.cfg
View file @
0d0eec1d
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = relates.cpp
INPUT = relates.cpp
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/restypedef.cfg
View file @
0d0eec1d
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = restypedef.cpp
INPUT = restypedef.cpp
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/structcmd.cfg
View file @
0d0eec1d
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = structcmd.h
INPUT = structcmd.h
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/tag.cfg
View file @
0d0eec1d
...
@@ -8,3 +8,4 @@ INPUT = tag.cpp
...
@@ -8,3 +8,4 @@ INPUT = tag.cpp
TAGFILES = example.tag
TAGFILES = example.tag
PERL_PATH = perl
PERL_PATH = perl
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
examples/templ.cfg
View file @
0d0eec1d
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
...
@@ -6,3 +6,4 @@ GENERATE_RTF = NO
CASE_SENSE_NAMES = NO
CASE_SENSE_NAMES = NO
INPUT = templ.cpp
INPUT = templ.cpp
QUIET = YES
QUIET = YES
JAVADOC_AUTOBRIEF = YES
packages/rpm/doxygen.spec
View file @
0d0eec1d
Name: doxygen
Name: doxygen
Version: 1.2.2
Version: 1.2.2
-20001001
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
...
...
src/classdef.cpp
View file @
0d0eec1d
...
@@ -386,10 +386,13 @@ void ClassDef::insertMember(MemberDef *md)
...
@@ -386,10 +386,13 @@ void ClassDef::insertMember(MemberDef *md)
functionMembers
.
append
(
md
);
functionMembers
.
append
(
md
);
break
;
break
;
case
Private
:
case
Private
:
if
(
Config
::
sortMembersFlag
)
if
(
Config
::
extractPrivateFlag
)
functionMembers
.
inSort
(
md
);
{
else
if
(
Config
::
sortMembersFlag
)
functionMembers
.
append
(
md
);
functionMembers
.
inSort
(
md
);
else
functionMembers
.
append
(
md
);
}
break
;
break
;
}
}
break
;
break
;
...
...
src/classdef.h
View file @
0d0eec1d
...
@@ -58,6 +58,7 @@ class ClassDef : public Definition
...
@@ -58,6 +58,7 @@ class ClassDef : public Definition
const
char
*
name
,
CompoundType
ct
,
const
char
*
name
,
CompoundType
ct
,
const
char
*
ref
=
0
,
const
char
*
fName
=
0
);
const
char
*
ref
=
0
,
const
char
*
fName
=
0
);
~
ClassDef
();
~
ClassDef
();
DefType
definitionType
()
{
return
TypeClass
;
}
QCString
getOutputFileBase
()
const
{
return
fileName
;
}
QCString
getOutputFileBase
()
const
{
return
fileName
;
}
QCString
displayName
()
const
;
QCString
displayName
()
const
;
CompoundType
compoundType
()
const
{
return
compType
;
}
CompoundType
compoundType
()
const
{
return
compType
;
}
...
...
src/config.h
View file @
0d0eec1d
/* This file was generated by configgen on Sun
Sep 24 18:38:07
2000
/* This file was generated by configgen on Sun
Oct 1 13:51:26
2000
* from config_templ.h
* from config_templ.h
*
*
* DO NOT EDIT!
* DO NOT EDIT!
...
@@ -60,7 +60,7 @@ struct Config
...
@@ -60,7 +60,7 @@ struct Config
static
bool
hideScopeNames
;
// hide the name of the scope.
static
bool
hideScopeNames
;
// hide the name of the scope.
static
bool
verbatimHeaderFlag
;
// enable/disable generation of verb headers.
static
bool
verbatimHeaderFlag
;
// enable/disable generation of verb headers.
static
bool
showIncFileFlag
;
// show include file in file documentation?
static
bool
showIncFileFlag
;
// show include file in file documentation?
static
bool
autoBriefFlag
;
// javadoc comments behaves as Qt comments.
static
bool
autoBriefFlag
;
//
should
javadoc comments behaves as Qt comments.
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?
...
...
src/config.l
View file @
0d0eec1d
/* This file was generated by configgen on Sun
Sep 24 18:38:07
2000
/* This file was generated by configgen on Sun
Oct 1 13:51:26
2000
* from config_templ.l
* from config_templ.l
*
*
* DO NOT EDIT!
* DO NOT EDIT!
...
@@ -97,7 +97,7 @@ bool Config::caseSensitiveNames = TRUE;
...
@@ -97,7 +97,7 @@ bool Config::caseSensitiveNames = TRUE;
bool Config::hideScopeNames = FALSE;
bool Config::hideScopeNames = FALSE;
bool Config::verbatimHeaderFlag = TRUE;
bool Config::verbatimHeaderFlag = TRUE;
bool Config::showIncFileFlag = TRUE;
bool Config::showIncFileFlag = TRUE;
bool Config::autoBriefFlag =
TRU
E;
bool Config::autoBriefFlag =
FALS
E;
bool Config::inheritDocsFlag = TRUE;
bool Config::inheritDocsFlag = TRUE;
bool Config::inlineInfoFlag = TRUE;
bool Config::inlineInfoFlag = TRUE;
bool Config::sortMembersFlag = TRUE;
bool Config::sortMembersFlag = TRUE;
...
@@ -823,7 +823,7 @@ void Config::init()
...
@@ -823,7 +823,7 @@ void Config::init()
Config::hideScopeNames = FALSE;
Config::hideScopeNames = FALSE;
Config::verbatimHeaderFlag = TRUE;
Config::verbatimHeaderFlag = TRUE;
Config::showIncFileFlag = TRUE;
Config::showIncFileFlag = TRUE;
Config::autoBriefFlag =
TRU
E;
Config::autoBriefFlag =
FALS
E;
Config::inheritDocsFlag = TRUE;
Config::inheritDocsFlag = TRUE;
Config::inlineInfoFlag = TRUE;
Config::inlineInfoFlag = TRUE;
Config::sortMembersFlag = TRUE;
Config::sortMembersFlag = TRUE;
...
@@ -1015,8 +1015,8 @@ void writeTemplateConfig(QFile *f,bool sl)
...
@@ -1015,8 +1015,8 @@ 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 << "# Korean, Hungarian, Spanish, Romanian, Russian, Croatian, Polish,
and
\n";
t << "# Korean, Hungarian, Spanish, Romanian, Russian, Croatian, Polish, \n";
t << "# Portuguese.\n";
t << "# Portuguese
and Slovene
.\n";
t << "\n";
t << "\n";
}
}
t << "OUTPUT_LANGUAGE = ";
t << "OUTPUT_LANGUAGE = ";
...
@@ -1240,10 +1240,11 @@ void writeTemplateConfig(QFile *f,bool sl)
...
@@ -1240,10 +1240,11 @@ void writeTemplateConfig(QFile *f,bool sl)
if (!sl)
if (!sl)
{
{
t << "\n";
t << "\n";
t << "# If the JAVADOC_AUTOBRIEF tag is set to YES
(the default)
then Doxygen \n";
t << "# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen \n";
t << "# will interpret the first line (until the first dot) of a JavaDoc-style \n";
t << "# will interpret the first line (until the first dot) of a JavaDoc-style \n";
t << "# comment as the brief description. If set to NO, the Javadoc-style will \n";
t << "# comment as the brief description. If set to NO, the JavaDoc \n";
t << "# behave just like the Qt-style comments. \n";
t << "# comments will behave just like the Qt-style comments (thus requiring an \n";
t << "# explict @brief command for a brief description. \n";
t << "\n";
t << "\n";
}
}
t << "JAVADOC_AUTOBRIEF = ";
t << "JAVADOC_AUTOBRIEF = ";
...
...
src/definition.h
View file @
0d0eec1d
...
@@ -32,27 +32,32 @@ class MemberDef;
...
@@ -32,27 +32,32 @@ class MemberDef;
class
Definition
class
Definition
{
{
public
:
public
:
/*! create a new definition */
/*! Types of derived classes */
enum
DefType
{
TypeClass
,
TypeMember
,
TypeFile
,
TypeGroup
,
TypeNamespace
};
/*! Use this for dynamic inspection of the derived class */
virtual
DefType
definitionType
()
=
0
;
/*! Create a new definition */
Definition
(
Definition
(
const
char
*
defFileName
,
int
defLine
,
const
char
*
defFileName
,
int
defLine
,
const
char
*
name
,
const
char
*
b
=
0
,
const
char
*
d
=
0
);
const
char
*
name
,
const
char
*
b
=
0
,
const
char
*
d
=
0
);
/*!
d
estroys the definition */
/*!
D
estroys the definition */
virtual
~
Definition
();
virtual
~
Definition
();
/*!
r
eturns the name of the definition */
/*!
R
eturns the name of the definition */
const
QCString
&
name
()
const
{
return
n
;
}
const
QCString
&
name
()
const
{
return
n
;
}
/*!
r
eturns the base name of the output file that contains this
/*!
R
eturns the base name of the output file that contains this
* definition.
* definition.
*/
*/
virtual
QCString
getOutputFileBase
()
const
=
0
;
virtual
QCString
getOutputFileBase
()
const
=
0
;
/*! Returns the name of the source listing of this file. */
/*! Returns the name of the source listing of this file. */
const
QCString
sourceName
()
const
{
return
getOutputFileBase
()
+
"-source"
;
}
const
QCString
sourceName
()
const
{
return
getOutputFileBase
()
+
"-source"
;
}
/*!
r
eturns the detailed description of this definition */
/*!
R
eturns the detailed description of this definition */
const
QCString
&
documentation
()
const
{
return
doc
;
}
const
QCString
&
documentation
()
const
{
return
doc
;
}
/*!
r
eturns the brief description of this definition */
/*!
R
eturns the brief description of this definition */
const
QCString
&
briefDescription
()
const
{
return
brief
;
}
const
QCString
&
briefDescription
()
const
{
return
brief
;
}
/*!
s
ets a new \a name for the definition */
/*!
S
ets a new \a name for the definition */
void
setName
(
const
char
*
name
)
{
n
=
name
;
}
void
setName
(
const
char
*
name
)
{
n
=
name
;
}
/*!
s
ets the documentation of this definition to \a d. */
/*!
S
ets the documentation of this definition to \a d. */
void
setDocumentation
(
const
char
*
d
,
bool
stripWhiteSpace
=
TRUE
)
void
setDocumentation
(
const
char
*
d
,
bool
stripWhiteSpace
=
TRUE
)
{
{
if
(
stripWhiteSpace
)
if
(
stripWhiteSpace
)
...
@@ -60,11 +65,11 @@ class Definition
...
@@ -60,11 +65,11 @@ class Definition
else
else
doc
=
d
;
doc
=
d
;
}
}
/*!
s
ets the brief description of this definition to \a b.
/*!
S
ets the brief description of this definition to \a b.
* A dot is added to the sentence if not available.
* A dot is added to the sentence if not available.
*/
*/
void
setBriefDescription
(
const
char
*
b
);
void
setBriefDescription
(
const
char
*
b
);
/*!
r
eturns TRUE iff the definition is documented */
/*!
R
eturns TRUE iff the definition is documented */
virtual
bool
hasDocumentation
();
virtual
bool
hasDocumentation
();
virtual
bool
isLinkableInProject
()
=
0
;
virtual
bool
isLinkableInProject
()
=
0
;
virtual
bool
isLinkable
()
=
0
;
virtual
bool
isLinkable
()
=
0
;
...
...
src/doc.l
View file @
0d0eec1d
...
@@ -984,6 +984,11 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
...
@@ -984,6 +984,11 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
}
}
}
}
<DocScan>(({B}*"\n"){2,}{B}*)?{CMD}"par"{B}* {
<DocScan>(({B}*"\n"){2,}{B}*)?{CMD}"par"{B}* {
QCString t=yytext;
if (t.contains('\n')>1 && insideItemList)
{
forceEndItemList();
}
BEGIN(DocPar);
BEGIN(DocPar);
}
}
<DocPar>[^\n]*{BN} {
<DocPar>[^\n]*{BN} {
...
...
src/doxygen.cpp
View file @
0d0eec1d
...
@@ -1107,6 +1107,7 @@ static MemberDef *addVariableToClass(
...
@@ -1107,6 +1107,7 @@ static MemberDef *addVariableToClass(
md
->
setDocumentation
(
root
->
doc
);
md
->
setDocumentation
(
root
->
doc
);
md
->
setBriefDescription
(
root
->
brief
);
md
->
setBriefDescription
(
root
->
brief
);
md
->
setDefinition
(
def
);
md
->
setDefinition
(
def
);
md
->
setBitfields
(
root
->
bitfields
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
md
->
setFromAnnonymousScope
(
fromAnnScope
);
md
->
setFromAnnonymousScope
(
fromAnnScope
);
md
->
setFromAnnonymousMember
(
fromAnnMemb
);
md
->
setFromAnnonymousMember
(
fromAnnMemb
);
...
@@ -2038,6 +2039,22 @@ static void transferRelatedFunctionDocumentation()
...
@@ -2038,6 +2039,22 @@ static void transferRelatedFunctionDocumentation()
}
}
//----------------------------------------------------------------------
//----------------------------------------------------------------------
static
void
replaceNamespaceAliases
(
QCString
&
scope
,
int
i
)
{
//printf("replaceNamespaceAliases(%s,%d)\n",scope.data(),i);
while
(
i
>
0
)
{
QCString
*
s
=
namespaceAliasDict
[
scope
.
left
(
i
)];
if
(
s
)
{
scope
=*
s
+
scope
.
right
(
scope
.
length
()
-
i
);
i
=
s
->
length
();
}
i
=
scope
.
findRev
(
"::"
,
i
-
1
);
}
//printf("replaceNamespaceAliases() result=%s\n",scope.data());
}
static
bool
findBaseClassRelation
(
Entry
*
root
,
ClassDef
*
cd
,
static
bool
findBaseClassRelation
(
Entry
*
root
,
ClassDef
*
cd
,
BaseInfo
*
bi
,
BaseInfo
*
bi
,
...
@@ -2109,6 +2126,14 @@ static bool findBaseClassRelation(Entry *root,ClassDef *cd,
...
@@ -2109,6 +2126,14 @@ static bool findBaseClassRelation(Entry *root,ClassDef *cd,
bool
found
=
baseClass
!=
0
&&
baseClass
!=
cd
;
bool
found
=
baseClass
!=
0
&&
baseClass
!=
cd
;
NamespaceDef
*
nd
=
cd
->
getNamespaceDef
();
NamespaceDef
*
nd
=
cd
->
getNamespaceDef
();
if
(
!
found
&&
(
i
=
baseClassName
.
findRev
(
"::"
))
!=-
1
)
{
// replace any namespace aliases
replaceNamespaceAliases
(
baseClassName
,
i
);
baseClass
=
getResolvedClass
(
baseClassName
);
found
=
baseClass
!=
0
&&
baseClass
!=
cd
;
}
if
(
!
found
)
if
(
!
found
)
{
{
FileDef
*
fd
=
cd
->
getFileDef
();
FileDef
*
fd
=
cd
->
getFileDef
();
...
@@ -2148,7 +2173,6 @@ static bool findBaseClassRelation(Entry *root,ClassDef *cd,
...
@@ -2148,7 +2173,6 @@ static bool findBaseClassRelation(Entry *root,ClassDef *cd,
}
}
if
(
!
found
&&
nd
)
// class is inside a namespace
if
(
!
found
&&
nd
)
// class is inside a namespace
{
{
//printf(" class %s inside namespace %s\n",cd->name().data(),nd->name().data());
NamespaceList
*
nl
=
nd
->
getUsedNamespaces
();
NamespaceList
*
nl
=
nd
->
getUsedNamespaces
();
QCString
fName
=
nd
->
name
()
+
"::"
+
baseClassName
;
QCString
fName
=
nd
->
name
()
+
"::"
+
baseClassName
;
found
=
(
baseClass
=
getResolvedClass
(
fName
))
!=
0
&&
root
->
name
!=
fName
;
found
=
(
baseClass
=
getResolvedClass
(
fName
))
!=
0
&&
root
->
name
!=
fName
;
...
@@ -2264,18 +2288,21 @@ static void computeClassRelations(Entry *root)
...
@@ -2264,18 +2288,21 @@ static void computeClassRelations(Entry *root)
if
(
if
(
(
(
(
(
// is it a compound (class, struct, union, interface ...)
root
->
section
&
Entry
::
COMPOUND_MASK
root
->
section
&
Entry
::
COMPOUND_MASK
)
)
||
||
(
(
// is it a documentation block with inheritance info.
(
root
->
section
&
Entry
::
COMPOUNDDOC_MASK
)
&&
root
->
extends
->
count
()
>
0
(
root
->
section
&
Entry
::
COMPOUNDDOC_MASK
)
&&
root
->
extends
->
count
()
>
0
)
)
)
)
&&
&&
!
root
->
name
.
isEmpty
()
!
root
->
name
.
isEmpty
()
// sanity check
)
)
{
{
ClassDef
*
cd
;
ClassDef
*
cd
;
// strip any annonymous scopes first
QCString
bName
=
stripAnnonymousNamespaceScope
(
root
->
name
);
QCString
bName
=
stripAnnonymousNamespaceScope
(
root
->
name
);
Debug
::
print
(
Debug
::
Classes
,
0
,
" Class %s :
\n
"
,
bName
.
data
());
Debug
::
print
(
Debug
::
Classes
,
0
,
" Class %s :
\n
"
,
bName
.
data
());
if
((
cd
=
getClass
(
bName
)))
if
((
cd
=
getClass
(
bName
)))
...
...
src/doxygen.pro.in
View file @
0d0eec1d
...
@@ -27,7 +27,7 @@ HEADERS = doxygen.h scanner.h doc.h classdef.h classlist.h memberdef.h \
...
@@ -27,7 +27,7 @@ HEADERS = doxygen.h scanner.h doc.h classdef.h classlist.h memberdef.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 translator_kr.h \
reflist.h page.h sortdict.h translator_hu.h translator_kr.h \
translator_ro.h
translator_ro.h
translator_si.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 \
...
...
src/entry.cpp
View file @
0d0eec1d
...
@@ -56,6 +56,7 @@ Entry::Entry(const Entry &e)
...
@@ -56,6 +56,7 @@ Entry::Entry(const Entry &e)
type
=
e
.
type
.
copy
();
type
=
e
.
type
.
copy
();
name
=
e
.
name
.
copy
();
name
=
e
.
name
.
copy
();
args
=
e
.
args
.
copy
();
args
=
e
.
args
.
copy
();
bitfields
=
e
.
bitfields
.
copy
();
exception
=
e
.
exception
.
copy
();
exception
=
e
.
exception
.
copy
();
program
=
e
.
program
.
copy
();
program
=
e
.
program
.
copy
();
includeFile
=
e
.
includeFile
.
copy
();
includeFile
=
e
.
includeFile
.
copy
();
...
@@ -197,6 +198,7 @@ void Entry::reset()
...
@@ -197,6 +198,7 @@ void Entry::reset()
name
.
resize
(
0
);
name
.
resize
(
0
);
type
.
resize
(
0
);
type
.
resize
(
0
);
args
.
resize
(
0
);
args
.
resize
(
0
);
bitfields
.
resize
(
0
);
exception
.
resize
(
0
);
exception
.
resize
(
0
);
program
.
resize
(
0
);
program
.
resize
(
0
);
//body.resize(0);
//body.resize(0);
...
@@ -242,6 +244,7 @@ int Entry::getSize()
...
@@ -242,6 +244,7 @@ int Entry::getSize()
size
+=
type
.
length
()
+
1
;
size
+=
type
.
length
()
+
1
;
size
+=
name
.
length
()
+
1
;
size
+=
name
.
length
()
+
1
;
size
+=
args
.
length
()
+
1
;
size
+=
args
.
length
()
+
1
;
size
+=
bitfields
.
length
()
+
1
;
size
+=
exception
.
length
()
+
1
;
size
+=
exception
.
length
()
+
1
;
size
+=
program
.
length
()
+
1
;
size
+=
program
.
length
()
+
1
;
//size+=body.length()+1;
//size+=body.length()+1;
...
...
src/entry.h
View file @
0d0eec1d
...
@@ -162,8 +162,6 @@ class Entry
...
@@ -162,8 +162,6 @@ 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 slot; // a Qt slot ?
MethodTypes
mtype
;
// signal, slot or dcop method?
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?
...
@@ -176,6 +174,7 @@ class Entry
...
@@ -176,6 +174,7 @@ class Entry
QCString
type
;
// member type
QCString
type
;
// member type
QCString
name
;
// member name
QCString
name
;
// member name
QCString
args
;
// member argument string
QCString
args
;
// member argument string
QCString
bitfields
;
// member's bit fields
ArgumentList
*
argList
;
// member arguments as a list
ArgumentList
*
argList
;
// member arguments as a list
ArgumentList
*
tArgList
;
// template argument list
ArgumentList
*
tArgList
;
// template argument list
ArgumentList
*
mtArgList
;
// member template argument list
ArgumentList
*
mtArgList
;
// member template argument list
...
@@ -183,8 +182,6 @@ class Entry
...
@@ -183,8 +182,6 @@ class Entry
QCString
memberSpec
;
// template specialization of the member
QCString
memberSpec
;
// template specialization of the member
QCString
program
;
// the program text
QCString
program
;
// the program text
QCString
initializer
;
// initial value (for variables)
QCString
initializer
;
// initial value (for variables)
int
bodyLine
;
// line number of the definition in the source
int
endBodyLine
;
// line number where the definition ends
QCString
includeFile
;
// include file (2 arg of \class, must be unique)
QCString
includeFile
;
// include file (2 arg of \class, must be unique)
QCString
includeName
;
// include name (3 arg of \class)
QCString
includeName
;
// include name (3 arg of \class)
QCString
doc
;
// documentation block (partly parsed)
QCString
doc
;
// documentation block (partly parsed)
...
@@ -192,6 +189,8 @@ class Entry
...
@@ -192,6 +189,8 @@ class Entry
QCString
brief
;
// brief description (doc block)
QCString
brief
;
// brief description (doc block)
QCString
inside
;
// name of the class in which documents are found
QCString
inside
;
// name of the class in which documents are found
QCString
exception
;
// throw specification
QCString
exception
;
// throw specification
int
bodyLine
;
// line number of the definition in the source
int
endBodyLine
;
// line number where the definition ends
int
mGrpId
;
// member group id
int
mGrpId
;
// member group id
QList
<
Entry
>
*
sublist
;
// entries that are children of this one
QList
<
Entry
>
*
sublist
;
// entries that are children of this one
QList
<
BaseInfo
>
*
extends
;
// list of base classes
QList
<
BaseInfo
>
*
extends
;
// list of base classes
...
...
src/filedef.h
View file @
0d0eec1d
...
@@ -66,6 +66,7 @@ class FileDef : public Definition
...
@@ -66,6 +66,7 @@ class FileDef : public Definition
FileDef
(
const
char
*
p
,
const
char
*
n
,
const
char
*
ref
=
0
);
FileDef
(
const
char
*
p
,
const
char
*
n
,
const
char
*
ref
=
0
);
~
FileDef
();
~
FileDef
();
DefType
definitionType
()
{
return
TypeFile
;
}
/*! Returns the unique file name (this may include part of the path). */
/*! Returns the unique file name (this may include part of the path). */
QCString
name
()
const
QCString
name
()
const
...
...
src/groupdef.cpp
View file @
0d0eec1d
...
@@ -366,7 +366,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
...
@@ -366,7 +366,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
}
}
}
}
defineMembers
.
countDocMembers
();
defineMembers
.
countDocMembers
(
TRUE
);
if
(
defineMembers
.
totalCount
()
>
0
)
if
(
defineMembers
.
totalCount
()
>
0
)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
...
@@ -376,7 +376,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
...
@@ -376,7 +376,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
defineMembers
.
writeDocumentation
(
ol
,
name
(),
this
);
defineMembers
.
writeDocumentation
(
ol
,
name
(),
this
);
}
}
protoMembers
.
countDocMembers
();
protoMembers
.
countDocMembers
(
TRUE
);
if
(
protoMembers
.
totalCount
()
>
0
)
if
(
protoMembers
.
totalCount
()
>
0
)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
...
@@ -386,7 +386,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
...
@@ -386,7 +386,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
protoMembers
.
writeDocumentation
(
ol
,
name
(),
this
);
protoMembers
.
writeDocumentation
(
ol
,
name
(),
this
);
}
}
typedefMembers
.
countDocMembers
();
typedefMembers
.
countDocMembers
(
TRUE
);
if
(
typedefMembers
.
totalCount
()
>
0
)
if
(
typedefMembers
.
totalCount
()
>
0
)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
...
@@ -396,7 +396,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
...
@@ -396,7 +396,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
typedefMembers
.
writeDocumentation
(
ol
,
name
(),
this
);
typedefMembers
.
writeDocumentation
(
ol
,
name
(),
this
);
}
}
enumMembers
.
countDocMembers
();
enumMembers
.
countDocMembers
(
TRUE
);
if
(
enumMembers
.
totalCount
()
>
0
)
if
(
enumMembers
.
totalCount
()
>
0
)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
...
@@ -406,17 +406,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
...
@@ -406,17 +406,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
enumMembers
.
writeDocumentation
(
ol
,
name
(),
this
);
enumMembers
.
writeDocumentation
(
ol
,
name
(),
this
);
}
}
//enumValMembers.countDocMembers();
funcMembers
.
countDocMembers
(
TRUE
);
//if (enumValMembers.totalCount()>0 )
//{
// ol.writeRuler();
// ol.startGroupHeader();
// parseText(ol,theTranslator->trEnumerationValueDocumentation());
// ol.endGroupHeader();
// enumValMembers.writeDocumentation(ol,name());
//}
funcMembers
.
countDocMembers
();
if
(
funcMembers
.
totalCount
()
>
0
)
if
(
funcMembers
.
totalCount
()
>
0
)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
...
@@ -426,7 +416,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
...
@@ -426,7 +416,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
funcMembers
.
writeDocumentation
(
ol
,
name
(),
this
);
funcMembers
.
writeDocumentation
(
ol
,
name
(),
this
);
}
}
varMembers
.
countDocMembers
();
varMembers
.
countDocMembers
(
TRUE
);
if
(
varMembers
.
totalCount
()
>
0
)
if
(
varMembers
.
totalCount
()
>
0
)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
...
...
src/groupdef.h
View file @
0d0eec1d
...
@@ -41,6 +41,7 @@ class GroupDef : public Definition
...
@@ -41,6 +41,7 @@ class GroupDef : public Definition
public
:
public
:
GroupDef
(
const
char
*
fileName
,
int
line
,
const
char
*
name
,
const
char
*
title
);
GroupDef
(
const
char
*
fileName
,
int
line
,
const
char
*
name
,
const
char
*
title
);
~
GroupDef
();
~
GroupDef
();
DefType
definitionType
()
{
return
TypeGroup
;
}
QCString
getOutputFileBase
()
const
{
return
fileName
;
}
QCString
getOutputFileBase
()
const
{
return
fileName
;
}
const
char
*
groupTitle
()
const
{
return
title
;
}
const
char
*
groupTitle
()
const
{
return
title
;
}
void
addFile
(
const
FileDef
*
def
);
void
addFile
(
const
FileDef
*
def
);
...
...
src/htmlgen.cpp
View file @
0d0eec1d
...
@@ -29,6 +29,7 @@
...
@@ -29,6 +29,7 @@
#include "version.h"
#include "version.h"
#include "dot.h"
#include "dot.h"
#include "language.h"
#include "language.h"
#include "htmlhelp.h"
#define GROUP_COLOR "#ff8080"
#define GROUP_COLOR "#ff8080"
...
@@ -157,6 +158,11 @@ void HtmlGenerator::startFile(const char *name,const char *title,bool external)
...
@@ -157,6 +158,11 @@ void HtmlGenerator::startFile(const char *name,const char *title,bool external)
lastTitle
=
title
;
lastTitle
=
title
;
if
(
fileName
.
right
(
5
)
!=
".html"
)
fileName
+=
".html"
;
if
(
fileName
.
right
(
5
)
!=
".html"
)
fileName
+=
".html"
;
startPlainFile
(
fileName
);
startPlainFile
(
fileName
);
if
(
Config
::
htmlHelpFlag
)
{
HtmlHelp
::
getInstance
()
->
addIndexFile
(
fileName
);
}
lastFile
=
fileName
;
lastFile
=
fileName
;
if
(
header
.
isEmpty
())
if
(
header
.
isEmpty
())
{
{
...
...
src/htmlhelp.cpp
View file @
0d0eec1d
...
@@ -287,9 +287,12 @@ void HtmlHelp::initialize()
...
@@ -287,9 +287,12 @@ void HtmlHelp::initialize()
"<param name=
\"
ImageType
\"
value=
\"
Folder
\"
>
\n
"
"<param name=
\"
ImageType
\"
value=
\"
Folder
\"
>
\n
"
"</OBJECT>
\n
"
"</OBJECT>
\n
"
"<UL>
\n
"
;
"<UL>
\n
"
;
}
void
HtmlHelp
::
createProjectFile
()
{
/* Write the project file */
/* Write the project file */
fName
=
Config
::
htmlOutputDir
+
"/index.hhp"
;
QCString
fName
=
Config
::
htmlOutputDir
+
"/index.hhp"
;
QFile
f
(
fName
);
QFile
f
(
fName
);
if
(
f
.
open
(
IO_WriteOnly
))
if
(
f
.
open
(
IO_WriteOnly
))
{
{
...
@@ -298,12 +301,23 @@ void HtmlHelp::initialize()
...
@@ -298,12 +301,23 @@ void HtmlHelp::initialize()
"Compatibility=1.1
\n
"
"Compatibility=1.1
\n
"
"Full-text search=Yes
\n
"
"Full-text search=Yes
\n
"
"Contents file=index.hhc
\n
"
"Contents file=index.hhc
\n
"
"Default Window=
indexHelp
\n
"
"Default Window=
main
\n
"
"Default topic=index.html
\n
"
"Default topic=index.html
\n
"
"Index file=index.hhk
\n
"
"Index file=index.hhk
\n
"
"Title="
<<
Config
::
projectName
<<
endl
<<
endl
"Title="
<<
Config
::
projectName
<<
endl
<<
endl
;
<<
"[FILES]
\n
"
"index.html"
;
t
<<
"[WINDOWS]"
<<
endl
;
t
<<
"main=
\"
"
<<
Config
::
projectName
<<
"
\"
,
\"
index.hhc
\"
,"
"
\"
index.hhk
\"
,
\"
index.html
\"
,
\"
index.html
\"
,,,,,0x23520,,"
"0x3006,,,,,,,,0"
<<
endl
<<
endl
;
t
<<
"[FILES]"
<<
endl
;
char
*
s
=
indexFiles
.
first
();
while
(
s
)
{
t
<<
s
<<
endl
;
s
=
indexFiles
.
next
();
}
f
.
close
();
f
.
close
();
}
}
else
else
...
@@ -312,6 +326,11 @@ void HtmlHelp::initialize()
...
@@ -312,6 +326,11 @@ void HtmlHelp::initialize()
}
}
}
}
void
HtmlHelp
::
addIndexFile
(
const
char
*
s
)
{
indexFiles
.
append
(
s
);
}
/*! Finalizes the HTML help. This will finish and close the
/*! Finalizes the HTML help. This will finish and close the
* contents file (index.hhc) and the index file (index.hhk).
* contents file (index.hhc) and the index file (index.hhk).
* \sa initialize()
* \sa initialize()
...
@@ -331,6 +350,8 @@ void HtmlHelp::finalize()
...
@@ -331,6 +350,8 @@ void HtmlHelp::finalize()
kts
.
unsetDevice
();
kts
.
unsetDevice
();
kf
->
close
();
kf
->
close
();
delete
kf
;
delete
kf
;
createProjectFile
();
}
}
/*! Increase the level of the contents hierarchy.
/*! Increase the level of the contents hierarchy.
...
...
src/htmlhelp.h
View file @
0d0eec1d
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
#include "qtbc.h"
#include "qtbc.h"
#include <qtextstream.h>
#include <qtextstream.h>
#include <qstrlist.h>
class
QFile
;
class
QFile
;
class
HtmlHelpIndex
;
class
HtmlHelpIndex
;
...
@@ -45,12 +46,17 @@ class HtmlHelp
...
@@ -45,12 +46,17 @@ class HtmlHelp
const
char
*
anchor
=
0
);
const
char
*
anchor
=
0
);
void
addIndexItem
(
const
char
*
level1
,
const
char
*
level2
,
void
addIndexItem
(
const
char
*
level1
,
const
char
*
level2
,
const
char
*
ref
,
const
char
*
anchor
);
const
char
*
ref
,
const
char
*
anchor
);
void
addIndexFile
(
const
char
*
name
);
private
:
private
:
void
createProjectFile
();
HtmlHelp
();
HtmlHelp
();
QFile
*
cf
,
*
kf
;
QFile
*
cf
,
*
kf
;
QTextStream
cts
,
kts
;
QTextStream
cts
,
kts
;
HtmlHelpIndex
*
index
;
HtmlHelpIndex
*
index
;
int
dc
;
int
dc
;
QStrList
indexFiles
;
static
HtmlHelp
*
theInstance
;
static
HtmlHelp
*
theInstance
;
};
};
...
...
src/language.cpp
View file @
0d0eec1d
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
#include "translator_hu.h"
#include "translator_hu.h"
#include "translator_kr.h"
#include "translator_kr.h"
#include "translator_ro.h"
#include "translator_ro.h"
#include "translator_si.h"
#endif
#endif
#define L_EQUAL(a) !stricmp(langName,a)
#define L_EQUAL(a) !stricmp(langName,a)
...
@@ -115,6 +116,10 @@ bool setTranslator(const char *langName)
...
@@ -115,6 +116,10 @@ bool setTranslator(const char *langName)
{
{
theTranslator
=
new
TranslatorRomanian
;
theTranslator
=
new
TranslatorRomanian
;
}
}
else
if
(
L_EQUAL
(
"slovene"
))
{
theTranslator
=
new
TranslatorSlovene
;
}
#endif
#endif
else
// use the default language (i.e. english)
else
// use the default language (i.e. english)
{
{
...
...
src/memberdef.cpp
View file @
0d0eec1d
...
@@ -450,8 +450,15 @@ void MemberDef::writeLink(OutputList &ol,ClassDef *cd,NamespaceDef *nd,
...
@@ -450,8 +450,15 @@ void MemberDef::writeLink(OutputList &ol,ClassDef *cd,NamespaceDef *nd,
{
{
Definition
*
d
=
0
;
Definition
*
d
=
0
;
if
(
cd
)
d
=
cd
;
else
if
(
nd
)
d
=
nd
;
else
if
(
fd
)
d
=
fd
;
else
if
(
gd
)
d
=
gd
;
if
(
cd
)
d
=
cd
;
else
if
(
nd
)
d
=
nd
;
else
if
(
fd
)
d
=
fd
;
else
if
(
gd
)
d
=
gd
;
if
(
d
==
0
)
return
;
if
(
d
==
0
)
{
err
(
"Member %s without group! Please report this bug!
\n
"
,
name
().
data
());
return
;
}
ol
.
writeObjectLink
(
d
->
getReference
(),
d
->
getOutputFileBase
(),
anchor
(),
name
());
if
(
group
!=
0
&&
gd
==
0
)
// forward link to the group
{
ol
.
writeObjectLink
(
group
->
getReference
(),
group
->
getOutputFileBase
(),
anchor
(),
name
());
}
else
// local link
{
ol
.
writeObjectLink
(
d
->
getReference
(),
d
->
getOutputFileBase
(),
anchor
(),
name
());
}
}
}
...
@@ -689,19 +696,6 @@ void MemberDef::writeDeclaration(OutputList &ol,
...
@@ -689,19 +696,6 @@ void MemberDef::writeDeclaration(OutputList &ol,
// write name
// write name
if
(
!
name
().
isEmpty
()
&&
name
().
at
(
0
)
!=
'@'
)
if
(
!
name
().
isEmpty
()
&&
name
().
at
(
0
)
!=
'@'
)
{
{
//if (grpId!=-1)
//{
// if (annMemb)
// {
// //printf("anchor=%s ann_anchor=%s\n",anchor(),annMemb->anchor());
// annMemb->writeLink(ol,cd,nd,fd,gd,inGroup ? memberGroup : 0);
// annMemb->annUsed=annUsed=TRUE;
// }
// else
// writeLink(ol,0,0,0,0,memberGroup);
// //ol.writeBoldString(name());
//}
//else
if
(
isLinkable
())
if
(
isLinkable
())
{
{
if
(
annMemb
)
if
(
annMemb
)
...
@@ -748,7 +742,11 @@ void MemberDef::writeDeclaration(OutputList &ol,
...
@@ -748,7 +742,11 @@ void MemberDef::writeDeclaration(OutputList &ol,
ol
.
docify
(
excpString
());
ol
.
docify
(
excpString
());
}
}
if
(
!
init
.
isEmpty
()
&&
initLines
==
0
&&
maxInitLines
>
0
)
// add initializer
if
(
!
bitfields
.
isEmpty
())
// add bitfields
{
linkifyText
(
TextGeneratorOLImpl
(
ol
),
cname
,
name
(),
bitfields
.
simplifyWhiteSpace
());
}
else
if
(
!
init
.
isEmpty
()
&&
initLines
==
0
&&
maxInitLines
>
0
)
// add initializer
{
{
if
(
!
isDefine
())
if
(
!
isDefine
())
{
{
...
@@ -797,9 +795,15 @@ void MemberDef::writeDeclaration(OutputList &ol,
...
@@ -797,9 +795,15 @@ void MemberDef::writeDeclaration(OutputList &ol,
* all active output formats.
* all active output formats.
*/
*/
void
MemberDef
::
writeDocumentation
(
MemberList
*
ml
,
OutputList
&
ol
,
void
MemberDef
::
writeDocumentation
(
MemberList
*
ml
,
OutputList
&
ol
,
const
char
*
scopeName
,
Definition
*
container
)
const
char
*
scopeName
,
Definition
*
container
)
{
{
// hide global static functions unless extractStaticFlag is enabled
if
(
getClassDef
()
==
0
&&
isStatic
()
&&
!
Config
::
extractStaticFlag
)
return
;
if
(
getClassDef
()
==
0
&&
isStatic
()
&&
!
Config
::
extractStaticFlag
)
return
;
// hide member that are documented in their own group
if
(
group
!=
0
&&
container
->
definitionType
()
!=
TypeGroup
)
return
;
bool
hasDocs
=
detailsAreVisible
();
bool
hasDocs
=
detailsAreVisible
();
//printf("MemberDef::writeDocumentation(): type=`%s' def=`%s'\n",type.data(),definition());
//printf("MemberDef::writeDocumentation(): type=`%s' def=`%s'\n",type.data(),definition());
if
(
if
(
...
@@ -996,7 +1000,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -996,7 +1000,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
if
(
protection
()
==
Protected
)
sl
.
append
(
"protected"
);
if
(
protection
()
==
Protected
)
sl
.
append
(
"protected"
);
else
if
(
protection
()
==
Private
)
sl
.
append
(
"private"
);
else
if
(
protection
()
==
Private
)
sl
.
append
(
"private"
);
if
(
lvirt
==
Virtual
)
sl
.
append
(
"virtual"
);
if
(
lvirt
==
Virtual
)
sl
.
append
(
"virtual"
);
else
if
(
lvirt
==
Pure
)
sl
.
append
(
"pure virtual"
);
else
if
(
lvirt
==
Pure
)
sl
.
append
(
"pure virtual"
);
if
(
isSignal
())
sl
.
append
(
"signal"
);
if
(
isSignal
())
sl
.
append
(
"signal"
);
if
(
isSlot
())
sl
.
append
(
"slot"
);
if
(
isSlot
())
sl
.
append
(
"slot"
);
}
}
...
...
src/memberdef.h
View file @
0d0eec1d
...
@@ -73,6 +73,7 @@ class MemberDef : public Definition
...
@@ -73,6 +73,7 @@ class MemberDef : public Definition
bool
related
,
MemberType
t
,
const
ArgumentList
*
tal
,
bool
related
,
MemberType
t
,
const
ArgumentList
*
tal
,
const
ArgumentList
*
al
);
const
ArgumentList
*
al
);
~
MemberDef
();
~
MemberDef
();
DefType
definitionType
()
{
return
TypeMember
;
}
QCString
getOutputFileBase
()
const
;
QCString
getOutputFileBase
()
const
;
const
char
*
declaration
()
const
{
return
decl
;
}
const
char
*
declaration
()
const
{
return
decl
;
}
...
@@ -80,6 +81,7 @@ class MemberDef : public Definition
...
@@ -80,6 +81,7 @@ class MemberDef : public Definition
const
char
*
typeString
()
const
{
return
type
;
}
const
char
*
typeString
()
const
{
return
type
;
}
const
char
*
argsString
()
const
{
return
args
;
}
const
char
*
argsString
()
const
{
return
args
;
}
const
char
*
excpString
()
const
{
return
exception
;
}
const
char
*
excpString
()
const
{
return
exception
;
}
const
char
*
bitfieldString
()
const
{
return
bitfields
;
}
QCString
anchor
()
const
;
QCString
anchor
()
const
;
const
QCString
&
initializer
()
const
{
return
init
;
}
const
QCString
&
initializer
()
const
{
return
init
;
}
int
initializerLines
()
const
{
return
initLines
;
}
int
initializerLines
()
const
{
return
initLines
;
}
...
@@ -133,6 +135,7 @@ class MemberDef : public Definition
...
@@ -133,6 +135,7 @@ class MemberDef : public Definition
init
=
init
.
stripWhiteSpace
();
init
=
init
.
stripWhiteSpace
();
initLines
=
init
.
contains
(
'\n'
);
initLines
=
init
.
contains
(
'\n'
);
}
}
void
setBitfields
(
const
char
*
s
)
{
bitfields
=
s
;
}
void
setMaxInitLines
(
int
lines
)
{
if
(
lines
!=-
1
)
maxInitLines
=
lines
;
}
void
setMaxInitLines
(
int
lines
)
{
if
(
lines
!=-
1
)
maxInitLines
=
lines
;
}
void
setMemberClass
(
ClassDef
*
cd
)
{
classDef
=
cd
;
}
void
setMemberClass
(
ClassDef
*
cd
)
{
classDef
=
cd
;
}
void
setSectionList
(
MemberList
*
sl
)
{
section
=
sl
;
}
void
setSectionList
(
MemberList
*
sl
)
{
section
=
sl
;
}
...
@@ -231,6 +234,7 @@ class MemberDef : public Definition
...
@@ -231,6 +234,7 @@ class MemberDef : public Definition
NamespaceDef
*
nspace
;
// the namespace this member is in.
NamespaceDef
*
nspace
;
// the namespace this member is in.
QCString
type
;
// return type
QCString
type
;
// return type
QCString
args
;
// function arguments/variable array specifiers
QCString
args
;
// function arguments/variable array specifiers
QCString
bitfields
;
// struct member bitfields
QCString
exception
;
// exceptions that can be thrown
QCString
exception
;
// exceptions that can be thrown
QCString
init
;
// initializer
QCString
init
;
// initializer
int
initLines
;
// number of lines in the initializer
int
initLines
;
// number of lines in the initializer
...
...
src/memberlist.cpp
View file @
0d0eec1d
...
@@ -110,7 +110,7 @@ void MemberList::countDecMembers(bool inGroup,bool countSubGroups,bool sectionPe
...
@@ -110,7 +110,7 @@ void MemberList::countDecMembers(bool inGroup,bool countSubGroups,bool sectionPe
//printf("MemberList::countDecMembers(%d)=%d\n",inGroup,m_count);
//printf("MemberList::countDecMembers(%d)=%d\n",inGroup,m_count);
}
}
void
MemberList
::
countDocMembers
()
void
MemberList
::
countDocMembers
(
bool
listOfGroup
)
{
{
/*varCnt=funcCnt=enumCnt=enumValCnt=typeCnt=protoCnt=defCnt=friendCnt=0;*/
/*varCnt=funcCnt=enumCnt=enumValCnt=typeCnt=protoCnt=defCnt=friendCnt=0;*/
m_count
=
0
;
m_count
=
0
;
...
@@ -122,7 +122,9 @@ void MemberList::countDocMembers()
...
@@ -122,7 +122,9 @@ void MemberList::countDocMembers()
bool
visibleIfStatic
=
bool
visibleIfStatic
=
!
(
md
->
getClassDef
()
==
0
&&
md
->
isStatic
()
&&
!
Config
::
extractStaticFlag
);
!
(
md
->
getClassDef
()
==
0
&&
md
->
isStatic
()
&&
!
Config
::
extractStaticFlag
);
if
(
visibleIfStatic
&&
bool
inOwnGroup
=
(
md
->
getGroupDef
()
!=
0
&&
!
listOfGroup
);
if
(
visibleIfStatic
&&
!
inOwnGroup
&&
(
Config
::
extractAllFlag
||
md
->
detailsAreVisible
())
(
Config
::
extractAllFlag
||
md
->
detailsAreVisible
())
)
)
{
{
...
@@ -298,6 +300,9 @@ void MemberList::writePlainDeclarations(OutputList &ol,
...
@@ -298,6 +300,9 @@ void MemberList::writePlainDeclarations(OutputList &ol,
typeDecl
.
writeChar
(
' '
);
typeDecl
.
writeChar
(
' '
);
}
}
const
uint
MAX_ENUM_VALUES_FOR_ONE_LINE
=
4
;
int
enumMemCount
=
0
;
typeDecl
.
docify
(
"{ "
);
typeDecl
.
docify
(
"{ "
);
QList
<
MemberDef
>
*
fmdl
=
md
->
enumFieldList
();
QList
<
MemberDef
>
*
fmdl
=
md
->
enumFieldList
();
if
(
fmdl
)
if
(
fmdl
)
...
@@ -305,12 +310,17 @@ void MemberList::writePlainDeclarations(OutputList &ol,
...
@@ -305,12 +310,17 @@ void MemberList::writePlainDeclarations(OutputList &ol,
MemberDef
*
fmd
=
fmdl
->
first
();
MemberDef
*
fmd
=
fmdl
->
first
();
while
(
fmd
)
while
(
fmd
)
{
{
/* in html we start each enum item on a new line */
/* in html we start a new line after a number of items */
typeDecl
.
pushGeneratorState
();
if
(
fmdl
->
count
()
>
MAX_ENUM_VALUES_FOR_ONE_LINE
typeDecl
.
disableAllBut
(
OutputGenerator
::
Html
);
&&
(
enumMemCount
%
MAX_ENUM_VALUES_FOR_ONE_LINE
)
==
0
typeDecl
.
lineBreak
();
)
typeDecl
.
writeString
(
" "
);
{
typeDecl
.
popGeneratorState
();
typeDecl
.
pushGeneratorState
();
typeDecl
.
disableAllBut
(
OutputGenerator
::
Html
);
typeDecl
.
lineBreak
();
typeDecl
.
writeString
(
" "
);
typeDecl
.
popGeneratorState
();
}
if
(
fmd
->
hasDocumentation
())
// enum value has docs
if
(
fmd
->
hasDocumentation
())
// enum value has docs
{
{
...
@@ -334,12 +344,16 @@ void MemberList::writePlainDeclarations(OutputList &ol,
...
@@ -334,12 +344,16 @@ void MemberList::writePlainDeclarations(OutputList &ol,
typeDecl
.
disable
(
OutputGenerator
::
Man
);
typeDecl
.
disable
(
OutputGenerator
::
Man
);
typeDecl
.
writeString
(
"
\n
"
);
// to prevent too long lines in LaTeX
typeDecl
.
writeString
(
"
\n
"
);
// to prevent too long lines in LaTeX
typeDecl
.
enable
(
OutputGenerator
::
Man
);
typeDecl
.
enable
(
OutputGenerator
::
Man
);
enumMemCount
++
;
}
}
}
}
typeDecl
.
pushGeneratorState
();
if
(
fmdl
->
count
()
>
MAX_ENUM_VALUES_FOR_ONE_LINE
)
typeDecl
.
disableAllBut
(
OutputGenerator
::
Html
);
{
typeDecl
.
lineBreak
();
typeDecl
.
pushGeneratorState
();
typeDecl
.
popGeneratorState
();
typeDecl
.
disableAllBut
(
OutputGenerator
::
Html
);
typeDecl
.
lineBreak
();
typeDecl
.
popGeneratorState
();
}
typeDecl
.
docify
(
" }"
);
typeDecl
.
docify
(
" }"
);
md
->
setEnumDecl
(
typeDecl
);
md
->
setEnumDecl
(
typeDecl
);
int
enumVars
=
0
;
int
enumVars
=
0
;
...
...
src/memberlist.h
View file @
0d0eec1d
...
@@ -42,7 +42,7 @@ class MemberList : public QList<MemberDef>
...
@@ -42,7 +42,7 @@ class MemberList : public QList<MemberDef>
int
defineCount
()
const
{
return
defCnt
;
}
int
defineCount
()
const
{
return
defCnt
;
}
int
friendCount
()
const
{
return
friendCnt
;
}
int
friendCount
()
const
{
return
friendCnt
;
}
void
countDecMembers
(
bool
inGroup
,
bool
countSubGroups
,
bool
sectionPerType
);
void
countDecMembers
(
bool
inGroup
,
bool
countSubGroups
,
bool
sectionPerType
);
void
countDocMembers
();
void
countDocMembers
(
bool
listOfGroup
=
FALSE
);
int
totalCount
()
const
int
totalCount
()
const
{
return
//varCnt+funcCnt+enumCnt+enumValCnt+typeCnt+
{
return
//varCnt+funcCnt+enumCnt+enumValCnt+typeCnt+
//protoCnt+defCnt+friendCnt;
//protoCnt+defCnt+friendCnt;
...
...
src/namespacedef.h
View file @
0d0eec1d
...
@@ -39,6 +39,7 @@ class NamespaceDef : public Definition
...
@@ -39,6 +39,7 @@ class NamespaceDef : public Definition
NamespaceDef
(
const
char
*
defFileName
,
int
defLine
,
NamespaceDef
(
const
char
*
defFileName
,
int
defLine
,
const
char
*
name
,
const
char
*
ref
=
0
);
const
char
*
name
,
const
char
*
ref
=
0
);
~
NamespaceDef
();
~
NamespaceDef
();
DefType
definitionType
()
{
return
TypeNamespace
;
}
QCString
getOutputFileBase
()
const
{
return
fileName
;
}
QCString
getOutputFileBase
()
const
{
return
fileName
;
}
void
insertUsedFile
(
const
char
*
fname
);
void
insertUsedFile
(
const
char
*
fname
);
void
writeDocumentation
(
OutputList
&
ol
);
void
writeDocumentation
(
OutputList
&
ol
);
...
...
src/page.h
View file @
0d0eec1d
...
@@ -49,10 +49,13 @@ class PageSDict : public SDict<PageInfo>
...
@@ -49,10 +49,13 @@ class PageSDict : public SDict<PageInfo>
}
}
};
};
class
PageSDictIterator
:
public
SDict
<
PageInfo
>::
Iterator
// typedef is to get around Solaris compile problem
typedef
SDict
<
PageInfo
>::
Iterator
_SDictPageInfoIterator
;
class
PageSDictIterator
:
public
_SDictPageInfoIterator
{
{
public
:
public
:
PageSDictIterator
(
const
PageSDict
&
d
)
:
SDict
<
PageInfo
>::
Iterator
(
d
)
{}
PageSDictIterator
(
const
PageSDict
&
d
)
:
_SDictPageInfo
Iterator
(
d
)
{}
~
PageSDictIterator
()
{}
~
PageSDictIterator
()
{}
};
};
src/rtfgen.cpp
View file @
0d0eec1d
...
@@ -488,14 +488,14 @@ bool StyleData::setStyle(const char* s, const char* styleName)
...
@@ -488,14 +488,14 @@ bool StyleData::setStyle(const char* s, const char* styleName)
if
(
start
<
0
)
if
(
start
<
0
)
{
{
err
(
"Style sheet '%s' contains no '
\\
s' clause.
\n
{%s}
\n
"
,
styleName
,
s
);
err
(
"Style sheet '%s' contains no '
\\
s' clause.
\n
{%s}
\n
"
,
styleName
,
s
);
return
false
;
return
FALSE
;
}
}
s
+=
start
;
s
+=
start
;
index
=
(
int
)
atol
(
s
+
2
);
ASSERT
(
index
>
0
);
index
=
(
int
)
atol
(
s
+
2
);
ASSERT
(
index
>
0
);
// search for the end of pure formatting codes
// search for the end of pure formatting codes
const
char
*
end
=
s
+
len
;
const
char
*
end
=
s
+
len
;
bool
haveNewDefinition
=
true
;
bool
haveNewDefinition
=
TRUE
;
for
(;;)
for
(;;)
{
{
if
(
*
end
==
'{'
)
if
(
*
end
==
'{'
)
...
@@ -518,7 +518,7 @@ bool StyleData::setStyle(const char* s, const char* styleName)
...
@@ -518,7 +518,7 @@ bool StyleData::setStyle(const char* s, const char* styleName)
}
}
else
if
(
*
end
==
0
)
else
if
(
*
end
==
0
)
{
// no style-definition part, keep default value
{
// no style-definition part, keep default value
haveNewDefinition
=
false
;
haveNewDefinition
=
FALSE
;
break
;
break
;
}
}
else
// plain name without leading \\snext
else
// plain name without leading \\snext
...
@@ -534,7 +534,7 @@ bool StyleData::setStyle(const char* s, const char* styleName)
...
@@ -534,7 +534,7 @@ bool StyleData::setStyle(const char* s, const char* styleName)
definition
=
new
char
[
size
];
definition
=
new
char
[
size
];
memcpy
(
definition
,
end
,
size
);
memcpy
(
definition
,
end
,
size
);
}
}
return
true
;
return
TRUE
;
}
}
static
void
loadStylesheet
(
const
char
*
name
,
QDict
<
StyleData
>&
dict
)
static
void
loadStylesheet
(
const
char
*
name
,
QDict
<
StyleData
>&
dict
)
...
@@ -591,7 +591,7 @@ void RTFGenerator::init()
...
@@ -591,7 +591,7 @@ void RTFGenerator::init()
err
(
"Could not create output directory %s
\n
"
,
dir
.
data
());
err
(
"Could not create output directory %s
\n
"
,
dir
.
data
());
exit
(
1
);
exit
(
1
);
}
}
Rtf_Style
.
setAutoDelete
(
true
);
Rtf_Style
.
setAutoDelete
(
TRUE
);
// first duplicate strings of Rtf_Style_Default
// first duplicate strings of Rtf_Style_Default
const
struct
Rtf_Style_Default
*
def
=
Rtf_Style_Default
;
const
struct
Rtf_Style_Default
*
def
=
Rtf_Style_Default
;
...
...
src/scanner.l
View file @
0d0eec1d
...
@@ -339,6 +339,7 @@ TITLE [tT][iI][tT][lL][eE]
...
@@ -339,6 +339,7 @@ TITLE [tT][iI][tT][lL][eE]
%x Bases
%x Bases
%x BasesProt
%x BasesProt
%x NextSemi
%x NextSemi
%x BitFields
%x FindMembers
%x FindMembers
%x FindMemberName
%x FindMemberName
%x FindFields
%x FindFields
...
@@ -501,7 +502,7 @@ TITLE [tT][iI][tT][lL][eE]
...
@@ -501,7 +502,7 @@ TITLE [tT][iI][tT][lL][eE]
--curlyCount ;
--curlyCount ;
}
}
else
else
BEGIN( NextSemi )
;
BEGIN( NextSemi );
}
}
<NextSemi>"'"\\[0-7]{1,3}"'"
<NextSemi>"'"\\[0-7]{1,3}"'"
<NextSemi>"'"\\."'"
<NextSemi>"'"\\."'"
...
@@ -512,8 +513,12 @@ TITLE [tT][iI][tT][lL][eE]
...
@@ -512,8 +513,12 @@ TITLE [tT][iI][tT][lL][eE]
}
}
<NextSemi>[;,] {
<NextSemi>[;,] {
unput(*yytext);
unput(*yytext);
BEGIN( FindMembers )
;
BEGIN( FindMembers );
}
}
<BitFields>[;,] {
unput(*yytext);
BEGIN( FindMembers );
}
<FindMembers>{B}*"k_dcop"{BN}*":"{BN}* { current->mtype = mtype = DCOP;
<FindMembers>{B}*"k_dcop"{BN}*":"{BN}* { current->mtype = mtype = DCOP;
current->protection = protection = Public ;
current->protection = protection = Public ;
current->type.resize(0);
current->type.resize(0);
...
@@ -779,7 +784,16 @@ TITLE [tT][iI][tT][lL][eE]
...
@@ -779,7 +784,16 @@ TITLE [tT][iI][tT][lL][eE]
BEGIN( NSAliasArg );
BEGIN( NSAliasArg );
}
}
<NSAliasArg>({ID}"::")*{ID} {
<NSAliasArg>({ID}"::")*{ID} {
namespaceAliasDict.insert(aliasName,new QCString(yytext));
printf("Inserting namespace alias %s::%s->%s\n",current_root->name.data(),aliasName.data(),yytext);
if (current_root->name.isEmpty())
{
namespaceAliasDict.insert(aliasName,new QCString(yytext));
}
else
{
namespaceAliasDict.insert(current_root->name+"::"+aliasName,
new QCString(current_root->name+"::"+yytext));
}
}
}
<NSAliasArg>";" {
<NSAliasArg>";" {
BEGIN( FindMembers );
BEGIN( FindMembers );
...
@@ -997,7 +1011,7 @@ TITLE [tT][iI][tT][lL][eE]
...
@@ -997,7 +1011,7 @@ TITLE [tT][iI][tT][lL][eE]
<DefineEnd>.
<DefineEnd>.
<FindMembers>[*&]+ { current->name += yytext ; }
<FindMembers>[*&]+ { current->name += yytext ; }
<FindMembers,MemberSpec,Function,NextSemi,ReadInitializer>";"{BN}*("/**"|"//!"|"/*!"|"///")"<" {
<FindMembers,MemberSpec,Function,NextSemi,
BitFields,
ReadInitializer>";"{BN}*("/**"|"//!"|"/*!"|"///")"<" {
lineCount();
lineCount();
if (current->bodyLine==-1)
if (current->bodyLine==-1)
current->bodyLine=yyLineNr;
current->bodyLine=yyLineNr;
...
@@ -1019,7 +1033,7 @@ TITLE [tT][iI][tT][lL][eE]
...
@@ -1019,7 +1033,7 @@ TITLE [tT][iI][tT][lL][eE]
BEGIN(AfterDoc);
BEGIN(AfterDoc);
}
}
}
}
<MemberSpec,FindFields,FindMembers,NextSemi,ReadInitializer>","{BN}*("/**"|"//!"|"/*!"|"///")"<" {
<MemberSpec,FindFields,FindMembers,NextSemi,
BitFields,
ReadInitializer>","{BN}*("/**"|"//!"|"/*!"|"///")"<" {
lineCount();
lineCount();
lastAfterDocContext = YY_START;
lastAfterDocContext = YY_START;
afterDocTerminator = ',';
afterDocTerminator = ',';
...
@@ -1043,7 +1057,10 @@ TITLE [tT][iI][tT][lL][eE]
...
@@ -1043,7 +1057,10 @@ TITLE [tT][iI][tT][lL][eE]
lineCount();
lineCount();
lastAfterDocContext = YY_START;
lastAfterDocContext = YY_START;
if (YY_START==DefineEnd)
if (YY_START==DefineEnd)
{
afterDocTerminator = '\n';
afterDocTerminator = '\n';
yyLineNr--;
}
else
else
afterDocTerminator = 0;
afterDocTerminator = 0;
if (yytext[yyleng-3]=='/')
if (yytext[yyleng-3]=='/')
...
@@ -1241,59 +1258,54 @@ TITLE [tT][iI][tT][lL][eE]
...
@@ -1241,59 +1258,54 @@ TITLE [tT][iI][tT][lL][eE]
yyLineNr++;
yyLineNr++;
*pCopyCurlyString+=*yytext;
*pCopyCurlyString+=*yytext;
}
}
<FindMembers>":" {
<FindMembers>[:;,] {
BEGIN(BitFields);
current->bitfields+=":";
}
<BitFields>. {
current->bitfields+=*yytext;
}
<FindMembers>[;,] {
QCString oldType = current->type.copy();
QCString oldType = current->type.copy();
QCString oldDocs = current->doc.copy();
QCString oldDocs = current->doc.copy();
if ( *yytext != ':'
)
if (current->bodyLine==-1
)
{
{
if (current->bodyLine==-1)
current->bodyLine = yyLineNr;
{
current->bodyLine = yyLineNr;
}
current->type=current->type.simplifyWhiteSpace();
current->args=current->args.simplifyWhiteSpace();
current->name=current->name.stripWhiteSpace();
if (!current->name.isEmpty() && current->type.left(8)=="typedef ")
{
// add typedef to dictionary
QCString dest = extractName(current->type.right(current->type.length()-8));
if (typedefDict[current->name]==0 && !dest.isEmpty())
{
//printf("1>>>>>>>>>> adding %s->%s\n",current->name.data(),dest.data());
typedefDict.insert(current->name, new QCString(dest));
}
}
current->section = Entry::VARIABLE_SEC ;
current->fileName = yyFileName;
current->startLine = yyLineNr;
//printf("New variable type=`%s' name=`%s' groupId=%d\n",current->type.data(),current->name.data(),current->mGrpId);
current_root->addSubEntry( current ) ;
current = new Entry ;
// variable found
current->section = Entry::EMPTY_SEC ;
current->protection = protection;
current->mtype = Method;
current->virt = Normal;
current->stat = gstat;
current->mGrpId = memberGroupId;
}
}
// skip expression or bitfield if needed
current->type=current->type.simplifyWhiteSpace();
if ( *yytext == ':')
current->args=current->args.simplifyWhiteSpace();
{
current->name=current->name.stripWhiteSpace();
BEGIN( NextSemi );
if (!current->name.isEmpty() && current->type.left(8)=="typedef ")
{
// add typedef to dictionary
QCString dest = extractName(current->type.right(current->type.length()-8));
if (typedefDict[current->name]==0 && !dest.isEmpty())
{
//printf("1>>>>>>>>>> adding %s->%s\n",current->name.data(),dest.data());
typedefDict.insert(current->name, new QCString(dest));
}
}
}
else
current->section = Entry::VARIABLE_SEC ;
current->fileName = yyFileName;
current->startLine = yyLineNr;
//printf("New variable type=`%s' name=`%s' groupId=%d\n",current->type.data(),current->name.data(),current->mGrpId);
current_root->addSubEntry( current ) ;
current = new Entry ;
// variable found
current->section = Entry::EMPTY_SEC ;
current->protection = protection;
current->mtype = Method;
current->virt = Normal;
current->stat = gstat;
current->mGrpId = memberGroupId;
if ( *yytext == ',' )
{
{
if ( *yytext == ',' )
int i=oldType.length();
{
while (i>0 && (oldType[i-1]=='*' || oldType[i-1]==' ')) i--;
int i=oldType.length();
current->type = oldType.left(i);
while (i>0 && (oldType[i-1]=='*' || oldType[i-1]==' ')) i--;
current->doc = oldDocs;
current->type = oldType.left(i);
current->doc = oldDocs;
}
BEGIN( FindMembers ) ;
}
}
BEGIN( FindMembers ) ;
}
}
<FindMembers>"[" {
<FindMembers>"[" {
...
@@ -2661,7 +2673,7 @@ TITLE [tT][iI][tT][lL][eE]
...
@@ -2661,7 +2673,7 @@ TITLE [tT][iI][tT][lL][eE]
lastDocRelContext = YY_START;
lastDocRelContext = YY_START;
BEGIN( ClassDocRelates );
BEGIN( ClassDocRelates );
}
}
<ClassDocRelates>
{ID}
{
<ClassDocRelates>
({ID}"::")*{ID}
{
current->relates = yytext;
current->relates = yytext;
BEGIN( lastDocRelContext );
BEGIN( lastDocRelContext );
}
}
...
...
src/translator_si.h
0 → 100644
View file @
0d0eec1d
This diff is collapsed.
Click to expand it.
src/util.cpp
View file @
0d0eec1d
...
@@ -1922,7 +1922,8 @@ bool getScopeDefs(const char *docScope,const char *scope,
...
@@ -1922,7 +1922,8 @@ bool getScopeDefs(const char *docScope,const char *scope,
* with name memberName.
* with name memberName.
* 3) "memberName(...)" a specific (overloaded) function or define
* 3) "memberName(...)" a specific (overloaded) function or define
* with name memberName
* with name memberName
* 4) "::memberName a non-function member or define
* 4) "::name a global variable or define
* 4) "#memberName member variable, global variable or define
* 5) ("ScopeName::")+"memberName()"
* 5) ("ScopeName::")+"memberName()"
* 6) ("ScopeName::")+"memberName(...)"
* 6) ("ScopeName::")+"memberName(...)"
* 7) ("ScopeName::")+"memberName"
* 7) ("ScopeName::")+"memberName"
...
@@ -1934,7 +1935,9 @@ bool generateRef(OutputList &ol,const char *scName,
...
@@ -1934,7 +1935,9 @@ bool generateRef(OutputList &ol,const char *scName,
{
{
//printf("generateRef(scName=%s,name=%s,rt=%s)\n",scName,name,rt);
//printf("generateRef(scName=%s,name=%s,rt=%s)\n",scName,name,rt);
QCString
tmpName
=
substitute
(
name
,
"#"
,
"::"
);
QCString
tsName
=
name
;
bool
memberScopeFirst
=
tsName
.
find
(
'#'
)
!=-
1
;
QCString
tmpName
=
substitute
(
tsName
,
"#"
,
"::"
);
QCString
linkText
=
rt
;
QCString
linkText
=
rt
;
int
scopePos
=
tmpName
.
findRev
(
"::"
);
int
scopePos
=
tmpName
.
findRev
(
"::"
);
int
bracePos
=
tmpName
.
findRev
(
'('
);
// reverse is needed for operator()(...)
int
bracePos
=
tmpName
.
findRev
(
'('
);
// reverse is needed for operator()(...)
...
@@ -2021,7 +2024,8 @@ bool generateRef(OutputList &ol,const char *scName,
...
@@ -2021,7 +2024,8 @@ bool generateRef(OutputList &ol,const char *scName,
// scopeStr.data(),nameStr.data(),argsStr.data());
// scopeStr.data(),nameStr.data(),argsStr.data());
// check if nameStr is a member or global.
// check if nameStr is a member or global.
if
(
getDefs
(
scopeStr
,
nameStr
,
argsStr
,
md
,
cd
,
fd
,
nd
,
gd
,
scopePos
==
0
))
if
(
getDefs
(
scopeStr
,
nameStr
,
argsStr
,
md
,
cd
,
fd
,
nd
,
gd
,
scopePos
==
0
&&
!
memberScopeFirst
))
{
{
//printf("after getDefs nd=%p\n",nd);
//printf("after getDefs nd=%p\n",nd);
QCString
anchor
;
QCString
anchor
;
...
@@ -2118,6 +2122,7 @@ bool generateRef(OutputList &ol,const char *scName,
...
@@ -2118,6 +2122,7 @@ bool generateRef(OutputList &ol,const char *scName,
bool
generateLink
(
OutputList
&
ol
,
const
char
*
clName
,
bool
generateLink
(
OutputList
&
ol
,
const
char
*
clName
,
const
char
*
lr
,
bool
inSeeBlock
,
const
char
*
lt
)
const
char
*
lr
,
bool
inSeeBlock
,
const
char
*
lt
)
{
{
//printf("generateLink clName=`%s' lr=`%s' lt=`%s'\n",clName,lr,lt);
QCString
linkRef
=
lr
;
QCString
linkRef
=
lr
;
FileDef
*
fd
;
FileDef
*
fd
;
GroupDef
*
gd
;
GroupDef
*
gd
;
...
...
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