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
f781e6db
Commit
f781e6db
authored
Jan 06, 2003
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.3-rc2-20030106
parent
dfa656f3
Changes
41
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
41 changed files
with
1476 additions
and
226 deletions
+1476
-226
Doxyfile
Doxyfile
+2
-2
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
doxmlintf.h
addon/doxmlparser/include/doxmlintf.h
+11
-9
doxmlintf.h
addon/doxmlparser/src/doxmlintf.h
+11
-9
commands.doc
doc/commands.doc
+11
-0
config.doc
doc/config.doc
+7
-7
doxytag_usage.doc
doc/doxytag_usage.doc
+1
-1
external.doc
doc/external.doc
+9
-0
faq.doc
doc/faq.doc
+36
-0
infoflow.eps
doc/infoflow.eps
+665
-0
infoflow.fig
doc/infoflow.fig
+250
-0
infoflow.gif
doc/infoflow.gif
+0
-0
language.doc
doc/language.doc
+1
-1
starting.doc
doc/starting.doc
+6
-0
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+11
-3
classdef.h
src/classdef.h
+0
-6
config.h
src/config.h
+5
-0
docparser.cpp
src/docparser.cpp
+30
-23
doctokenizer.l
src/doctokenizer.l
+5
-5
dot.cpp
src/dot.cpp
+31
-22
doxygen.cpp
src/doxygen.cpp
+67
-6
doxygen.h
src/doxygen.h
+31
-33
entry.h
src/entry.h
+1
-1
filedef.cpp
src/filedef.cpp
+2
-0
filename.cpp
src/filename.cpp
+1
-0
index.cpp
src/index.cpp
+1
-1
instdox.cpp
src/instdox.cpp
+1
-1
membername.cpp
src/membername.cpp
+1
-0
page.h
src/page.h
+1
-1
pngenc.cpp
src/pngenc.cpp
+1
-0
pre.h
src/pre.h
+1
-0
pre.l
src/pre.l
+1
-1
scanner.l
src/scanner.l
+7
-0
sortdict.h
src/sortdict.h
+2
-2
tagreader.cpp
src/tagreader.cpp
+11
-2
treeview.h
src/treeview.h
+123
-42
treeview.js
src/treeview.js
+123
-42
util.cpp
src/util.cpp
+3
-0
No files found.
Doxyfile
View file @
f781e6db
...
...
@@ -65,13 +65,13 @@ EXCLUDE = src/code.cpp \
src/pre.cpp \
src/scanner.cpp \
src/tag.cpp \
src/doc
.cpp \
src/doctokenizer
.cpp \
src/logos.cpp \
src/doxysearch.cpp \
src/suffixtree.cpp \
src/suffixtree.h \
src/searchindex.cpp \
src/searchindex.h
src/searchindex.h
\
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
...
...
INSTALL
View file @
f781e6db
DOXYGEN Version 1.3-rc2-200
21224
DOXYGEN Version 1.3-rc2-200
30106
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (
24 December 2002
)
Dimitri van Heesch (
06 January 2003
)
README
View file @
f781e6db
DOXYGEN Version 1.3_rc2_200
21224
DOXYGEN Version 1.3_rc2_200
30106
Please read INSTALL for compilation instructions.
...
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (
24 December 2002
)
Dimitri van Heesch (dimitri@stack.nl) (
06 January 2003
)
VERSION
View file @
f781e6db
1.3-rc2-200
21224
1.3-rc2-200
30106
addon/doxmlparser/include/doxmlintf.h
View file @
f781e6db
...
...
@@ -865,15 +865,17 @@ class IClass : public ICompound
virtual
IRelatedCompoundIterator
*
baseCompounds
()
const
=
0
;
virtual
IRelatedCompoundIterator
*
derivedCompounds
()
const
=
0
;
virtual
ICompoundIterator
*
nestedCompounds
()
const
=
0
;
virtual
IParamIterator
*
templateParameters
()
const
=
0
;
virtual
const
IString
*
locationFile
()
const
=
0
;
virtual
int
locationLine
()
const
=
0
;
virtual
int
locationBodyStartLine
()
const
=
0
;
virtual
int
locationBodyEndLine
()
const
=
0
;
virtual
IParamIterator
*
templateParameters
()
const
=
0
;
virtual
const
IString
*
locationFile
()
const
=
0
;
virtual
int
locationLine
()
const
=
0
;
virtual
int
locationBodyStartLine
()
const
=
0
;
virtual
int
locationBodyEndLine
()
const
=
0
;
// TODO:
// class:
// listOfAllMembers()
// protection()
// isAbstract()
};
/*! \brief The interface to a struct in the object model.
...
...
@@ -884,10 +886,10 @@ class IStruct : public ICompound
virtual
ICompoundIterator
*
nestedCompounds
()
const
=
0
;
virtual
IRelatedCompoundIterator
*
baseCompounds
()
const
=
0
;
virtual
IRelatedCompoundIterator
*
derivedCompounds
()
const
=
0
;
virtual
const
IString
*
locationFile
()
const
=
0
;
virtual
int
locationLine
()
const
=
0
;
virtual
int
locationBodyStartLine
()
const
=
0
;
virtual
int
locationBodyEndLine
()
const
=
0
;
virtual
const
IString
*
locationFile
()
const
=
0
;
virtual
int
locationLine
()
const
=
0
;
virtual
int
locationBodyStartLine
()
const
=
0
;
virtual
int
locationBodyEndLine
()
const
=
0
;
};
/*! \brief The interface to a union in the object model.
...
...
addon/doxmlparser/src/doxmlintf.h
View file @
f781e6db
...
...
@@ -865,15 +865,17 @@ class IClass : public ICompound
virtual
IRelatedCompoundIterator
*
baseCompounds
()
const
=
0
;
virtual
IRelatedCompoundIterator
*
derivedCompounds
()
const
=
0
;
virtual
ICompoundIterator
*
nestedCompounds
()
const
=
0
;
virtual
IParamIterator
*
templateParameters
()
const
=
0
;
virtual
const
IString
*
locationFile
()
const
=
0
;
virtual
int
locationLine
()
const
=
0
;
virtual
int
locationBodyStartLine
()
const
=
0
;
virtual
int
locationBodyEndLine
()
const
=
0
;
virtual
IParamIterator
*
templateParameters
()
const
=
0
;
virtual
const
IString
*
locationFile
()
const
=
0
;
virtual
int
locationLine
()
const
=
0
;
virtual
int
locationBodyStartLine
()
const
=
0
;
virtual
int
locationBodyEndLine
()
const
=
0
;
// TODO:
// class:
// listOfAllMembers()
// protection()
// isAbstract()
};
/*! \brief The interface to a struct in the object model.
...
...
@@ -884,10 +886,10 @@ class IStruct : public ICompound
virtual
ICompoundIterator
*
nestedCompounds
()
const
=
0
;
virtual
IRelatedCompoundIterator
*
baseCompounds
()
const
=
0
;
virtual
IRelatedCompoundIterator
*
derivedCompounds
()
const
=
0
;
virtual
const
IString
*
locationFile
()
const
=
0
;
virtual
int
locationLine
()
const
=
0
;
virtual
int
locationBodyStartLine
()
const
=
0
;
virtual
int
locationBodyEndLine
()
const
=
0
;
virtual
const
IString
*
locationFile
()
const
=
0
;
virtual
int
locationLine
()
const
=
0
;
virtual
int
locationBodyStartLine
()
const
=
0
;
virtual
int
locationBodyEndLine
()
const
=
0
;
};
/*! \brief The interface to a union in the object model.
...
...
doc/commands.doc
View file @
f781e6db
...
...
@@ -1796,4 +1796,15 @@ browser generator. Do \e not use these commands in your own documentation.
<li>\\postheader
</ul>
For PHP files there are a number of additional commands, that can be
used inside classes to make members public, private, or protected even
though the language itself doesn't support this notion.
To mark a single item use one of \\private, \\protected, \\public.
For starting a section with a certain protection level use one of:
\\privatesection, \\protectedsection, \\publicsection.
The latter commands are similar to
"private:", "protected:", and "public:" in C++.
*/
doc/config.doc
View file @
f781e6db
...
...
@@ -363,13 +363,6 @@ function's detailed documentation block.
to \c NO (the default) then the documentation will be excluded.
Set it to \c YES to include the internal documentation.
\anchor cfg_strip_code_comments
<dt>\c STRIP_CODE_COMMENTS <dd>
\addindex STRIP_CODE_COMMENTS
Setting the \c STRIP_CODE_COMMENTS tag to \c YES (the default) will instruct
doxygen to hide any special comment blocks from generated source code
fragments. Normal C and C++ comments will always remain visible.
\anchor cfg_case_sense_names
<dt>\c CASE_SENSE_NAMES <dd>
\addindex CASE_SENSE_NAMES
...
...
@@ -730,6 +723,13 @@ function's detailed documentation block.
Setting
the
\
c
INLINE_SOURCES
tag
to
\
c
YES
will
include
the
body
of
functions
,
classes
and
enums
directly
into
the
documentation
.
\
anchor
cfg_strip_code_comments
<
dt
>\
c
STRIP_CODE_COMMENTS
<
dd
>
\
addindex
STRIP_CODE_COMMENTS
Setting
the
\
c
STRIP_CODE_COMMENTS
tag
to
\
c
YES
(
the
default
)
will
instruct
doxygen
to
hide
any
special
comment
blocks
from
generated
source
code
fragments
.
Normal
C
and
C
++
comments
will
always
remain
visible
.
\
anchor
cfg_referenced_by_relation
<
dt
>\
c
REFERENCED_BY_RELATION
<
dd
>
\
addindex
REFERENCED_BY_RELATION
...
...
doc/doxytag_usage.doc
View file @
f781e6db
...
...
@@ -103,7 +103,7 @@ doxytag -t example.tag example/html
\par Example 2:
To generate a tag file of the Qt documentation you can do the following:
\verbatim
doxytag -t qt.tag $QTDIR/html
doxytag -t qt.tag $QTDIR/
doc/
html
\endverbatim
A typical example to use doxytag to generate a search index is:
...
...
doc/external.doc
View file @
f781e6db
...
...
@@ -35,6 +35,15 @@ reasons to not include all sources for these with every run of doxygen:
linked in externally. This saves a lot of memory.
<dt>Availability:<dd> For some projects that are documented with doxygen,
the sources may just not be available.
<dt>Copyright issues:<dd>If the external
package and its documentation are copyright someone else, it may be
better - or even necessary - to reference it rather than include a
copy of it with your project'
s
documentation
.
When
the
author
forbids
redistribution
,
this
is
necessary
.
If
the
author
requires
compliance
with
some
license
condition
as
a
precondition
of
redistribution
,
and
you
do
now
want
to
be
bound
by
those
conditions
,
referring
to
their
copy
of
their
documentation
is
preferable
to
including
a
copy
.
</
dl
>
If
any
of
the
above
apply
,
you
can
use
doxygen
's tag file mechanism.
...
...
doc/faq.doc
View file @
f781e6db
...
...
@@ -222,6 +222,42 @@ should send me a code fragment that triggers the message. The workaround
the problem put some line-breaks into your file, split it up into smaller
parts, or exclude it from the input using EXCLUDE.
<li><b>Why are dependencies via STL classes not shown in the dot graphs?</b>
Doxygen is unware of the STL classes, so it does not know that class A relates
to class B in the following example
\code
#include <vector>
using namespace std;
class B {};
class A
{
public:
vector<B> m_bvec;
};
\endcode
To overcome this problem you could provide the definition of the vector
class to doxygen (by including the file that defines it at the INPUT tag
in the config file). Since STL header files are often messy, a
(possibly) better approach is to include a dummy definition of a vector
class to the input. Here is an example of a dummy STL file for the vector
class:
\code
namespace std {
/*! STL vector class */
template<class T> class vector { public: T element; };
}
\endcode
I'm still looking for someone who can provide me with definitions
for all (relevant) STL classes.
<li><b>How did doxygen get its name?</b>
Doxygen got its name from playing with the words
...
...
doc/infoflow.eps
0 → 100644
View file @
f781e6db
This diff is collapsed.
Click to expand it.
doc/infoflow.fig
0 → 100644
View file @
f781e6db
#FIG 3.2
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
0 32 #e0e0e0
0 33 #000000
6 3600 1650 4800 3150
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
3600 1950 3900 1650 4800 1650 4800 3150 3600 3150 3600 1950
3900 1950 3900 1650
4 0 0 50 0 0 12 0.0000 4 180 780 3900 2250 Config file\001
4 0 0 50 0 0 12 0.0000 4 180 645 3900 2550 Doxyfile\001
-6
6 900 7200 2100 8700
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
900 7500 1200 7200 2100 7200 2100 8700 900 8700 900 7500
1200 7500 1200 7200
4 0 0 50 0 0 12 0.0000 4 135 510 1200 7950 search\001
4 0 0 50 0 0 12 0.0000 4 135 405 1200 8175 index\001
-6
6 900 3150 2325 4875
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
900 3675 1200 3375 2100 3375 2100 4875 900 4875 900 3675
1200 3675 1200 3375
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
975 3600 975 3300 2175 3300 2175 4800 2100 4800
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
1050 3300 1050 3225 2250 3225 2250 4725 2175 4725
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
1125 3225 1125 3150 2325 3150 2325 4650 2250 4650
-6
6 900 5175 2325 6900
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
900 5700 1200 5400 2100 5400 2100 6900 900 6900 900 5700
1200 5700 1200 5400
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
975 5625 975 5325 2175 5325 2175 6825 2100 6825
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
1050 5325 1050 5250 2250 5250 2250 6750 2175 6750
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
1125 5250 1125 5175 2325 5175 2325 6675 2250 6675
-6
6 1275 5925 2025 6750
4 0 0 50 0 0 12 0.0000 4 135 750 1275 6075 - headers\001
4 0 0 50 0 0 12 0.0000 4 180 690 1275 6675 - images\001
4 0 0 50 0 0 12 0.0000 4 135 690 1275 6375 - footers\001
-6
6 6675 8250 8100 9975
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
6675 8775 6975 8475 7875 8475 7875 9975 6675 9975 6675 8775
6975 8775 6975 8475
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6750 8700 6750 8400 7950 8400 7950 9900 7875 9900
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6825 8400 6825 8325 8025 8325 8025 9825 7950 9825
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6900 8325 6900 8250 8100 8250 8100 9750 8025 9750
-6
6 6600 4425 8025 6150
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
6600 4950 6900 4650 7800 4650 7800 6150 6600 6150 6600 4950
6900 4950 6900 4650
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6675 4875 6675 4575 7875 4575 7875 6075 7800 6075
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6750 4575 6750 4500 7950 4500 7950 6000 7875 6000
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6825 4500 6825 4425 8025 4425 8025 5925 7950 5925
-6
6 6600 2400 8025 4125
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
6600 2925 6900 2625 7800 2625 7800 4125 6600 4125 6600 2925
6900 2925 6900 2625
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6675 2850 6675 2550 7875 2550 7875 4050 7800 4050
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6750 2550 6750 2475 7950 2475 7950 3975 7875 3975
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6825 2475 6825 2400 8025 2400 8025 3900 7950 3900
-6
6 6600 375 8025 2100
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
6600 900 6900 600 7800 600 7800 2100 6600 2100 6600 900
6900 900 6900 600
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6675 825 6675 525 7875 525 7875 2025 7800 2025
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6750 525 6750 450 7950 450 7950 1950 7875 1950
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6825 450 6825 375 8025 375 8025 1875 7950 1875
-6
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
4050 3150 4050 3750
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
2100 4125 3300 4125
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
1 1 1.00 60.00 120.00
2100 6225 2700 6225 2700 4350 3300 4350
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 2
1 1 1.00 60.00 120.00
4350 3150 4350 3750
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
3675 5925 3975 5625 4875 5625 4875 7125 3675 7125 3675 5925
3975 5925 3975 5625
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
3300 300 5100 300 5100 1050 3300 1050 3300 300
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
4125 5625 4125 4650
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 2
1 1 1.00 60.00 120.00
4350 5625 4350 4650
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 1 2
1 1 1.00 60.00 120.00
1 1 1.00 60.00 120.00
4200 1050 4200 1650
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
1 1 1.00 60.00 120.00
5100 3900 6000 3900 6000 1425 6600 1425
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
1 1 1.00 60.00 120.00
5100 4050 6300 4050 6300 3450 6600 3450
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
1 1 1.00 60.00 120.00
5100 4200 6300 4200 6300 5550 6600 5550
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
1 1 1.00 60.00 120.00
5100 4350 6000 4350 6000 7350 6675 7350
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
1 1 1.00 60.00 120.00
5100 4500 5700 4500 5700 9150 6675 9150
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
6675 6675 6975 6375 7875 6375 7875 7875 6675 7875 6675 6675
6975 6675 6975 6375
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
3300 3750 5100 3750 5100 4650 3300 4650 3300 3750
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
8775 450 10800 450 10800 1575 8775 1575 8775 450
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
9075 900 10650 900 10650 1425 9075 1425 9075 900
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
7800 1350 8775 1350
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
10800 1350 11475 1350
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
7800 3150 9000 3150
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
7800 3525 9000 3525
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
9000 2925 10800 2925 10800 3675 9000 3675 9000 2925
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
10800 3150 11475 3150
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
10800 3525 11475 3525
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
9000 6900 10800 6900 10800 7650 9000 7650 9000 6900
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
7875 7275 9000 7275
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
10800 7275 11400 7275
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
7875 9150 9000 9150
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
9000 8775 10875 8775 10875 9525 9000 9525 9000 8775
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
10875 9150 11400 9150
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
4425 8850 4425 7125
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
3300 8850 5100 8850 5100 9525 3300 9525 3300 8850
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
6675 9300 5100 9300
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
675 9300 2475 9300 2475 9975 675 9975 675 9300
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
1 1 1.00 60.00 120.00
3900 8850 3900 8025 2100 8025
2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
1500 8700 1500 9300
2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 1 2
1 1 1.00 60.00 120.00
1 1 1.00 60.00 120.00
2475 9750 6675 9750
2 2 1 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5
8700 6450 11850 6450 11850 9975 8700 9975 8700 6450
4 0 0 50 0 0 12 0.0000 4 180 1215 4500 3525 generate/update\001
4 0 0 50 0 0 12 0.0000 4 135 330 3600 3525 read\001
4 0 0 50 0 0 12 0.0000 4 135 330 2850 3975 read\001
4 0 0 50 0 0 12 0.0000 4 135 330 2850 4650 read\001
4 0 0 50 0 0 12 0.0000 4 180 810 3975 6450 Tag file(s)\001
4 0 0 50 0 0 12 0.0000 4 180 915 3750 750 Doxywizard\001
4 0 0 50 0 0 12 0.0000 4 150 660 4425 5175 generate\001
4 0 0 50 0 0 12 0.0000 4 135 330 3675 5175 read\001
4 0 0 50 0 0 12 0.0000 4 180 990 4350 1425 generate/edit\001
4 0 0 50 0 0 12 0.0000 4 135 780 6900 1350 XML files\001
4 0 0 50 0 0 12 0.0000 4 135 810 6900 3300 Latex files\001
4 0 0 50 0 0 12 0.0000 4 135 675 6900 3750 Makefile\001
4 0 0 50 0 0 12 0.0000 4 75 105 7200 3525 +\001
4 0 0 50 0 0 12 0.0000 4 180 675 3900 4275 Doxygen\001
4 0 0 50 0 0 12 0.0000 4 180 1245 9225 750 Your application\001
4 0 0 50 0 0 12 0.0000 4 180 1155 9300 1275 doxmlparser lib\001
4 0 0 50 0 0 12 0.0000 4 180 690 8175 3750 make pdf\001
4 0 0 50 0 0 12 0.0000 4 180 630 8175 3000 make ps\001
4 0 0 50 0 0 12 0.0000 4 135 375 9675 3375 latex\001
4 0 0 50 0 0 12 0.0000 4 105 555 11025 825 custom\001
4 0 0 50 0 0 12 0.0000 4 150 480 11025 1050 output\001
4 0 0 50 0 0 12 0.0000 4 180 765 11025 3000 postscript\001
4 0 0 50 0 0 12 0.0000 4 135 345 11025 3825 PDF\001
4 0 0 50 0 0 12 0.0000 4 135 750 6900 7350 refman.rtf\001
4 0 0 50 0 0 12 0.0000 4 135 795 9525 7350 MS-Word\001
4 0 0 50 0 0 12 0.0000 4 135 270 11100 7200 doc\001
4 0 0 50 0 0 12 0.0000 4 180 480 8175 7200 import\001
4 0 0 50 0 0 12 0.0000 4 135 510 6975 9075 HTML\001
4 0 0 50 0 0 12 0.0000 4 135 450 6975 9300 pages\001
4 0 0 50 0 0 12 0.0000 4 180 1740 9075 9225 HTML Help Workshop\001
4 0 0 50 0 0 12 0.0000 4 135 315 11100 9000 chm\001
4 0 0 50 0 0 12 0.0000 4 180 840 6825 5625 Man pages\001
4 0 0 50 0 0 12 0.0000 4 135 420 5475 9525 parse\001
4 0 0 50 0 0 12 0.0000 4 150 660 4575 8100 generate\001
4 0 0 50 0 0 12 0.0000 4 180 645 3825 9300 Doxytag\001
4 0 0 50 0 0 12 0.0000 4 180 915 1050 9750 Doxysearch\001
4 0 0 50 0 0 12 0.0000 4 90 360 1575 9075 uses\001
4 0 0 50 0 0 12 0.0000 4 135 750 2700 9975 used from\001
4 0 0 50 0 0 12 0.0000 4 150 750 5700 9975 generates\001
4 0 0 50 0 0 12 0.0000 4 135 330 8325 9075 read\001
4 0 0 50 0 0 12 0.0000 4 180 1080 8775 6675 Windows only\001
4 0 0 50 0 0 12 0.0000 4 150 660 2700 8250 generate\001
4 0 0 50 0 0 12 0.0000 4 135 330 8250 1200 read\001
4 0 0 50 0 0 12 0.0000 4 135 615 1200 4200 Sources\001
4 0 0 50 0 0 12 0.0000 4 135 585 1275 5775 Custom\001
doc/infoflow.gif
0 → 100644
View file @
f781e6db
12.9 KB
doc/language.doc
View file @
f781e6db
...
...
@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
that the text fragments that doxygen generates can be produced in
languages other than English (the default) at configuration time.
Currently (version 1.
2.14-20020317
), 28 languages
Currently (version 1.
3-rc2-20021224
), 28 languages
are supported (sorted alphabetically):
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Czech, Danish, Dutch, English, Finnish,
...
...
doc/starting.doc
View file @
f781e6db
...
...
@@ -32,6 +32,12 @@ engine. See section \ref doxysearch_usage for more detailed usage information.
Optionally, the executable \c doxywizard is a GUI front-end for editing
the configuration files that are used by doxygen.
The following figure shows the relation between the tools and the flow
of information between them:
\image html infoflow.gif "Doxygen information flow"
\image latex infoflow.eps "Doxygen information flow" width=14cm
\section step1 Step 1: Creating a configuration file
Doxygen uses a configuration file to determine all of its settings.
...
...
packages/rpm/doxygen.spec
View file @
f781e6db
Summary: A documentation system for C/C++.
Name: doxygen
Version: 1.3_rc2_200
21224
Version: 1.3_rc2_200
30106
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
...
...
src/classdef.cpp
View file @
f781e6db
...
...
@@ -124,6 +124,7 @@ ClassDef::~ClassDef()
delete
m_innerClasses
;
delete
m_templateInstances
;
delete
m_templBaseClassNames
;
delete
m_tempArgs
;
}
QCString
ClassDef
::
displayName
()
const
...
...
@@ -1525,7 +1526,6 @@ void ClassDef::setTemplateArguments(ArgumentList *al)
if
(
al
==
0
)
return
;
if
(
!
m_tempArgs
)
delete
m_tempArgs
;
// delete old list if needed
m_tempArgs
=
new
ArgumentList
;
m_tempArgs
->
setAutoDelete
(
TRUE
);
ArgumentListIterator
ali
(
*
al
);
Argument
*
a
;
for
(;(
a
=
ali
.
current
());
++
ali
)
...
...
@@ -1981,7 +1981,11 @@ void ClassDef::mergeMembers()
void
ClassDef
::
addUsedClass
(
ClassDef
*
cd
,
const
char
*
accessName
)
{
if
(
m_usesImplClassDict
==
0
)
m_usesImplClassDict
=
new
UsesClassDict
(
17
);
if
(
m_usesImplClassDict
==
0
)
{
m_usesImplClassDict
=
new
UsesClassDict
(
17
);
m_usesImplClassDict
->
setAutoDelete
(
TRUE
);
}
UsesClassDef
*
ucd
=
m_usesImplClassDict
->
find
(
cd
->
name
());
if
(
ucd
==
0
/*|| ucd->templSpecifiers!=templSpec*/
)
{
...
...
@@ -2065,7 +2069,11 @@ void ClassDef::determineImplUsageRelation()
if (cd) // class exists
{
found=TRUE;
if (m_usesImplClassDict==0) m_usesImplClassDict = new UsesClassDict(257);
if (m_usesImplClassDict==0)
{
m_usesImplClassDict = new UsesClassDict(257);
m_usesImplClassDict->setAutoDelete(TRUE);
}
UsesClassDef *ucd=m_usesImplClassDict->find(cd->name());
if (ucd==0 || ucd->templSpecifiers!=templSpec)
{
...
...
src/classdef.h
View file @
f781e6db
...
...
@@ -126,12 +126,6 @@ class ClassDef : public Definition
*/
ArgumentList
*
templateArguments
()
const
{
return
m_tempArgs
;
}
/*! Returns the template arguments that this nested class "inherits"
* from its outer class (doxygen assumes there is only one!).
* Will return 0 if not applicable.
*/
//ArgumentList *outerTemplateArguments() const;
/*! Returns the namespace this compound is in, or 0 if it has a global
* scope.
*/
...
...
src/config.h
View file @
f781e6db
...
...
@@ -338,6 +338,11 @@ class Config
if
(
m_instance
==
0
)
m_instance
=
new
Config
;
return
m_instance
;
}
/*! Delete the instance */
static
void
deleteInstance
()
{
delete
m_instance
;
}
/*! Returns an iterator that can by used to iterate over the
* configuration options.
...
...
src/docparser.cpp
View file @
f781e6db
...
...
@@ -128,8 +128,8 @@ static void docParserPopContext()
//---------------------------------------------------------------------------
/*! search for an image in the imageNameDict and if found
* copies the image to the output directory (which
is th
e
*
html directory if type==0 or the latex directory if type==1)
* copies the image to the output directory (which
depends on the \a typ
e
*
parameter).
*/
static
QCString
findAndCopyImage
(
const
char
*
fileName
,
DocImage
::
Type
type
)
{
...
...
@@ -225,14 +225,20 @@ static QCString findAndCopyImage(const char *fileName,DocImage::Type type)
return
result
;
}
/*! Collects the parameters found with @param or @retval commands
* in a global list g_paramsFound. If \a isParam is set to TRUE
* and the parameter is not an actual parameter of the current
* member g_memberDef, than a warning is raised (unless warnings
* are disabled altogether).
*/
static
void
checkArgumentName
(
const
QString
&
name
,
bool
isParam
)
{
if
(
!
Config_getBool
(
"WARN_IF_DOC_ERROR"
))
return
;
if
(
g_memberDef
==
0
)
return
;
// not a member
ArgumentList
*
al
=
g_memberDef
->
isDocsForDefinition
()
?
g_memberDef
->
argumentList
()
:
g_memberDef
->
declArgumentList
();
if
(
al
==
0
)
return
;
// no argument list
if
(
!
Config_getBool
(
"WARN_IF_DOC_ERROR"
))
return
;
static
QRegExp
re
(
"[a-zA-Z0-9_]+
\\
.*"
);
int
p
=
0
,
i
=
0
,
l
;
...
...
@@ -270,6 +276,11 @@ static void checkArgumentName(const QString &name,bool isParam)
}
}
/*! Checks if the parameters that have been specified using @param are
* indeed all paramters.
* Must be called after checkArgumentName() has been called for each
* argument.
*/
static
void
checkUndocumentedParams
()
{
if
(
g_memberDef
&&
g_hasParamCommand
&&
Config_getBool
(
"WARN_IF_DOC_ERROR"
))
...
...
@@ -317,6 +328,7 @@ static void checkUndocumentedParams()
//---------------------------------------------------------------------------
/*! Strips know html and tex extensions from \a text. */
static
QString
stripKnownExtensions
(
const
char
*
text
)
{
QString
result
=
text
;
...
...
@@ -414,6 +426,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
QString
*
pDoc
,
Definition
**
pDef
)
{
//printf("findDocsForMemberOrCompound(%s)\n",commandName);
*
pDoc
=
""
;
*
pDef
=
0
;
QString
cmdArg
=
commandName
;
...
...
@@ -422,10 +435,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
int
funcStart
=
cmdArg
.
find
(
'('
);
if
(
funcStart
==-
1
)
funcStart
=
l
;
//int lastScopeStart=cmdArg.findRev("::",funcStart);
//int lastScopeEnd = lastScopeStart==-1 ? 0 : lastScopeStart+2;
//QString scope=cmdArg.left(QMAX(lastScopeStart,0));
//QString name=cmdArg.mid(lastScopeEnd,funcStart-lastScopeEnd);
QString
name
=
cmdArg
.
left
(
funcStart
);
QString
args
=
cmdArg
.
right
(
l
-
funcStart
);
...
...
@@ -441,6 +451,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
name
.
latin1
(),
args
.
isEmpty
()
?
0
:
args
.
latin1
(),
md
,
cd
,
fd
,
nd
,
gd
,
FALSE
,
0
,
TRUE
);
//printf("found=%d context=%s name=%s\n",found,g_context.data(),name.data());
if
(
found
&&
md
)
{
*
pDoc
=
md
->
documentation
();
...
...
@@ -1289,7 +1300,14 @@ void DocCopy::parse()
if
(
g_copyStack
.
findRef
(
def
)
==-
1
)
// definition not parsed earlier
{
docParserPushContext
();
g_context
=
def
->
name
();
if
(
def
->
definitionType
()
==
Definition
::
TypeMember
&&
def
->
getOuterScope
())
{
g_context
=
def
->
getOuterScope
()
->
name
();
}
else
{
g_context
=
def
->
name
();
}
g_styleStack
.
clear
();
g_nodeStack
.
clear
();
g_copyStack
.
append
(
def
);
...
...
@@ -3728,13 +3746,6 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
retval
=
RetVal_ListItem
;
}
break
;
//case HTML_PRE:
// {
// DocHtmlPre *pre = new DocHtmlPre(this,tagHtmlAttribs);
// m_children.append(pre);
// retval=pre->parse();
// }
// break;
case
HTML_BOLD
:
handleStyleEnter
(
this
,
m_children
,
DocStyleChange
::
Bold
,
&
g_token
->
attribs
);
break
;
...
...
@@ -3836,7 +3847,7 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
g_insideHtmlLink
=
FALSE
;
break
;
}
else
// unsupport option for tag a
else
// unsupport
ed
option for tag a
{
}
}
...
...
@@ -4054,6 +4065,7 @@ int DocPara::parse()
{
DBG
((
"DocPara::parse() start
\n
"
));
g_nodeStack
.
push
(
this
);
// handle style commands "inherited" from the previous paragraph
handleInitialStyleCommands
(
this
,
m_children
);
int
tok
;
int
retval
=
0
;
...
...
@@ -4083,7 +4095,7 @@ reparsetoken:
{
// prevent leading whitespace and collapse multiple whitespace areas
DocNode
::
Kind
k
;
if
(
insidePRE
(
this
)
||
// all whitespace is rel
a
vant
if
(
insidePRE
(
this
)
||
// all whitespace is rel
e
vant
(
// remove leading whitespace
!
m_children
.
isEmpty
()
&&
...
...
@@ -4197,12 +4209,7 @@ reparsetoken:
}
if
(
cmd
&
SIMPLESECT_BIT
)
{
if
(
n
// already in a simple section
//|| // no section or root as parent
// (parent()->kind()!=DocNode::Kind_Root &&
// parent()->kind()!=DocNode::Kind_Section
// )
)
if
(
n
)
// already in a simple section
{
// simple section cannot start in this paragraph, need
// to unwind the stack and remember the command.
...
...
src/doctokenizer.l
View file @
f781e6db
...
...
@@ -142,7 +142,7 @@ static int computeIndent(const char *str,int length)
*/
static void parseHtmlAttribs(const char *att)
{
//printf("parseHtmlAttribs(%s)\n",
opt.data()
);
//printf("parseHtmlAttribs(%s)\n",
att
);
QCString attribs=att;
int len = attribs.length();
char c;
...
...
@@ -173,7 +173,7 @@ static void parseHtmlAttribs(const char *att)
// search for matching quote
while (i<len && c!='\'') { c=attribs.at(++i); }
endAttrib=i;
c=attribs.at(++i);
if (i<len)
c=attribs.at(++i);
}
else if (attribs.at(i)=='"') // option "..."
{
...
...
@@ -182,7 +182,7 @@ static void parseHtmlAttribs(const char *att)
// search for matching quote
while (i<len && c!='"') { c=attribs.at(++i); }
endAttrib=i;
c=attribs.at(++i);
if (i<len)
c=attribs.at(++i);
}
else // value without any quotes
{
...
...
@@ -190,7 +190,7 @@ static void parseHtmlAttribs(const char *att)
// search for separator
while (i<len && c!=' ') { c=attribs.at(++i); }
endAttrib=i;
c=attribs.at(++i);
if (i<len)
c=attribs.at(++i);
}
opt.value = attribs.mid(startAttrib,endAttrib-startAttrib);
}
...
...
@@ -198,7 +198,7 @@ static void parseHtmlAttribs(const char *att)
{
}
//printf("=====> Adding option name=<%s> value=<%s>\n",
// opt
->name.data(),opt->
value.data());
// opt
.name.data(),opt.
value.data());
g_token->attribs.append(&opt);
}
}
...
...
src/dot.cpp
View file @
f781e6db
...
...
@@ -881,27 +881,25 @@ void DotGfxHierarchyTable::addClassList(ClassSDict *cl)
for
(
cli
.
toLast
();(
cd
=
cli
.
current
());
--
cli
)
{
//printf("Trying %s subClasses=%d\n",cd->name().data(),cd->subClasses()->count());
if
(
!
hasVisibleRoot
(
cd
->
baseClasses
()))
if
(
!
hasVisibleRoot
(
cd
->
baseClasses
())
&&
cd
->
isVisibleInHierarchy
()
)
// root node in the forest
{
if
(
cd
->
isVisibleInHierarchy
())
// root node in the forest
QCString
tmp_url
=
""
;
if
(
cd
->
isLinkable
())
tmp_url
=
cd
->
getReference
()
+
"$"
+
cd
->
getOutputFileBase
();
//printf("Inserting root class %s\n",cd->name().data());
DotNode
*
n
=
new
DotNode
(
m_curNodeNumber
++
,
cd
->
displayName
(),
tmp_url
.
data
());
//m_usedNodes->clear();
m_usedNodes
->
insert
(
cd
->
name
(),
n
);
m_rootNodes
->
insert
(
0
,
n
);
if
(
!
cd
->
visited
&&
cd
->
subClasses
()
->
count
()
>
0
)
{
QCString
tmp_url
=
""
;
if
(
cd
->
isLinkable
())
tmp_url
=
cd
->
getReference
()
+
"$"
+
cd
->
getOutputFileBase
();
//printf("Inserting root class %s\n",cd->name().data());
DotNode
*
n
=
new
DotNode
(
m_curNodeNumber
++
,
cd
->
displayName
(),
tmp_url
.
data
()
);
//m_usedNodes->clear();
m_usedNodes
->
insert
(
cd
->
name
(),
n
);
m_rootNodes
->
insert
(
0
,
n
);
if
(
!
cd
->
visited
&&
cd
->
subClasses
()
->
count
()
>
0
)
{
addHierarchy
(
n
,
cd
,
cd
->
visited
);
cd
->
visited
=
TRUE
;
}
addHierarchy
(
n
,
cd
,
cd
->
visited
);
cd
->
visited
=
TRUE
;
}
}
}
...
...
@@ -911,8 +909,8 @@ DotGfxHierarchyTable::DotGfxHierarchyTable()
{
m_curNodeNumber
=
0
;
m_rootNodes
=
new
QList
<
DotNode
>
;
//m_rootNodes->setAutoDelete(TRUE); // rootNodes owns the nodes
m_usedNodes
=
new
QDict
<
DotNode
>
(
1009
);
// virtualNodes only aliases nodes
m_usedNodes
=
new
QDict
<
DotNode
>
(
1009
);
m_usedNodes
->
setAutoDelete
(
TRUE
);
m_rootSubgraphs
=
new
DotNodeList
;
// build a graph with each class as a node and the inheritance relations
...
...
@@ -964,7 +962,9 @@ DotGfxHierarchyTable::DotGfxHierarchyTable()
DotGfxHierarchyTable
::~
DotGfxHierarchyTable
()
{
//printf("DotGfxHierarchyTable::~DotGfxHierarchyTable\n");
SDict
<
DotNode
>
skipNodes
(
17
);
#if 0 // TODO: delete this
SDict<DotNode> skipNodes(1009);
skipNodes.setAutoDelete(TRUE);
DotNode *n = m_rootNodes->first();
while (n)
...
...
@@ -980,6 +980,15 @@ DotGfxHierarchyTable::~DotGfxHierarchyTable()
deleteNodes(n,&skipNodes);
n=m_rootNodes->next();
}
#endif
//QDictIterator<DotNode> di(*m_usedNodes);
//DotNode *n;
//for (;(n=di.current());++di)
//{
// printf("Node %p: %s\n",n,n->label().data());
//}
delete
m_rootNodes
;
delete
m_usedNodes
;
delete
m_rootSubgraphs
;
...
...
src/doxygen.cpp
View file @
f781e6db
...
...
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <qtextcodec.h>
#include "version.h"
#include "doxygen.h"
...
...
@@ -61,6 +62,7 @@
//#include "packagedef.h"
#include "bufstr.h"
#include "commentcnv.h"
#include "cmdmapper.h"
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define popen _popen
...
...
@@ -104,8 +106,6 @@ StringDict Doxygen::tagDestinationDict(257); // all tag locations
QDict
<
void
>
Doxygen
::
expandAsDefinedDict
(
257
);
// all macros that should be expanded
QIntDict
<
MemberGroupInfo
>
Doxygen
::
memGrpInfoDict
(
1009
);
// dictionary of the member groups heading
//QIntDict<QCString> Doxygen::memberHeaderDict(1009); // dictionary of the member groups heading
//QIntDict<QCString> Doxygen::memberDocDict(1009); // dictionary of the member groups heading
PageInfo
*
Doxygen
::
mainPage
=
0
;
QTextStream
Doxygen
::
tagFile
;
...
...
@@ -3095,6 +3095,7 @@ static bool findTemplateInstanceRelation(Entry *root,
findUsedClassesForClass
(
templateRoot
,
templateClass
,
instanceClass
,
isArtificial
,
templArgs
,
templateNames
);
delete
templArgs
;
}
else
{
...
...
@@ -4468,7 +4469,6 @@ static void findMember(Entry *root,
* of the function definition before matching.
*/
argList
=
new
ArgumentList
;
argList
->
setAutoDelete
(
TRUE
);
substituteTemplatesInArgList
(
declTemplArgs
,
*
defTemplArgs
,
md
->
argumentList
(),
argList
);
...
...
@@ -7048,6 +7048,37 @@ void initDoxygen()
initPreprocessor
();
Doxygen
::
sectionDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
inputNameList
.
setAutoDelete
(
TRUE
);
Doxygen
::
memberNameSDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
functionNameSDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
hiddenClasses
.
setAutoDelete
(
TRUE
);
Doxygen
::
classSDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
pageSDict
->
setAutoDelete
(
TRUE
);
Doxygen
::
exampleSDict
->
setAutoDelete
(
TRUE
);
excludeNameDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
memGrpInfoDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
tagDestinationDict
.
setAutoDelete
(
TRUE
);
}
void
cleanUpDoxygen
()
{
delete
Doxygen
::
inputNameDict
;
delete
Doxygen
::
includeNameDict
;
delete
Doxygen
::
exampleNameDict
;
delete
Doxygen
::
imageNameDict
;
delete
Doxygen
::
dotFileNameDict
;
delete
Doxygen
::
mainPage
;
delete
Doxygen
::
pageSDict
;
delete
Doxygen
::
exampleSDict
;
delete
Doxygen
::
globalScope
;
delete
Doxygen
::
specialLists
;
cleanUpPreprocessor
();
Config
::
deleteInstance
();
QTextCodec
::
deleteAllCodecs
();
delete
theTranslator
;
delete
outputList
;
CmdMapper
::
freeInstance
();
HtmlTagMapper
::
freeInstance
();
}
void
readConfiguration
(
int
argc
,
char
**
argv
)
...
...
@@ -7093,6 +7124,7 @@ void readConfiguration(int argc, char **argv)
if
(
!
formatName
)
{
err
(
"Error:option -e is missing format specifier rtf.
\n
"
);
cleanUpDoxygen
();
exit
(
1
);
}
if
(
stricmp
(
formatName
,
"rtf"
)
==
0
)
...
...
@@ -7100,6 +7132,7 @@ void readConfiguration(int argc, char **argv)
if
(
optind
+
1
>=
argc
)
{
err
(
"Error: option
\"
-e rtf
\"
is missing an extensions file name
\n
"
);
cleanUpDoxygen
();
exit
(
1
);
}
QFile
f
;
...
...
@@ -7107,9 +7140,11 @@ void readConfiguration(int argc, char **argv)
{
RTFGenerator
::
writeExtensionsFile
(
f
);
}
cleanUpDoxygen
();
exit
(
1
);
}
err
(
"Error: option
\"
-e
\"
has invalid format specifier.
\n
"
);
cleanUpDoxygen
();
exit
(
1
);
break
;
case
'w'
:
...
...
@@ -7117,6 +7152,7 @@ void readConfiguration(int argc, char **argv)
if
(
!
formatName
)
{
err
(
"Error: option -w is missing format specifier rtf, html or latex
\n
"
);
cleanUpDoxygen
();
exit
(
1
);
}
if
(
stricmp
(
formatName
,
"rtf"
)
==
0
)
...
...
@@ -7124,6 +7160,7 @@ void readConfiguration(int argc, char **argv)
if
(
optind
+
1
>=
argc
)
{
err
(
"Error: option
\"
-w rtf
\"
is missing a style sheet file name
\n
"
);
cleanUpDoxygen
();
exit
(
1
);
}
QFile
f
;
...
...
@@ -7131,6 +7168,7 @@ void readConfiguration(int argc, char **argv)
{
RTFGenerator
::
writeStyleSheetFile
(
f
);
}
cleanUpDoxygen
();
exit
(
1
);
}
else
if
(
stricmp
(
formatName
,
"html"
)
==
0
)
...
...
@@ -7140,6 +7178,7 @@ void readConfiguration(int argc, char **argv)
if
(
!
Config
::
instance
()
->
parse
(
argv
[
optind
+
4
]))
{
err
(
"Error opening or reading configuration file %s!
\n
"
,
argv
[
optind
+
4
]);
cleanUpDoxygen
();
exit
(
1
);
}
Config
::
instance
()
->
substituteEnvironmentVars
();
...
...
@@ -7153,6 +7192,7 @@ void readConfiguration(int argc, char **argv)
if
(
optind
+
3
>=
argc
)
{
err
(
"Error: option
\"
-w html
\"
does not have enough arguments
\n
"
);
cleanUpDoxygen
();
exit
(
1
);
}
...
...
@@ -7176,7 +7216,8 @@ void readConfiguration(int argc, char **argv)
if
(
openOutputFile
(
argv
[
optind
+
3
],
f
))
{
HtmlGenerator
::
writeStyleSheetFile
(
f
);
}
}
cleanUpDoxygen
();
exit
(
0
);
}
else
if
(
stricmp
(
formatName
,
"latex"
)
==
0
)
...
...
@@ -7199,6 +7240,7 @@ void readConfiguration(int argc, char **argv)
if
(
optind
+
2
>=
argc
)
{
err
(
"Error: option
\"
-w latex
\"
does not have enough arguments
\n
"
);
cleanUpDoxygen
();
exit
(
1
);
}
...
...
@@ -7218,11 +7260,13 @@ void readConfiguration(int argc, char **argv)
{
LatexGenerator
::
writeStyleSheetFile
(
f
);
}
cleanUpDoxygen
();
exit
(
0
);
}
else
{
err
(
"Error: Illegal format specifier %s: should be one of rtf, html, or latex
\n
"
,
formatName
);
cleanUpDoxygen
();
exit
(
1
);
}
break
;
...
...
@@ -7234,6 +7278,7 @@ void readConfiguration(int argc, char **argv)
else
if
(
strcmp
(
&
argv
[
optind
][
2
],
"version"
)
==
0
)
{
msg
(
"%s
\n
"
,
versionString
);
cleanUpDoxygen
();
exit
(
0
);
}
break
;
...
...
@@ -7257,6 +7302,7 @@ void readConfiguration(int argc, char **argv)
if
(
genConfig
)
{
generateConfigFile
(
configName
,
shortList
);
cleanUpDoxygen
();
exit
(
0
);
}
...
...
@@ -7295,12 +7341,14 @@ void readConfiguration(int argc, char **argv)
if
(
!
Config
::
instance
()
->
parse
(
configName
))
{
err
(
"Error: could not open or read configuration file %s!
\n
"
,
configName
);
cleanUpDoxygen
();
exit
(
1
);
}
if
(
updateConfig
)
{
generateConfigFile
(
configName
,
shortList
,
TRUE
);
cleanUpDoxygen
();
exit
(
0
);
}
...
...
@@ -7370,8 +7418,6 @@ void readConfiguration(int argc, char **argv)
void
parseInput
()
{
Doxygen
::
classSDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
inputNameDict
=
new
FileNameDict
(
10007
);
Doxygen
::
includeNameDict
=
new
FileNameDict
(
10007
);
Doxygen
::
exampleNameDict
=
new
FileNameDict
(
1009
);
...
...
@@ -7602,6 +7648,8 @@ void parseInput()
if
(
input
.
isEmpty
())
{
err
(
"No input read, no output generated!
\n
"
);
delete
root
;
cleanUpDoxygen
();
exit
(
1
);
}
else
...
...
@@ -7628,6 +7676,8 @@ void parseInput()
{
err
(
"Error: tag OUTPUT_DIRECTORY: Output directory `%s' does not "
"exist and cannot be created
\n
"
,
outputDirectory
.
data
());
delete
root
;
cleanUpDoxygen
();
exit
(
1
);
}
else
if
(
!
Config_getBool
(
"QUIET"
))
...
...
@@ -7654,6 +7704,8 @@ void parseInput()
if
(
generateHtml
&&
!
htmlDir
.
exists
()
&&
!
htmlDir
.
mkdir
(
htmlOutput
))
{
err
(
"Could not create output directory %s
\n
"
,
htmlOutput
.
data
());
delete
root
;
cleanUpDoxygen
();
exit
(
1
);
}
...
...
@@ -7671,6 +7723,8 @@ void parseInput()
if
(
generateLatex
&&
!
latexDir
.
exists
()
&&
!
latexDir
.
mkdir
(
latexOutput
))
{
err
(
"Could not create output directory %s
\n
"
,
latexOutput
.
data
());
delete
root
;
cleanUpDoxygen
();
exit
(
1
);
}
...
...
@@ -7688,6 +7742,8 @@ void parseInput()
if
(
generateRtf
&&
!
rtfDir
.
exists
()
&&
!
rtfDir
.
mkdir
(
rtfOutput
))
{
err
(
"Could not create output directory %s
\n
"
,
rtfOutput
.
data
());
delete
root
;
cleanUpDoxygen
();
exit
(
1
);
}
...
...
@@ -7705,6 +7761,8 @@ void parseInput()
if
(
generateMan
&&
!
manDir
.
exists
()
&&
!
manDir
.
mkdir
(
manOutput
))
{
err
(
"Could not create output directory %s
\n
"
,
manOutput
.
data
());
delete
root
;
cleanUpDoxygen
();
exit
(
1
);
}
...
...
@@ -7855,6 +7913,7 @@ void generateOutput()
* Initialize output generators *
**************************************************************************/
outputList
=
new
OutputList
(
TRUE
);
if
(
Config_getBool
(
"GENERATE_HTML"
))
{
...
...
@@ -7894,6 +7953,7 @@ void generateOutput()
err
(
"Error: cannot open tag file %s for writing
\n
"
,
generateTagFile
.
data
()
);
cleanUpDoxygen
();
exit
(
1
);
}
Doxygen
::
tagFile
.
setDevice
(
tag
);
...
...
@@ -8069,5 +8129,6 @@ void generateOutput()
}
QDir
::
setCurrent
(
oldDir
);
}
cleanUpDoxygen
();
}
src/doxygen.h
View file @
f781e6db
...
...
@@ -60,40 +60,38 @@ extern QCString spaces;
class
Doxygen
{
public
:
static
ClassSDict
classSDict
;
static
ClassSDict
hiddenClasses
;
static
PageSDict
*
exampleSDict
;
static
PageSDict
*
pageSDict
;
static
PageInfo
*
mainPage
;
static
FileNameDict
*
includeNameDict
;
static
FileNameDict
*
exampleNameDict
;
static
FileNameDict
*
inputNameDict
;
static
FileNameList
inputNameList
;
static
FileNameDict
*
imageNameDict
;
static
FileNameDict
*
dotFileNameDict
;
static
QStrList
tagfileList
;
static
MemberNameSDict
memberNameSDict
;
static
MemberNameSDict
functionNameSDict
;
static
FileList
fileList
;
static
FileDict
fileDict
;
static
ClassDef
unrelatedClass
;
static
QTextStream
tagFile
;
static
SectionDict
sectionDict
;
static
StringDict
namespaceAliasDict
;
static
GroupSDict
groupSDict
;
static
NamespaceSDict
namespaceSDict
;
static
FormulaList
formulaList
;
static
FormulaDict
formulaDict
;
static
FormulaDict
formulaNameDict
;
static
StringDict
tagDestinationDict
;
static
StringDict
aliasDict
;
static
ClassSDict
classSDict
;
static
ClassSDict
hiddenClasses
;
static
PageSDict
*
exampleSDict
;
static
PageSDict
*
pageSDict
;
static
PageInfo
*
mainPage
;
static
FileNameDict
*
includeNameDict
;
static
FileNameDict
*
exampleNameDict
;
static
FileNameDict
*
inputNameDict
;
static
FileNameList
inputNameList
;
static
FileNameDict
*
imageNameDict
;
static
FileNameDict
*
dotFileNameDict
;
static
QStrList
tagfileList
;
static
MemberNameSDict
memberNameSDict
;
static
MemberNameSDict
functionNameSDict
;
static
FileList
fileList
;
static
FileDict
fileDict
;
static
ClassDef
unrelatedClass
;
static
QTextStream
tagFile
;
static
SectionDict
sectionDict
;
static
StringDict
namespaceAliasDict
;
static
GroupSDict
groupSDict
;
static
NamespaceSDict
namespaceSDict
;
static
FormulaList
formulaList
;
static
FormulaDict
formulaDict
;
static
FormulaDict
formulaNameDict
;
static
StringDict
tagDestinationDict
;
static
StringDict
aliasDict
;
static
QIntDict
<
MemberGroupInfo
>
memGrpInfoDict
;
//static QIntDict<QCString> memberHeaderDict; // dictionary of the member groups heading
//static QIntDict<QCString> memberDocDict; // dictionary of the member groups heading
static
QDict
<
void
>
expandAsDefinedDict
;
static
NamespaceDef
*
globalScope
;
static
QDict
<
RefList
>
*
specialLists
;
// array of special lists: todo, test, bug, deprecated ...
static
QCString
htmlFileExtension
;
static
QDict
<
void
>
expandAsDefinedDict
;
static
NamespaceDef
*
globalScope
;
static
QDict
<
RefList
>
*
specialLists
;
// array of special lists: todo, test, bug, deprecated ...
static
QCString
htmlFileExtension
;
};
void
initDoxygen
();
...
...
src/entry.h
View file @
f781e6db
...
...
@@ -103,7 +103,7 @@ class ArgumentList : public QList<Argument>
ArgumentList
()
:
QList
<
Argument
>
(),
constSpecifier
(
FALSE
),
volatileSpecifier
(
FALSE
),
pureSpecifier
(
FALSE
)
{}
pureSpecifier
(
FALSE
)
{
setAutoDelete
(
TRUE
);
}
/*! Destroys the argument list */
~
ArgumentList
()
{}
bool
hasDocumentation
()
const
;
...
...
src/filedef.cpp
View file @
f781e6db
...
...
@@ -73,6 +73,8 @@ FileDef::~FileDef()
delete
classSDict
;
delete
includeDict
;
delete
includeList
;
delete
includedByDict
;
delete
includedByList
;
delete
namespaceSDict
;
delete
srcDefDict
;
delete
srcMemberDict
;
...
...
src/filename.cpp
View file @
f781e6db
...
...
@@ -20,6 +20,7 @@
FileName
::
FileName
(
const
char
*
fn
,
const
char
*
n
)
:
FileList
()
{
setAutoDelete
(
TRUE
);
fName
=
fn
;
name
=
n
;
}
...
...
src/index.cpp
View file @
f781e6db
...
...
@@ -1399,7 +1399,7 @@ void writeAlphabeticalClassList(OutputList &ol)
{
QCString
namesp
;
if
(
cd
->
getNamespaceDef
())
namesp
=
cd
->
getNamespaceDef
()
->
displayName
();
QCString
cname
=
cd
->
display
Name
();
QCString
cname
=
cd
->
class
Name
();
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
0
,
cname
);
...
...
src/instdox.cpp
View file @
f781e6db
...
...
@@ -127,7 +127,7 @@ void writeInstallScript()
t
<<
"}
\n
"
;
t
<<
"
\n
"
;
t
<<
"if ( ! @files ) {
\n
"
;
t
<<
" print STDERR
\"
Warning: No input files given and non found!
\\
n
\"
;
\n
"
;
t
<<
" print STDERR
\"
Warning: No input files given and non
e
found!
\\
n
\"
;
\n
"
;
t
<<
"}
\n
"
;
t
<<
"
\n
"
;
t
<<
"foreach $f (@files)
\n
"
;
...
...
src/membername.cpp
View file @
f781e6db
...
...
@@ -23,6 +23,7 @@
MemberName
::
MemberName
(
const
char
*
n
)
:
QList
<
MemberDef
>
()
{
name
=
n
;
setAutoDelete
(
TRUE
);
}
MemberName
::~
MemberName
()
...
...
src/page.h
View file @
f781e6db
...
...
@@ -115,7 +115,7 @@ class PageSDict : public SDict<PageInfo>
{
public
:
PageSDict
(
int
size
)
:
SDict
<
PageInfo
>
(
size
)
{}
~
PageSDict
()
{}
virtual
~
PageSDict
()
{}
int
compareItems
(
GCI
i1
,
GCI
i2
)
{
return
stricmp
(((
PageInfo
*
)
i1
)
->
name
,((
PageInfo
*
)
i2
)
->
name
);
...
...
src/pngenc.cpp
View file @
f781e6db
...
...
@@ -106,6 +106,7 @@ void PngEncoder::write(const char *name)
PNG_COLOR_TYPE_PALETTE
,
PNG_INTERLACE_NONE
,
PNG_COMPRESSION_TYPE_BASE
,
PNG_FILTER_TYPE_BASE
);
free
(
png_palette
);
ti
[
0
]
=
transIndex
;
png_set_tRNS
(
png_ptr
,
info_ptr
,
ti
,
1
,
NULL
);
rows
=
(
unsigned
char
**
)
calloc
(
sizeof
(
unsigned
char
*
),
height
);
...
...
src/pre.h
View file @
f781e6db
...
...
@@ -25,6 +25,7 @@
class
BufStr
;
void
initPreprocessor
();
void
cleanUpPreprocessor
();
void
addSearchDir
(
const
char
*
dir
);
void
preprocessFile
(
const
char
*
fileName
,
BufStr
&
output
);
...
...
src/pre.l
View file @
f781e6db
...
...
@@ -1919,7 +1919,7 @@ void initPreprocessor()
g_fileDefineDict = new DefineDict(1009);
}
void clean
u
pPreprocessor()
void clean
U
pPreprocessor()
{
//delete fileDefineCache;
delete g_fileDefineDict; g_fileDefineDict=0;
...
...
src/scanner.l
View file @
f781e6db
...
...
@@ -2733,6 +2733,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
lastCContext = YY_START;
BEGIN(SkipCxxComment);
}
<SkipInits>; {
warn(yyFileName,yyLineNr,
"Warning: Found ';' while parsing initializer list! "
"(doxygen could be confused by a macro call without semicolon)"
);
BEGIN( FindMembers );
}
<SkipInits,SkipCurly,SkipCurlyCpp>. {
//addToBody(yytext);
}
...
...
src/sortdict.h
View file @
f781e6db
...
...
@@ -74,7 +74,7 @@ class SList : public QList<T>
{
public
:
SList
(
SDict
<
T
>
*
owner
)
:
m_owner
(
owner
)
{}
~
SList
()
{}
virtual
~
SList
()
{}
int
compareItems
(
GCI
item1
,
GCI
item2
)
{
return
m_owner
->
compareItems
(
item1
,
item2
);
...
...
@@ -280,7 +280,7 @@ class SIntList : public QList<T>
{
public
:
SIntList
(
SIntDict
<
T
>
*
owner
)
:
m_owner
(
owner
)
{}
~
SIntList
()
{}
virtual
~
SIntList
()
{}
int
compareItems
(
GCI
item1
,
GCI
item2
)
{
return
m_owner
->
compareItems
(
item1
,
item2
);
...
...
src/tagreader.cpp
View file @
f781e6db
...
...
@@ -186,6 +186,8 @@ class TagFileParser : public QXmlDefaultHandler
m_endElementHandlers
(
17
),
m_tagName
(
tagName
)
{
m_startElementHandlers
.
setAutoDelete
(
TRUE
);
m_endElementHandlers
.
setAutoDelete
(
TRUE
);
}
void
startCompound
(
const
QXmlAttributes
&
attrib
)
...
...
@@ -305,7 +307,8 @@ class TagFileParser : public QXmlDefaultHandler
void
endMember
()
{
m_state
=
*
m_stateStack
.
pop
();
m_state
=
*
m_stateStack
.
top
();
m_stateStack
.
remove
();
switch
(
m_state
)
{
case
InClass
:
m_curClass
->
members
.
append
(
m_curMember
);
break
;
...
...
@@ -884,6 +887,7 @@ void TagFileParser::buildMemberList(Entry *ce,QList<TagMemberInfo> &members)
me
->
args
=
tmi
->
arglist
;
if
(
!
me
->
args
.
isEmpty
())
{
delete
me
->
argList
;
me
->
argList
=
new
ArgumentList
;
stringToArgumentList
(
me
->
args
,
me
->
argList
);
}
...
...
@@ -1006,11 +1010,16 @@ void TagFileParser::buildLists(Entry *root)
// transfer base class list
if
(
tci
->
bases
)
{
delete
ce
->
extends
;
ce
->
extends
=
tci
->
bases
;
tci
->
bases
=
0
;
}
if
(
tci
->
templateArguments
)
{
if
(
ce
->
tArgLists
==
0
)
ce
->
tArgLists
=
new
QList
<
ArgumentList
>
;
if
(
ce
->
tArgLists
==
0
)
{
ce
->
tArgLists
=
new
QList
<
ArgumentList
>
;
ce
->
tArgLists
->
setAutoDelete
(
TRUE
);
}
ArgumentList
*
al
=
new
ArgumentList
;
ce
->
tArgLists
->
append
(
al
);
...
...
src/treeview.h
View file @
f781e6db
...
...
@@ -103,13 +103,20 @@
"
\n
"
"function hideFolder()
\n
"
"{
\n
"
" if (browserVersion == 1 || browserVersion == 3) {
\n
"
" if (browserVersion == 1 || browserVersion == 3)
\n
"
" {
\n
"
" if (this.navObj.style.display ==
\"
none
\"
)
\n
"
" return
\n
"
" {
\n
"
" return
\n
"
" }
\n
"
" this.navObj.style.display =
\"
none
\"
\n
"
" } else {
\n
"
" }
\n
"
" else
\n
"
" {
\n
"
" if (this.navObj.visibility ==
\"
hidden
\"
)
\n
"
" {
\n
"
" return
\n
"
" }
\n
"
" this.navObj.visibility =
\"
hidden
\"
\n
"
" }
\n
"
"
\n
"
...
...
@@ -118,11 +125,11 @@
"
\n
"
"function initializeFolder(level, lastNode, leftSide)
\n
"
"{
\n
"
"var j=0
\n
"
"var i=0
\n
"
"var numberOfFolders
\n
"
"var numberOfDocs
\n
"
"var nc
\n
"
"
var j=0
\n
"
"
var i=0
\n
"
"
var numberOfFolders
\n
"
"
var numberOfDocs
\n
"
"
var nc
\n
"
"
\n
"
" nc = this.nChildren
\n
"
"
\n
"
...
...
@@ -166,9 +173,12 @@
"
\n
"
"function drawFolder(leftSide)
\n
"
"{
\n
"
" if (browserVersion == 2) {
\n
"
" if (!doc.yPos)
\n
"
" if (browserVersion == 2)
\n
"
" {
\n
"
" if (!doc.yPos)
\n
"
" {
\n
"
" doc.yPos=8
\n
"
" }
\n
"
" doc.write(
\"
<layer id='folder
\"
+ this.id +
\"
' top=
\"
+ doc.yPos +
\"
visibility=hidden>
\"
)
\n
"
" }
\n
"
" if (browserVersion == 3)
\n
"
...
...
@@ -178,7 +188,9 @@
"
\n
"
" doc.write(
\"\\
n<table
\"
)
\n
"
" if (browserVersion == 1)
\n
"
" {
\n
"
" doc.write(
\"
id='folder
\"
+ this.id +
\"
' style='position:block;'
\"
)
\n
"
" }
\n
"
" doc.write(
\"
border=0 cellspacing=0 cellpadding=0>
\"
)
\n
"
" doc.write(
\"\\
n<tr><td>
\"
)
\n
"
" doc.write(leftSide)
\n
"
...
...
@@ -192,7 +204,9 @@
" doc.write(this.desc +
\"
</a>
\"
)
\n
"
" }
\n
"
" else
\n
"
" {
\n
"
" doc.write(this.desc)
\n
"
" }
\n
"
" if (this.tagName!=
\"\"
)
\n
"
" {
\n
"
" doc.write(
\"
[external]
\"
)
\n
"
...
...
@@ -200,23 +214,30 @@
" doc.write(
\"
</td>
\"
)
\n
"
" doc.write(
\"\\
n</table>
\\
n
\"
)
\n
"
"
\n
"
" if (browserVersion == 2) {
\n
"
" if (browserVersion == 2)
\n
"
" {
\n
"
" doc.write(
\"
</layer>
\"
)
\n
"
" }
\n
"
" if (browserVersion == 3) {
\n
"
" if (browserVersion == 3)
\n
"
" {
\n
"
" doc.write(
\"
</div>
\"
)
\n
"
" }
\n
"
"
\n
"
" if (browserVersion == 1) {
\n
"
" if (browserVersion == 1)
\n
"
" {
\n
"
" this.navObj = doc.all[
\"
folder
\"
+this.id]
\n
"
" this.iconImg = doc.all[
\"
folderIcon
\"
+this.id]
\n
"
" this.nodeImg = doc.all[
\"
nodeIcon
\"
+this.id]
\n
"
" } else if (browserVersion == 2) {
\n
"
" }
\n
"
" else if (browserVersion == 2)
\n
"
" {
\n
"
" this.navObj = doc.layers[
\"
folder
\"
+this.id]
\n
"
" this.iconImg = this.navObj.document.images[
\"
folderIcon
\"
+this.id]
\n
"
" this.nodeImg = this.navObj.document.images[
\"
nodeIcon
\"
+this.id]
\n
"
" doc.yPos=doc.yPos+this.navObj.clip.height
\n
"
" } else if (browserVersion == 3) {
\n
"
" }
\n
"
" else if (browserVersion == 3)
\n
"
" {
\n
"
" this.navObj = doc.getElementById(
\"
folder
\"
+this.id)
\n
"
" this.iconImg = doc.images.namedItem(
\"
folderIcon
\"
+this.id)
\n
"
" this.nodeImg = doc.images.namedItem(
\"
nodeIcon
\"
+this.id)
\n
"
...
...
@@ -303,6 +324,7 @@
" this.createIndex()
\n
"
"
\n
"
" if (level>0)
\n
"
" {
\n
"
" if (lastNode) //the last 'brother' in the children array
\n
"
" {
\n
"
" this.renderOb(leftSide +
\"
<img src='ftv2lastnode.png' width=16 height=22>
\"
)
\n
"
...
...
@@ -313,20 +335,29 @@
" this.renderOb(leftSide +
\"
<img src='ftv2node.png' width=16 height=22>
\"
)
\n
"
" leftSide = leftSide +
\"
<img src='ftv2vertline.png' width=16 height=22>
\"
\n
"
" }
\n
"
" }
\n
"
" else
\n
"
" {
\n
"
" this.renderOb(
\"\"
)
\n
"
" }
\n
"
"}
\n
"
"
\n
"
"function drawItem(leftSide)
\n
"
"{
\n
"
" if (browserVersion == 2)
\n
"
" doc.write(
\"
<layer id='item
\"
+ this.id +
\"
' top=
\"
+ doc.yPos +
\"
visibility=hidden>
\"
)
\n
"
" if (browserVersion == 3)
\n
"
" doc.write(
\"
<div id='item
\"
+ this.id +
\"
' style='display:block;'>
\"
)
\n
"
" if (browserVersion == 2)
\n
"
" {
\n
"
" doc.write(
\"
<layer id='item
\"
+ this.id +
\"
' top=
\"
+ doc.yPos +
\"
visibility=hidden>
\"
)
\n
"
" }
\n
"
" else if (browserVersion == 3)
\n
"
" {
\n
"
" doc.write(
\"
<div id='item
\"
+ this.id +
\"
' style='display:block;'>
\"
)
\n
"
" }
\n
"
"
\n
"
" doc.write(
\"\\
n<table
\"
)
\n
"
" if (browserVersion == 1)
\n
"
" doc.write(
\"
id='item
\"
+ this.id +
\"
' style='position:block;'
\"
)
\n
"
" if (browserVersion == 1)
\n
"
" {
\n
"
" doc.write(
\"
id='item
\"
+ this.id +
\"
' style='position:block;'
\"
)
\n
"
" }
\n
"
" doc.write(
\"
border=0 cellspacing=0 cellpadding=0>
\\
n
\"
)
\n
"
" doc.write(
\"
<tr><td>
\"
)
\n
"
" doc.write(leftSide)
\n
"
...
...
@@ -342,9 +373,13 @@
" }
\n
"
" doc.write(
\"
</td>
\\
n<td valign=middle nowrap>
\"
)
\n
"
" if (USETEXTLINKS && this.link!=
\"\"
)
\n
"
" {
\n
"
" doc.write(
\"
<a href=
\"
+ this.link +
\"
>
\"
+ this.desc +
\"
</a>
\"
)
\n
"
" }
\n
"
" else
\n
"
" {
\n
"
" doc.write(this.desc)
\n
"
" }
\n
"
" if (this.tagName!=
\"\"
)
\n
"
" {
\n
"
" doc.write(
\"
[external]
\"
);
\n
"
...
...
@@ -352,18 +387,27 @@
" doc.write(
\"\\
n</table>
\\
n
\"
)
\n
"
"
\n
"
" if (browserVersion == 2)
\n
"
" {
\n
"
" doc.write(
\"
</layer>
\"
)
\n
"
" if (browserVersion == 3)
\n
"
" }
\n
"
" else if (browserVersion == 3)
\n
"
" {
\n
"
" doc.write(
\"
</div>
\"
)
\n
"
" }
\n
"
"
\n
"
" if (browserVersion == 1) {
\n
"
" if (browserVersion == 1)
\n
"
" {
\n
"
" this.navObj = doc.all[
\"
item
\"
+this.id]
\n
"
" this.iconImg = doc.all[
\"
itemIcon
\"
+this.id]
\n
"
" } else if (browserVersion == 2) {
\n
"
" }
\n
"
" else if (browserVersion == 2)
\n
"
" {
\n
"
" this.navObj = doc.layers[
\"
item
\"
+this.id]
\n
"
" this.iconImg = this.navObj.document.images[
\"
itemIcon
\"
+this.id]
\n
"
" doc.yPos=doc.yPos+this.navObj.clip.height
\n
"
" } else if (browserVersion == 3) {
\n
"
" }
\n
"
" else if (browserVersion == 3)
\n
"
" {
\n
"
" this.navObj = doc.getElementById(
\"
item
\"
+this.id)
\n
"
" this.iconImg = doc.images.namedItem(
\"
itemIcon
\"
+this.id)
\n
"
" }
\n
"
...
...
@@ -376,9 +420,13 @@
"function display()
\n
"
"{
\n
"
" if (browserVersion == 1 || browserVersion == 3)
\n
"
" {
\n
"
" this.navObj.style.display =
\"
block
\"
\n
"
" }
\n
"
" else
\n
"
" this.navObj.visibility =
\"
show
\"
\n
"
" {
\n
"
" this.navObj.visibility =
\"
show
\"\n
"
" }
\n
"
"}
\n
"
"
\n
"
"function createEntryIndex()
\n
"
...
...
@@ -429,18 +477,49 @@
" clickedFolder.setState(!state) //open<->close
\n
"
"}
\n
"
"
\n
"
"function preLoadIcons()
\n
"
"{
\n
"
" var auxImg
\n
"
" auxImg = new Image();
\n
"
" auxImg.src =
\"
ftv2blank.png
\"
;
\n
"
" auxImg.src =
\"
ftv2doc.png
\"
;
\n
"
" auxImg.src =
\"
ftv2folderclosed.png
\"
;
\n
"
" auxImg.src =
\"
ftv2folderopen.png
\"
;
\n
"
" auxImg.src =
\"
ftv2lastnode.png
\"
;
\n
"
" auxImg.src =
\"
ftv2link.png
\"
;
\n
"
" auxImg.src =
\"
ftv2mlastnode.png
\"
;
\n
"
" auxImg.src =
\"
ftv2mnode.png
\"
;
\n
"
" auxImg.src =
\"
ftv2node.png
\"
;
\n
"
" auxImg.src =
\"
ftv2plastnode.png
\"
;
\n
"
" auxImg.src =
\"
ftv2pnode.png
\"
;
\n
"
" auxImg.src =
\"
ftv2vertline.png
\"
;
\n
"
"}
\n
"
"
\n
"
"function initializeDocument()
\n
"
"{
\n
"
" doc = document;
\n
"
" if (doc.all)
\n
"
" browserVersion = 1 //IE4
\n
"
" else
\n
"
" if (doc.layers)
\n
"
" browserVersion = 2 //NS4
\n
"
" else if(navigator.userAgent.toLowerCase().indexOf('gecko') != -1)
\n
"
" browserVersion = 3 //mozilla
\n
"
" else
\n
"
" browserVersion = 0 //other
\n
"
" preLoadIcons()
\n
"
"
\n
"
" var ua = window.navigator.userAgent.toLowerCase();
\n
"
" if ((ua.indexOf('msie')!=-1) && (navigator.version>=4))
\n
"
" {
\n
"
" browserVersion = 1 // IE >= 4.x
\n
"
" }
\n
"
" else if (ua.indexOf('opera')!=-1)
\n
"
" {
\n
"
" browserVersion = 3; // Opera
\n
"
" }
\n
"
" else if (ua.indexOf('gecko')!=-1)
\n
"
" {
\n
"
" browserVersion = 3; // NS6 or Mozilla
\n
"
" }
\n
"
" else if (ua.indexOf('mozilla')!=-1)
\n
"
" {
\n
"
" browserVersion = 2; // NS4
\n
"
" }
\n
"
" else
\n
"
" {
\n
"
" browserVersion = 0; // unknown or old browser
\n
"
" }
\n
"
"
\n
"
" foldersTree.initialize(0, 1,
\"\"
)
\n
"
" foldersTree.display()
\n
"
...
...
@@ -460,6 +539,7 @@
"// Auxiliary Functions for Folder-Treee backward compatibility
\n
"
"// *********************************************************
\n
"
"
\n
"
"
\n
"
"function gFld(description, tagName, hreference)
\n
"
"{
\n
"
" folder = new Folder(description, tagName, hreference)
\n
"
...
...
@@ -492,9 +572,10 @@
"// Global variables
\n
"
"// ****************
\n
"
"
\n
"
"USETEXTLINKS = 1
\n
"
"indexOfEntries = new Array
\n
"
"nEntries = 0
\n
"
"doc = document
\n
"
"browserVersion = 0
\n
"
"selectedFolder=0
\n
"
"var USETEXTLINKS = 1
\n
"
"var indexOfEntries = new Array
\n
"
"var nEntries = 0
\n
"
"var doc = document
\n
"
"var browserVersion = 0
\n
"
"var selectedFolder=0
\n
"
"
\n
"
src/treeview.js
View file @
f781e6db
...
...
@@ -103,13 +103,20 @@ function propagateChangesInState(folder)
function
hideFolder
()
{
if
(
browserVersion
==
1
||
browserVersion
==
3
)
{
if
(
browserVersion
==
1
||
browserVersion
==
3
)
{
if
(
this
.
navObj
.
style
.
display
==
"none"
)
return
{
return
}
this
.
navObj
.
style
.
display
=
"none"
}
else
{
}
else
{
if
(
this
.
navObj
.
visibility
==
"hidden"
)
{
return
}
this
.
navObj
.
visibility
=
"hidden"
}
...
...
@@ -118,11 +125,11 @@ function hideFolder()
function
initializeFolder
(
level
,
lastNode
,
leftSide
)
{
var
j
=
0
var
i
=
0
var
numberOfFolders
var
numberOfDocs
var
nc
var
j
=
0
var
i
=
0
var
numberOfFolders
var
numberOfDocs
var
nc
nc
=
this
.
nChildren
...
...
@@ -166,9 +173,12 @@ var nc
function
drawFolder
(
leftSide
)
{
if
(
browserVersion
==
2
)
{
if
(
!
doc
.
yPos
)
if
(
browserVersion
==
2
)
{
if
(
!
doc
.
yPos
)
{
doc
.
yPos
=
8
}
doc
.
write
(
"<layer id='folder"
+
this
.
id
+
"' top="
+
doc
.
yPos
+
" visibility=hidden>"
)
}
if
(
browserVersion
==
3
)
...
...
@@ -178,7 +188,9 @@ function drawFolder(leftSide)
doc
.
write
(
"
\n
<table "
)
if
(
browserVersion
==
1
)
{
doc
.
write
(
" id='folder"
+
this
.
id
+
"' style='position:block;' "
)
}
doc
.
write
(
" border=0 cellspacing=0 cellpadding=0>"
)
doc
.
write
(
"
\n
<tr><td>"
)
doc
.
write
(
leftSide
)
...
...
@@ -192,7 +204,9 @@ function drawFolder(leftSide)
doc
.
write
(
this
.
desc
+
"</a>"
)
}
else
{
doc
.
write
(
this
.
desc
)
}
if
(
this
.
tagName
!=
""
)
{
doc
.
write
(
" [external]"
)
...
...
@@ -200,23 +214,30 @@ function drawFolder(leftSide)
doc
.
write
(
"</td>"
)
doc
.
write
(
"
\n
</table>
\n
"
)
if
(
browserVersion
==
2
)
{
if
(
browserVersion
==
2
)
{
doc
.
write
(
"</layer>"
)
}
if
(
browserVersion
==
3
)
{
if
(
browserVersion
==
3
)
{
doc
.
write
(
"</div>"
)
}
if
(
browserVersion
==
1
)
{
if
(
browserVersion
==
1
)
{
this
.
navObj
=
doc
.
all
[
"folder"
+
this
.
id
]
this
.
iconImg
=
doc
.
all
[
"folderIcon"
+
this
.
id
]
this
.
nodeImg
=
doc
.
all
[
"nodeIcon"
+
this
.
id
]
}
else
if
(
browserVersion
==
2
)
{
}
else
if
(
browserVersion
==
2
)
{
this
.
navObj
=
doc
.
layers
[
"folder"
+
this
.
id
]
this
.
iconImg
=
this
.
navObj
.
document
.
images
[
"folderIcon"
+
this
.
id
]
this
.
nodeImg
=
this
.
navObj
.
document
.
images
[
"nodeIcon"
+
this
.
id
]
doc
.
yPos
=
doc
.
yPos
+
this
.
navObj
.
clip
.
height
}
else
if
(
browserVersion
==
3
)
{
}
else
if
(
browserVersion
==
3
)
{
this
.
navObj
=
doc
.
getElementById
(
"folder"
+
this
.
id
)
this
.
iconImg
=
doc
.
images
.
namedItem
(
"folderIcon"
+
this
.
id
)
this
.
nodeImg
=
doc
.
images
.
namedItem
(
"nodeIcon"
+
this
.
id
)
...
...
@@ -303,6 +324,7 @@ function initializeItem(level, lastNode, leftSide)
this
.
createIndex
()
if
(
level
>
0
)
{
if
(
lastNode
)
//the last 'brother' in the children array
{
this
.
renderOb
(
leftSide
+
"<img src='ftv2lastnode.png' width=16 height=22>"
)
...
...
@@ -313,20 +335,29 @@ function initializeItem(level, lastNode, leftSide)
this
.
renderOb
(
leftSide
+
"<img src='ftv2node.png' width=16 height=22>"
)
leftSide
=
leftSide
+
"<img src='ftv2vertline.png' width=16 height=22>"
}
}
else
{
this
.
renderOb
(
""
)
}
}
function
drawItem
(
leftSide
)
{
if
(
browserVersion
==
2
)
doc
.
write
(
"<layer id='item"
+
this
.
id
+
"' top="
+
doc
.
yPos
+
" visibility=hidden>"
)
if
(
browserVersion
==
3
)
doc
.
write
(
"<div id='item"
+
this
.
id
+
"' style='display:block;'>"
)
if
(
browserVersion
==
2
)
{
doc
.
write
(
"<layer id='item"
+
this
.
id
+
"' top="
+
doc
.
yPos
+
" visibility=hidden>"
)
}
else
if
(
browserVersion
==
3
)
{
doc
.
write
(
"<div id='item"
+
this
.
id
+
"' style='display:block;'>"
)
}
doc
.
write
(
"
\n
<table "
)
if
(
browserVersion
==
1
)
doc
.
write
(
" id='item"
+
this
.
id
+
"' style='position:block;' "
)
if
(
browserVersion
==
1
)
{
doc
.
write
(
" id='item"
+
this
.
id
+
"' style='position:block;' "
)
}
doc
.
write
(
" border=0 cellspacing=0 cellpadding=0>
\n
"
)
doc
.
write
(
"<tr><td>"
)
doc
.
write
(
leftSide
)
...
...
@@ -342,9 +373,13 @@ function drawItem(leftSide)
}
doc
.
write
(
"</td>
\n
<td valign=middle nowrap>"
)
if
(
USETEXTLINKS
&&
this
.
link
!=
""
)
{
doc
.
write
(
"<a href="
+
this
.
link
+
">"
+
this
.
desc
+
"</a>"
)
}
else
{
doc
.
write
(
this
.
desc
)
}
if
(
this
.
tagName
!=
""
)
{
doc
.
write
(
" [external]"
);
...
...
@@ -352,18 +387,27 @@ function drawItem(leftSide)
doc
.
write
(
"
\n
</table>
\n
"
)
if
(
browserVersion
==
2
)
{
doc
.
write
(
"</layer>"
)
if
(
browserVersion
==
3
)
}
else
if
(
browserVersion
==
3
)
{
doc
.
write
(
"</div>"
)
}
if
(
browserVersion
==
1
)
{
if
(
browserVersion
==
1
)
{
this
.
navObj
=
doc
.
all
[
"item"
+
this
.
id
]
this
.
iconImg
=
doc
.
all
[
"itemIcon"
+
this
.
id
]
}
else
if
(
browserVersion
==
2
)
{
}
else
if
(
browserVersion
==
2
)
{
this
.
navObj
=
doc
.
layers
[
"item"
+
this
.
id
]
this
.
iconImg
=
this
.
navObj
.
document
.
images
[
"itemIcon"
+
this
.
id
]
doc
.
yPos
=
doc
.
yPos
+
this
.
navObj
.
clip
.
height
}
else
if
(
browserVersion
==
3
)
{
}
else
if
(
browserVersion
==
3
)
{
this
.
navObj
=
doc
.
getElementById
(
"item"
+
this
.
id
)
this
.
iconImg
=
doc
.
images
.
namedItem
(
"itemIcon"
+
this
.
id
)
}
...
...
@@ -376,9 +420,13 @@ function drawItem(leftSide)
function
display
()
{
if
(
browserVersion
==
1
||
browserVersion
==
3
)
{
this
.
navObj
.
style
.
display
=
"block"
}
else
this
.
navObj
.
visibility
=
"show"
{
this
.
navObj
.
visibility
=
"show"
}
}
function
createEntryIndex
()
...
...
@@ -429,18 +477,49 @@ function clickOnNode(folderId)
clickedFolder
.
setState
(
!
state
)
//open<->close
}
function
preLoadIcons
()
{
var
auxImg
auxImg
=
new
Image
();
auxImg
.
src
=
"ftv2blank.png"
;
auxImg
.
src
=
"ftv2doc.png"
;
auxImg
.
src
=
"ftv2folderclosed.png"
;
auxImg
.
src
=
"ftv2folderopen.png"
;
auxImg
.
src
=
"ftv2lastnode.png"
;
auxImg
.
src
=
"ftv2link.png"
;
auxImg
.
src
=
"ftv2mlastnode.png"
;
auxImg
.
src
=
"ftv2mnode.png"
;
auxImg
.
src
=
"ftv2node.png"
;
auxImg
.
src
=
"ftv2plastnode.png"
;
auxImg
.
src
=
"ftv2pnode.png"
;
auxImg
.
src
=
"ftv2vertline.png"
;
}
function
initializeDocument
()
{
doc
=
document
;
if
(
doc
.
all
)
browserVersion
=
1
//IE4
else
if
(
doc
.
layers
)
browserVersion
=
2
//NS4
else
if
(
navigator
.
userAgent
.
toLowerCase
().
indexOf
(
'gecko'
)
!=
-
1
)
browserVersion
=
3
//mozilla
else
browserVersion
=
0
//other
preLoadIcons
()
var
ua
=
window
.
navigator
.
userAgent
.
toLowerCase
();
if
((
ua
.
indexOf
(
'msie'
)
!=-
1
)
&&
(
navigator
.
version
>=
4
))
{
browserVersion
=
1
// IE >= 4.x
}
else
if
(
ua
.
indexOf
(
'opera'
)
!=-
1
)
{
browserVersion
=
3
;
// Opera
}
else
if
(
ua
.
indexOf
(
'gecko'
)
!=-
1
)
{
browserVersion
=
3
;
// NS6 or Mozilla
}
else
if
(
ua
.
indexOf
(
'mozilla'
)
!=-
1
)
{
browserVersion
=
2
;
// NS4
}
else
{
browserVersion
=
0
;
// unknown or old browser
}
foldersTree
.
initialize
(
0
,
1
,
""
)
foldersTree
.
display
()
...
...
@@ -460,6 +539,7 @@ function initializeDocument()
// Auxiliary Functions for Folder-Treee backward compatibility
// *********************************************************
function
gFld
(
description
,
tagName
,
hreference
)
{
folder
=
new
Folder
(
description
,
tagName
,
hreference
)
...
...
@@ -492,9 +572,10 @@ function insDoc(parentFolder, document)
// Global variables
// ****************
USETEXTLINKS
=
1
indexOfEntries
=
new
Array
nEntries
=
0
doc
=
document
browserVersion
=
0
selectedFolder
=
0
var
USETEXTLINKS
=
1
var
indexOfEntries
=
new
Array
var
nEntries
=
0
var
doc
=
document
var
browserVersion
=
0
var
selectedFolder
=
0
src/util.cpp
View file @
f781e6db
...
...
@@ -766,6 +766,9 @@ void linkifyText(const TextGeneratorIntf &out,const char *scName,const char *nam
// );
// check if `word' is a documented class name
if
(
!
word
.
isEmpty
()
&&
!
(
isdigit
(
word
.
at
(
0
))
||
word
.
at
(
0
)
==
'-'
)
&&
// do not try to link digits
// (saves a lot of time for large arrays)
!
rightScopeMatch
(
word
,
searchName
)
&&
!
rightScopeMatch
(
scopeName
,
word
)
)
...
...
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