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
2ddfaa1d
Commit
2ddfaa1d
authored
Mar 07, 2008
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.5.5-20080307
parent
b8ff6878
Changes
35
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
605 additions
and
535 deletions
+605
-535
INSTALL
INSTALL
+2
-2
README
README
+2
-2
doxywizard.cpp
addon/doxywizard/doxywizard.cpp
+14
-14
doxywizard.h
addon/doxywizard/doxywizard.h
+3
-3
inputstring.cpp
addon/doxywizard/inputstring.cpp
+10
-7
configure
configure
+70
-10
config.doc
doc/config.doc
+13
-4
index.doc
doc/index.doc
+1
-1
install.doc
doc/install.doc
+3
-2
language.doc
doc/language.doc
+15
-15
translator_report.txt
doc/translator_report.txt
+10
-199
qfiledefs_p.h
qtools/qfiledefs_p.h
+1
-2
config.l
src/config.l
+19
-7
docparser.cpp
src/docparser.cpp
+1
-0
docsets.cpp
src/docsets.cpp
+1
-2
doctokenizer.l
src/doctokenizer.l
+1
-1
doxygen.cpp
src/doxygen.cpp
+46
-47
doxygen_css.h
src/doxygen_css.h
+25
-0
fortranscanner.l
src/fortranscanner.l
+3
-3
ftvhelp.cpp
src/ftvhelp.cpp
+144
-132
ftvhelp.h
src/ftvhelp.h
+19
-8
groupdef.h
src/groupdef.h
+2
-1
htmlgen.cpp
src/htmlgen.cpp
+8
-8
htmlhelp.cpp
src/htmlhelp.cpp
+9
-2
index.cpp
src/index.cpp
+122
-36
latexgen.cpp
src/latexgen.cpp
+1
-2
libdoxygen.t
src/libdoxygen.t
+6
-6
memberdef.cpp
src/memberdef.cpp
+1
-1
memberlist.cpp
src/memberlist.cpp
+7
-2
rtfdocvisitor.cpp
src/rtfdocvisitor.cpp
+1
-1
rtfgen.cpp
src/rtfgen.cpp
+1
-1
scanner.l
src/scanner.l
+23
-4
translator_de.h
src/translator_de.h
+4
-4
util.cpp
src/util.cpp
+15
-6
util.h
src/util.h
+2
-0
No files found.
INSTALL
View file @
2ddfaa1d
DOXYGEN Version 1.5.5
DOXYGEN Version 1.5.5
-20080307
Please read the installation section of the manual
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
(http://www.doxygen.org/install.html) for instructions.
--------
--------
Dimitri van Heesch (
10 February
2008)
Dimitri van Heesch (
07 March
2008)
README
View file @
2ddfaa1d
DOXYGEN Version 1.5.5
DOXYGEN Version 1.5.5
_20080307
Please read INSTALL for compilation instructions.
Please read INSTALL for compilation instructions.
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (
10 February
2008)
Dimitri van Heesch (dimitri@stack.nl) (
07 March
2008)
addon/doxywizard/doxywizard.cpp
View file @
2ddfaa1d
...
@@ -506,8 +506,8 @@ Step4::Step4(QWidget *parent) : QWidget(parent,"Step4")
...
@@ -506,8 +506,8 @@ Step4::Step4(QWidget *parent) : QWidget(parent,"Step4")
connect
(
m_diagramMode
,
SIGNAL
(
clicked
(
int
)),
connect
(
m_diagramMode
,
SIGNAL
(
clicked
(
int
)),
this
,
SLOT
(
diagramModeChanged
(
int
)));
this
,
SLOT
(
diagramModeChanged
(
int
)));
connect
(
m_dotCall
,
SIGNAL
(
stateChanged
(
int
)),
//
connect(m_dotCall,SIGNAL(stateChanged(int)),
parent
,
SLOT
(
changeCallGraphState
(
int
)));
//
parent,SLOT(changeCallGraphState(int)));
}
}
void
Step4
::
diagramModeChanged
(
int
buttonId
)
void
Step4
::
diagramModeChanged
(
int
buttonId
)
...
@@ -515,15 +515,15 @@ void Step4::diagramModeChanged(int buttonId)
...
@@ -515,15 +515,15 @@ void Step4::diagramModeChanged(int buttonId)
m_dotOptions
->
setEnabled
(
buttonId
==
2
);
m_dotOptions
->
setEnabled
(
buttonId
==
2
);
}
}
void
Step4
::
disableCallGraphs
()
//
void Step4::disableCallGraphs()
{
//
{
m_dotCall
->
setChecked
(
FALSE
);
//
m_dotCall->setChecked(FALSE);
}
//
}
bool
Step4
::
callGraphEnabled
()
const
//
bool Step4::callGraphEnabled() const
{
//
{
return
m_dotCall
->
isOn
();
//
return m_dotCall->isOn();
}
//
}
DiagramMode
Step4
::
diagramMode
()
const
DiagramMode
Step4
::
diagramMode
()
const
{
{
...
@@ -880,7 +880,7 @@ void MainWidget::launchWizard()
...
@@ -880,7 +880,7 @@ void MainWidget::launchWizard()
{
{
wizard
.
setHtmlStyle
(
HS_CHM
);
wizard
.
setHtmlStyle
(
HS_CHM
);
}
}
else
if
(
Config_get
Bool
(
"GENERATE_TREEVIEW"
)
)
else
if
(
Config_get
Enum
(
"GENERATE_TREEVIEW"
)
!=
"NONE"
)
{
{
wizard
.
setHtmlStyle
(
HS_TreeView
);
wizard
.
setHtmlStyle
(
HS_TreeView
);
}
}
...
@@ -1008,15 +1008,15 @@ void MainWidget::launchWizard()
...
@@ -1008,15 +1008,15 @@ void MainWidget::launchWizard()
{
{
case
HS_Plain
:
case
HS_Plain
:
Config_getBool
(
"GENERATE_HTMLHELP"
)
=
FALSE
;
Config_getBool
(
"GENERATE_HTMLHELP"
)
=
FALSE
;
Config_get
Bool
(
"GENERATE_TREEVIEW"
)
=
FALSE
;
Config_get
Enum
(
"GENERATE_TREEVIEW"
)
=
"NONE"
;
break
;
break
;
case
HS_TreeView
:
case
HS_TreeView
:
Config_getBool
(
"GENERATE_HTMLHELP"
)
=
FALSE
;
Config_getBool
(
"GENERATE_HTMLHELP"
)
=
FALSE
;
Config_get
Bool
(
"GENERATE_TREEVIEW"
)
=
TRUE
;
Config_get
Enum
(
"GENERATE_TREEVIEW"
)
=
"ALL"
;
break
;
break
;
case
HS_CHM
:
case
HS_CHM
:
Config_getBool
(
"GENERATE_HTMLHELP"
)
=
TRUE
;
Config_getBool
(
"GENERATE_HTMLHELP"
)
=
TRUE
;
Config_get
Bool
(
"GENERATE_TREEVIEW"
)
=
FALSE
;
Config_get
Enum
(
"GENERATE_TREEVIEW"
)
=
"NONE"
;
break
;
break
;
}
}
}
}
...
...
addon/doxywizard/doxywizard.h
View file @
2ddfaa1d
...
@@ -126,8 +126,8 @@ class Step4 : public QWidget
...
@@ -126,8 +126,8 @@ class Step4 : public QWidget
public
:
public
:
Step4
(
QWidget
*
parent
);
Step4
(
QWidget
*
parent
);
void
disableCallGraphs
();
//
void disableCallGraphs();
bool
callGraphEnabled
()
const
;
//
bool callGraphEnabled() const;
DiagramMode
diagramMode
()
const
;
DiagramMode
diagramMode
()
const
;
bool
classDiagram
()
const
;
bool
classDiagram
()
const
;
...
@@ -165,7 +165,7 @@ class Wizard : public QTabDialog
...
@@ -165,7 +165,7 @@ class Wizard : public QTabDialog
public
:
public
:
Wizard
(
QWidget
*
parent
);
Wizard
(
QWidget
*
parent
);
void
disableCallGraphs
();
//
void disableCallGraphs();
// step1
// step1
QString
getProjectName
()
const
{
return
m_step1
->
getProjectName
();
}
QString
getProjectName
()
const
{
return
m_step1
->
getProjectName
();
}
...
...
addon/doxywizard/inputstring.cpp
View file @
2ddfaa1d
...
@@ -170,14 +170,17 @@ void InputString::init()
...
@@ -170,14 +170,17 @@ void InputString::init()
{
{
if
(
sm
==
StringFixed
)
if
(
sm
==
StringFixed
)
{
{
int
*
itemIndex
=
m_values
->
find
(
str
);
if
(
m_values
)
if
(
itemIndex
)
{
{
com
->
setCurrentItem
(
*
itemIndex
);
int
*
itemIndex
=
m_values
->
find
(
str
);
}
if
(
itemIndex
)
else
{
{
com
->
setCurrentItem
(
*
itemIndex
);
com
->
setCurrentItem
(
0
);
}
else
{
com
->
setCurrentItem
(
0
);
}
}
}
}
}
else
else
...
...
configure
View file @
2ddfaa1d
...
@@ -20,7 +20,7 @@ doxygen_version_minor=5
...
@@ -20,7 +20,7 @@ doxygen_version_minor=5
doxygen_version_revision
=
5
doxygen_version_revision
=
5
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn
=
NO
doxygen_version_mmn
=
20080307
bin_dirs
=
`
echo
$PATH
|
sed
-e
"s/:/ /g"
`
bin_dirs
=
`
echo
$PATH
|
sed
-e
"s/:/ /g"
`
...
@@ -36,6 +36,8 @@ f_english=NO
...
@@ -36,6 +36,8 @@ f_english=NO
f_wizard
=
NO
f_wizard
=
NO
f_app
=
NO
f_app
=
NO
f_thread
=
NO
f_thread
=
NO
f_flex
=
NO
f_bison
=
NO
f_langs
=
nl
,se,cz,fr,id,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,br,dk,sk,ua,gr,tw,sr,ca,lt,za,ar,fa
f_langs
=
nl
,se,cz,fr,id,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,br,dk,sk,ua,gr,tw,sr,ca,lt,za,ar,fa
while
test
-n
"
$1
"
;
do
while
test
-n
"
$1
"
;
do
...
@@ -76,6 +78,12 @@ while test -n "$1"; do
...
@@ -76,6 +78,12 @@ while test -n "$1"; do
--perl
|
-perl
)
--perl
|
-perl
)
shift
;
f_perl
=
$1
shift
;
f_perl
=
$1
;;
;;
--flex
|
-flex
)
shift
;
f_flex
=
$1
;;
--bison
|
-bison
)
shift
;
f_bison
=
$1
;;
--install
|
-install
)
--install
|
-install
)
shift
;
f_insttool
=
$1
shift
;
f_insttool
=
$1
;;
;;
...
@@ -100,9 +108,10 @@ done
...
@@ -100,9 +108,10 @@ done
if
test
"
$f_help
"
=
y
;
then
if
test
"
$f_help
"
=
y
;
then
cat
<<
EOF
cat
<<
EOF
Usage:
$0
[--help] [--shared] [--static] [--release] [--debug]
Usage:
$0
[--help] [--shared] [--static] [--release] [--debug]
[--perl name] [--make name] [--dot name] [--platform target]
[--perl name] [--flex name] [--bison name] [--make name]
[--prefix dir] [--docdir dir] [--install name] [--english-only]
[--dot name] [--platform target] [--prefix dir] [--docdir dir]
[----enable-langs list] [--with-doxywizard]
[--install name] [--english-only] [----enable-langs list]
[--with-doxywizard]
Options:
Options:
...
@@ -113,6 +122,10 @@ Options:
...
@@ -113,6 +122,10 @@ Options:
[default: release]
[default: release]
--perl name Use \`name' as the name of the perl interpreter
--perl name Use \`name' as the name of the perl interpreter
[default: autodetect]
[default: autodetect]
--flex name Use \`name' as the name of the GNU lexical scanner
[default: autodetect]
--bison name Use \`name' as the name of the GNU compiler generator
[default: autodetect]
--make name Use \`name' as the name of the GNU make tool
--make name Use \`name' as the name of the GNU make tool
[default: autodetect]
[default: autodetect]
--dot name Use \`name' as the name of the dot tool that
--dot name Use \`name' as the name of the dot tool that
...
@@ -299,7 +312,7 @@ fi
...
@@ -299,7 +312,7 @@ fi
echo
-n
" Checking for GNU make tool... "
echo
-n
" Checking for GNU make tool... "
if
test
"
$f_make
"
=
NO
;
then
if
test
"
$f_make
"
=
NO
;
then
make_names
=
"gmake make"
make_names
=
"gmake make"
make_dirs
=
"
/usr/bin /usr/local/bin /bin /sbin
$bin_dirs
"
make_dirs
=
"
$bin_dirs
/usr/bin /usr/local/bin /bin /sbin
"
make_prog
=
NO
make_prog
=
NO
for
i
in
$make_names
;
do
for
i
in
$make_names
;
do
for
j
in
$make_dirs
;
do
for
j
in
$make_dirs
;
do
...
@@ -326,7 +339,7 @@ echo "using $f_make"
...
@@ -326,7 +339,7 @@ echo "using $f_make"
echo
-n
" Checking for GNU install tool... "
echo
-n
" Checking for GNU install tool... "
if
test
"
$f_insttool
"
=
NO
;
then
if
test
"
$f_insttool
"
=
NO
;
then
install_names
=
"ginstall install"
install_names
=
"ginstall install"
install_dirs
=
"
/usr/bin /usr/local/bin /bin /sbin /usr/ucb
$bin_dirs
"
install_dirs
=
"
$bin_dirs
/usr/bin /usr/local/bin /bin /sbin /usr/ucb
"
install_prog
=
NO
install_prog
=
NO
install_found
=
NO
install_found
=
NO
for
i
in
$install_names
;
do
for
i
in
$install_names
;
do
...
@@ -362,7 +375,7 @@ echo "using $f_insttool";
...
@@ -362,7 +375,7 @@ echo "using $f_insttool";
echo
-n
" Checking for dot (part of GraphViz)... "
echo
-n
" Checking for dot (part of GraphViz)... "
if
test
"
$f_dot
"
=
NO
;
then
if
test
"
$f_dot
"
=
NO
;
then
dot_dirs
=
"
$bin_dirs
"
dot_dirs
=
"
$bin_dirs
/usr/bin /usr/local/bin /bin /sbin
"
dot_prog
=
NO
dot_prog
=
NO
for
j
in
$dot_dirs
;
do
for
j
in
$dot_dirs
;
do
if
test
-x
"
$j
/dot"
;
then
if
test
-x
"
$j
/dot"
;
then
...
@@ -384,7 +397,7 @@ fi
...
@@ -384,7 +397,7 @@ fi
echo
-n
" Checking for perl... "
echo
-n
" Checking for perl... "
if
test
"
$f_perl
"
=
NO
;
then
if
test
"
$f_perl
"
=
NO
;
then
perl_names
=
"perl perl5"
perl_names
=
"perl perl5"
perl_dirs
=
"
/usr/bin /usr/local/bin /bin /sbin
$bin_dirs
"
perl_dirs
=
"
$bin_dirs
/usr/bin /usr/local/bin /bin /sbin
"
perl_prog
=
NO
perl_prog
=
NO
perl_found
=
NO
perl_found
=
NO
for
i
in
$perl_names
;
do
for
i
in
$perl_names
;
do
...
@@ -412,6 +425,53 @@ if test "$f_perl" = NO; then
...
@@ -412,6 +425,53 @@ if test "$f_perl" = NO; then
fi
fi
echo
"using
$f_perl
"
;
echo
"using
$f_perl
"
;
# - check for flex ------------------------------------------------------------
echo
-n
" Checking for flex... "
if
test
"
$f_flex
"
=
NO
;
then
flex_dirs
=
"
$bin_dirs
/usr/bin /usr/local/bin /bin"
flex_prog
=
NO
flex_found
=
NO
for
j
in
$flex_dirs
;
do
if
test
-x
"
$j
/flex"
;
then
flex_found
=
YES
flex_prog
=
"
$j
/flex"
break
fi
done
f_flex
=
"
$flex_prog
"
fi
if
test
"
$f_flex
"
=
NO
;
then
echo
"not found!"
;
exit
2
else
echo
"using
$f_flex
"
fi
# - check for bison ------------------------------------------------------------
echo
-n
" Checking for bison... "
if
test
"
$f_bison
"
=
NO
;
then
bison_dirs
=
"
$bin_dirs
/usr/bin /usr/local/bin /bin"
bison_prog
=
NO
bison_found
=
NO
for
j
in
$bison_dirs
;
do
if
test
-x
"
$j
/bison"
;
then
bison_found
=
YES
bison_prog
=
"
$j
/bison"
break
fi
done
f_bison
=
"
$bison_prog
"
fi
if
test
"
$f_bison
"
=
NO
;
then
echo
"not found!"
;
exit
2
else
echo
"using
$f_bison
"
fi
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
...
@@ -514,10 +574,10 @@ if test "$f_platform" = "hpux-g++"; then
...
@@ -514,10 +574,10 @@ if test "$f_platform" = "hpux-g++"; then
EOF
EOF
fi
fi
if
test
"
$f_platform
"
=
"macosx-uni-c++"
;
then
if
test
"
$f_platform
"
=
"macosx-uni-c++"
;
then
if
test
-n
"
`
ls
/Developer/SDKs/MacOSX10.
*
.sdk
`
"
;
then
if
test
-n
"
`
ls
/Developer/SDKs/MacOSX10.
*
.sdk
2>/dev/null
`
"
;
then
mac_sdk
=
MacOSX10.4u.sdk
mac_sdk
=
MacOSX10.4u.sdk
fi
fi
if
test
-n
"
`
ls
/Developer/SDKs/MacOSX10.5
*
.sdk
`
"
;
then
if
test
-n
"
`
ls
/Developer/SDKs/MacOSX10.5
*
.sdk
2>/dev/null
`
"
;
then
mac_sdk
=
MacOSX10.5.sdk
mac_sdk
=
MacOSX10.5.sdk
fi
fi
if
test
-n
$mac_sdk
;
then
if
test
-n
$mac_sdk
;
then
...
...
doc/config.doc
View file @
2ddfaa1d
...
@@ -1313,11 +1313,20 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
...
@@ -1313,11 +1313,20 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
\
anchor
cfg_generate_treeview
\
anchor
cfg_generate_treeview
<
dt
>\
c
GENERATE_TREEVIEW
<
dd
>
<
dt
>\
c
GENERATE_TREEVIEW
<
dd
>
\
addindex
GENERATE_TREEVIEW
\
addindex
GENERATE_TREEVIEW
If
the
\
c
GENERATE_TREEVIEW
tag
is
set
to
YES
,
a
side
panel
will
be
The
GENERATE_TREEVIEW
tag
is
used
to
specify
whether
a
tree
-
like
index
generated
containing
a
tree
-
like
index
structure
(
just
like
the
one
that
structure
should
be
generated
to
display
hierarchical
information
.
If
the
tag
value
is
set
to
FRAME
,
a
side
panel
will
be
generated
containing
a
tree
-
like
index
structure
(
just
like
the
one
that
is
generated
for
HTML
Help
).
For
this
to
work
a
browser
that
supports
is
generated
for
HTML
Help
).
For
this
to
work
a
browser
that
supports
JavaScript
and
frames
is
required
(
for
instance
Mozilla
1.0
+,
Netscape
6.0
+
JavaScript
,
DHTML
,
CSS
and
frames
is
required
(
for
instance
Mozilla
1.0
+,
or
Internet
explorer
5.0
+
or
Konqueror
).
Netscape
6.0
+,
Internet
explorer
5.0
+,
or
Konqueror
).
Windows
users
are
probably
better
off
using
the
HTML
help
feature
.
Other
possible
values
for
this
tag
are
:
\
c
HIERARCHIES
,
which
will
generate
the
Groups
,
Directories
,
and
Class
Hiererachy
pages
using
a
tree
view
instead
of
an
ordered
list
;
ALL
,
which
combines
the
behavior
of
\
c
FRAME
and
\
c
HIERARCHIES
,
and
\
c
NONE
,
which
disables
this
behavior
completely
.
For
backwards
compatibility
with
previous
releases
of
Doxygen
,
the
values
YES
and
NO
are
equivalent
to
FRAME
and
NONE
respectively
.
\
anchor
cfg_treeview_width
\
anchor
cfg_treeview_width
<
dt
>\
c
TREEVIEW_WIDTH
<
dd
>
<
dt
>\
c
TREEVIEW_WIDTH
<
dd
>
...
...
doc/index.doc
View file @
2ddfaa1d
...
@@ -27,7 +27,7 @@ Version: $(VERSION)
...
@@ -27,7 +27,7 @@ Version: $(VERSION)
<h2>Introduction</h2>
<h2>Introduction</h2>
Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL
Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL
(Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some exten
d
D.
(Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some exten
t
D.
It can help you in three ways:
It can help you in three ways:
<ol>
<ol>
...
...
doc/install.doc
View file @
2ddfaa1d
...
@@ -302,9 +302,10 @@ ce_parse.cpp:
...
@@ -302,9 +302,10 @@ ce_parse.cpp:
<b>Sun compiler problems</b>
<b>Sun compiler problems</b>
It appears that doxygen doesn't work properly if it is compiled
It appears that doxygen doesn't work properly if it is compiled
with Sun's C++ WorkShop Compiler. I cannot verify this myself as I do
with Sun's C++ WorkShop
6
Compiler. I cannot verify this myself as I do
not have access to a Solaris machine with this compiler. With GNU compiler
not have access to a Solaris machine with this compiler. With GNU compiler
it does work.
it does work and installing Sun patch 111679-13 has also been reported
as a way to fix the problem.
when configuring with <code>--static</code> I got:
when configuring with <code>--static</code> I got:
...
...
doc/language.doc
View file @
2ddfaa1d
...
@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other
...
@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other
than English (the default). The output language is chosen through the
than English (the default). The output language is chosen through the
configuration file (with default name and known as Doxyfile).
configuration file (with default name and known as Doxyfile).
Currently (version 1.5.
4
), 34 languages
Currently (version 1.5.
5
), 34 languages
are supported (sorted alphabetically):
are supported (sorted alphabetically):
Afrikaans, Arabic, Brazilian Portuguese, Catalan, Chinese, Chinese
Afrikaans, Arabic, Brazilian Portuguese, Catalan, Chinese, Chinese
Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French,
Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French,
...
@@ -67,7 +67,7 @@ when the translator was updated.
...
@@ -67,7 +67,7 @@ when the translator was updated.
<td>Brazilian Portuguese</td>
<td>Brazilian Portuguese</td>
<td>Fabio "FJTC" Jun Takada Chino</td>
<td>Fabio "FJTC" Jun Takada Chino</td>
<td>jun-chino at uol dot com dot br</td>
<td>jun-chino at uol dot com dot br</td>
<td>
1.5.4
</td>
<td>
up-to-date
</td>
</tr>
</tr>
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
<td>Catalan</td>
<td>Catalan</td>
...
@@ -79,13 +79,13 @@ when the translator was updated.
...
@@ -79,13 +79,13 @@ when the translator was updated.
<td>Chinese</td>
<td>Chinese</td>
<td>Li Daobing<br>Wei Liu</td>
<td>Li Daobing<br>Wei Liu</td>
<td>lidaobing at gmail dot com<br>liuwei at asiainfo dot com</td>
<td>lidaobing at gmail dot com<br>liuwei at asiainfo dot com</td>
<td>
1.5.4
</td>
<td>
up-to-date
</td>
</tr>
</tr>
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
<td>Chinese Traditional</td>
<td>Chinese Traditional</td>
<td>Daniel YC Lin<br>Gary Lee</td>
<td>Daniel YC Lin<br>Gary Lee</td>
<td>dlin
at taifex dot com dot tw
<br>garywlee at gmail dot com</td>
<td>dlin
.tw at gmail dot com
<br>garywlee at gmail dot com</td>
<td>
1.4.6
</td>
<td>
up-to-date
</td>
</tr>
</tr>
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
<td>Croatian</td>
<td>Croatian</td>
...
@@ -133,7 +133,7 @@ when the translator was updated.
...
@@ -133,7 +133,7 @@ when the translator was updated.
<td>German</td>
<td>German</td>
<td>Jens Seidel</td>
<td>Jens Seidel</td>
<td>jensseidel at users dot sf dot net</td>
<td>jensseidel at users dot sf dot net</td>
<td>
1.5.4
</td>
<td>
up-to-date
</td>
</tr>
</tr>
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
<td>Greek</td>
<td>Greek</td>
...
@@ -204,8 +204,8 @@ when the translator was updated.
...
@@ -204,8 +204,8 @@ when the translator was updated.
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
<td>Persian</td>
<td>Persian</td>
<td>Ali Nadalizadeh</td>
<td>Ali Nadalizadeh</td>
<td>nadali
soft at yahoo
dot com</td>
<td>nadali
zadeh at gmail
dot com</td>
<td>
1.4.6
</td>
<td>
up-to-date
</td>
</tr>
</tr>
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
<td>Polish</td>
<td>Polish</td>
...
@@ -253,7 +253,7 @@ when the translator was updated.
...
@@ -253,7 +253,7 @@ when the translator was updated.
<td>Spanish</td>
<td>Spanish</td>
<td>Bartomeu<br>Francisco Oltra Thennet</td>
<td>Bartomeu<br>Francisco Oltra Thennet</td>
<td>bartomeu at loteria3cornella dot com<br>foltra at puc dot cl</td>
<td>bartomeu at loteria3cornella dot com<br>foltra at puc dot cl</td>
<td>
1.5.4
</td>
<td>
up-to-date
</td>
</tr>
</tr>
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
<td>Swedish</td>
<td>Swedish</td>
...
@@ -286,15 +286,15 @@ when the translator was updated.
...
@@ -286,15 +286,15 @@ when the translator was updated.
\hline
\hline
Arabic & Moaz Reyad & {\tt\tiny moazreyad@yahoo.com} & 1.4.6 \\
Arabic & Moaz Reyad & {\tt\tiny moazreyad@yahoo.com} & 1.4.6 \\
\hline
\hline
Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt\tiny jun-chino@uol.com.br} &
1.5.4
\\
Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt\tiny jun-chino@uol.com.br} &
up-to-date
\\
\hline
\hline
Catalan & Maximiliano Pin & {\tt\tiny mcpin@emtesistemas.com} & 1.5.4 \\
Catalan & Maximiliano Pin & {\tt\tiny mcpin@emtesistemas.com} & 1.5.4 \\
~ & Albert Mora & {\tt\tiny amora@iua.upf.es} & ~ \\
~ & Albert Mora & {\tt\tiny amora@iua.upf.es} & ~ \\
\hline
\hline
Chinese & Li Daobing & {\tt\tiny lidaobing@gmail.com} &
1.5.4
\\
Chinese & Li Daobing & {\tt\tiny lidaobing@gmail.com} &
up-to-date
\\
~ & Wei Liu & {\tt\tiny liuwei@asiainfo.com} & ~ \\
~ & Wei Liu & {\tt\tiny liuwei@asiainfo.com} & ~ \\
\hline
\hline
Chinese Traditional & Daniel YC Lin & {\tt\tiny dlin
@taifex.com.tw} & 1.4.6
\\
Chinese Traditional & Daniel YC Lin & {\tt\tiny dlin
.tw@gmail.com} & up-to-date
\\
~ & Gary Lee & {\tt\tiny garywlee@gmail.com} & ~ \\
~ & Gary Lee & {\tt\tiny garywlee@gmail.com} & ~ \\
\hline
\hline
Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.htnet.hr} & up-to-date \\
Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.htnet.hr} & up-to-date \\
...
@@ -311,7 +311,7 @@ when the translator was updated.
...
@@ -311,7 +311,7 @@ when the translator was updated.
\hline
\hline
French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.5.4 \\
French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.5.4 \\
\hline
\hline
German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} &
1.5.4
\\
German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} &
up-to-date
\\
\hline
\hline
Greek & Paul Gessos & {\tt\tiny nickreserved@yahoo.com} & 1.5.4 \\
Greek & Paul Gessos & {\tt\tiny nickreserved@yahoo.com} & 1.5.4 \\
\hline
\hline
...
@@ -343,7 +343,7 @@ when the translator was updated.
...
@@ -343,7 +343,7 @@ when the translator was updated.
\hline
\hline
Norwegian & Lars Erik Jordet & {\tt\tiny lejordet@gmail.com} & 1.4.6 \\
Norwegian & Lars Erik Jordet & {\tt\tiny lejordet@gmail.com} & 1.4.6 \\
\hline
\hline
Persian & Ali Nadalizadeh & {\tt\tiny nadali
soft@yahoo.com} & 1.4.6
\\
Persian & Ali Nadalizadeh & {\tt\tiny nadali
zadeh@gmail.com} & up-to-date
\\
\hline
\hline
Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} & 1.4.6 \\
Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} & 1.4.6 \\
~ & Grzegorz Kowal & {\tt\tiny g\_kowal@poczta.onet.pl} & ~ \\
~ & Grzegorz Kowal & {\tt\tiny g\_kowal@poczta.onet.pl} & ~ \\
...
@@ -360,7 +360,7 @@ when the translator was updated.
...
@@ -360,7 +360,7 @@ when the translator was updated.
\hline
\hline
Slovene & Matja\v{z} Ostrover\v{s}nik & {\tt\tiny matjaz.ostroversnik@ostri.org} & 1.4.6 \\
Slovene & Matja\v{z} Ostrover\v{s}nik & {\tt\tiny matjaz.ostroversnik@ostri.org} & 1.4.6 \\
\hline
\hline
Spanish & Bartomeu & {\tt\tiny bartomeu@loteria3cornella.com} &
1.5.4
\\
Spanish & Bartomeu & {\tt\tiny bartomeu@loteria3cornella.com} &
up-to-date
\\
~ & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & ~ \\
~ & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & ~ \\
\hline
\hline
Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.4.6 \\
Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.4.6 \\
...
...
doc/translator_report.txt
View file @
2ddfaa1d
(1.5.
4
)
(1.5.
5
)
Doxygen supports the following 34 languages (sorted alphabetically):
Doxygen supports the following 34 languages (sorted alphabetically):
...
@@ -9,7 +9,7 @@ German, Greek, Hungarian, Indonesian, Italian, Japanese (+En), Korean
...
@@ -9,7 +9,7 @@ German, Greek, Hungarian, Indonesian, Italian, Japanese (+En), Korean
Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and
Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and
Ukrainian.
Ukrainian.
Of them,
6 translators are up-to-date, 28
translators are based on
Of them,
12 translators are up-to-date, 22
translators are based on
some adapter class, and 2 are English based.
some adapter class, and 2 are English based.
----------------------------------------------------------------------
----------------------------------------------------------------------
...
@@ -18,12 +18,18 @@ alphabetically). This means that they derive from the Translator class
...
@@ -18,12 +18,18 @@ alphabetically). This means that they derive from the Translator class
and they implement all 216 of the required methods. Anyway, there
and they implement all 216 of the required methods. Anyway, there
still may be some details listed even for them:
still may be some details listed even for them:
TranslatorBrazilian
TranslatorChinesetraditional
TranslatorChinese
TranslatorCroatian
TranslatorCroatian
TranslatorCzech
TranslatorCzech
TranslatorDutch
TranslatorDutch
TranslatorEnglish
TranslatorEnglish
TranslatorGerman
TranslatorItalian
TranslatorItalian
TranslatorKorean
TranslatorKorean
TranslatorPersian
TranslatorSpanish -- Change the base class to Translator.
----------------------------------------------------------------------
----------------------------------------------------------------------
The following translator classes need some maintenance (the most
The following translator classes need some maintenance (the most
...
@@ -31,28 +37,22 @@ obsolete at the end). The other info shows the estimation of Doxygen
...
@@ -31,28 +37,22 @@ obsolete at the end). The other info shows the estimation of Doxygen
version when the class was last updated and number of methods that
version when the class was last updated and number of methods that
must be implemented to become up-to-date:
must be implemented to become up-to-date:
TranslatorSpanish 1.5.4 22 methods to implement
TranslatorRussian 1.5.4 22 methods to implement
TranslatorRussian 1.5.4 22 methods to implement
TranslatorMacedonian 1.5.04 22 methods to implement
TranslatorMacedonian 1.5.04 22 methods to implement
Note: Change the base class to TranslatorAdapter_1_5_4.
Note: Change the base class to TranslatorAdapter_1_5_4.
TranslatorJapanese 1.5.4 22 methods to implement
TranslatorJapanese 1.5.4 22 methods to implement
TranslatorGreek 1.5.4 22 methods to implement
TranslatorGreek 1.5.4 22 methods to implement
TranslatorGerman 1.5.4 22 methods to implement
TranslatorFrench 1.5.4 22 methods to implement
TranslatorFrench 1.5.4 22 methods to implement
TranslatorDanish 1.5.4 22 methods to implement
TranslatorDanish 1.5.4 22 methods to implement
TranslatorChinese 1.5.4 22 methods to implement
TranslatorCatalan 1.5.4 22 methods to implement
TranslatorCatalan 1.5.4 22 methods to implement
TranslatorBrazilian 1.5.4 1 method to implement
TranslatorSwedish 1.4.6 24 methods to implement
TranslatorSwedish 1.4.6 24 methods to implement
TranslatorSlovene 1.4.6 24 methods to implement
TranslatorSlovene 1.4.6 24 methods to implement
TranslatorPolish 1.4.6 23 methods to implement
TranslatorPolish 1.4.6 23 methods to implement
TranslatorPersian 1.4.6 23 methods to implement
TranslatorNorwegian 1.4.6 23 methods to implement
TranslatorNorwegian 1.4.6 23 methods to implement
TranslatorLithuanian 1.4.6 24 methods to implement
TranslatorLithuanian 1.4.6 24 methods to implement
TranslatorIndonesian 1.4.6 23 methods to implement
TranslatorIndonesian 1.4.6 23 methods to implement
TranslatorHungarian 1.4.6 24 methods to implement
TranslatorHungarian 1.4.6 24 methods to implement
TranslatorChinesetraditional 1.4.6 23 methods to implement
TranslatorArabic 1.4.6 23 methods to implement
TranslatorArabic 1.4.6 23 methods to implement
TranslatorAfrikaans 1.4.6 24 methods to implement
TranslatorAfrikaans 1.4.6 24 methods to implement
TranslatorUkrainian 1.4.1 24 methods to implement
TranslatorUkrainian 1.4.1 24 methods to implement
...
@@ -153,20 +153,6 @@ TranslatorArabic (TranslatorAdapter_1_4_6) 23 methods to implement
...
@@ -153,20 +153,6 @@ TranslatorArabic (TranslatorAdapter_1_4_6) 23 methods to implement
virtual QCString trNoDescriptionAvailable()
virtual QCString trNoDescriptionAvailable()
TranslatorBrazilian (TranslatorAdapter_1_5_4) 1 method to implement
-------------------
Implements 215 of the required methods.
Missing methods (should be implemented):
virtual QCString trTypeConstraints()
Obsolete methods (should be removed, never used):
virtual QCString trTypeContraints()
TranslatorCatalan (TranslatorAdapter_1_5_4) 22 methods to implement
TranslatorCatalan (TranslatorAdapter_1_5_4) 22 methods to implement
-----------------
-----------------
...
@@ -198,81 +184,6 @@ TranslatorCatalan (TranslatorAdapter_1_5_4) 22 methods to implement
...
@@ -198,81 +184,6 @@ TranslatorCatalan (TranslatorAdapter_1_5_4) 22 methods to implement
virtual QCString trSubprogramDocumentation()
virtual QCString trSubprogramDocumentation()
TranslatorChinese (TranslatorAdapter_1_5_4) 22 methods to implement
-----------------
Implements 194 of the required methods.
Missing methods (should be implemented):
virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single)
virtual QCString trSubprograms()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
virtual QCString trTypeDocumentation()
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
virtual QCString trModulesIndex()
virtual QCString trCompoundListFortran()
virtual QCString trDataTypes()
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate)
virtual QCString trType(bool first_capital, bool singular)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
TranslatorChinesetraditional (TranslatorAdapter_1_4_6) 23 methods to implement
----------------------------
Implements 193 of the required methods.
Missing methods (should be implemented):
virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single)
virtual QCString trSubprograms()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
virtual QCString trTypeDocumentation()
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
virtual QCString trModulesIndex()
virtual QCString trCompoundListFortran()
virtual QCString trDataTypes()
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
virtual QCString trCallerGraph()
virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate)
virtual QCString trType(bool first_capital, bool singular)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
Obsolete methods (should be removed, never used):
virtual QCString trHeaderFilesDescription()
virtual QCString trField(bool/*first_capital*/, bool/*singular*/)
virtual QCString trPackageDocumentation()
virtual QCString trSources()
virtual QCString trReimplementedForInternalReasons()
virtual QCString trInterfaces()
virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations()
virtual QCString trNoDescriptionAvailable()
TranslatorDanish (TranslatorAdapter_1_5_4) 22 methods to implement
TranslatorDanish (TranslatorAdapter_1_5_4) 22 methods to implement
----------------
----------------
...
@@ -473,37 +384,6 @@ TranslatorFrench (TranslatorAdapter_1_5_4) 22 methods to implement
...
@@ -473,37 +384,6 @@ TranslatorFrench (TranslatorAdapter_1_5_4) 22 methods to implement
virtual QCString trSubprogramDocumentation()
virtual QCString trSubprogramDocumentation()
TranslatorGerman (TranslatorAdapter_1_5_4) 22 methods to implement
----------------
Implements 194 of the required methods.
Missing methods (should be implemented):
virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single)
virtual QCString trSubprograms()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
virtual QCString trTypeDocumentation()
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
virtual QCString trModulesIndex()
virtual QCString trCompoundListFortran()
virtual QCString trDataTypes()
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate)
virtual QCString trType(bool first_capital, bool singular)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
TranslatorGreek (TranslatorAdapter_1_5_4) 22 methods to implement
TranslatorGreek (TranslatorAdapter_1_5_4) 22 methods to implement
---------------
---------------
...
@@ -803,50 +683,6 @@ TranslatorNorwegian (TranslatorAdapter_1_4_6) 23 methods to implement
...
@@ -803,50 +683,6 @@ TranslatorNorwegian (TranslatorAdapter_1_4_6) 23 methods to implement
virtual QCString trNoDescriptionAvailable()
virtual QCString trNoDescriptionAvailable()
TranslatorPersian (TranslatorAdapter_1_4_6) 23 methods to implement
-----------------
Implements 193 of the required methods.
Missing methods (should be implemented):
virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single)
virtual QCString trSubprograms()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
virtual QCString trTypeDocumentation()
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
virtual QCString trModulesIndex()
virtual QCString trCompoundListFortran()
virtual QCString trDataTypes()
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
virtual QCString trCallerGraph()
virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate)
virtual QCString trType(bool first_capital, bool singular)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
Obsolete methods (should be removed, never used):
virtual QCString trHeaderFilesDescription()
virtual QCString trField(bool first_capital, bool singular)
virtual QCString trPackageDocumentation()
virtual QCString trSources()
virtual QCString trReimplementedForInternalReasons()
virtual QCString trInterfaces()
virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations()
virtual QCString trNoDescriptionAvailable()
TranslatorPolish (TranslatorAdapter_1_4_6) 23 methods to implement
TranslatorPolish (TranslatorAdapter_1_4_6) 23 methods to implement
----------------
----------------
...
@@ -1166,35 +1002,10 @@ TranslatorSlovene (TranslatorAdapter_1_4_6) 24 methods to implement
...
@@ -1166,35 +1002,10 @@ TranslatorSlovene (TranslatorAdapter_1_4_6) 24 methods to implement
virtual QCString trSubprogramDocumentation()
virtual QCString trSubprogramDocumentation()
TranslatorSpanish (TranslatorAdapter_1_5_4)
22 methods to implement
TranslatorSpanish (TranslatorAdapter_1_5_4)
-----------------
-----------------
Implements 194 of the required methods.
Implements 216 of the required methods.
Missing methods (should be implemented):
virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single)
virtual QCString trSubprograms()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
virtual QCString trTypeDocumentation()
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
virtual QCString trModulesIndex()
virtual QCString trCompoundListFortran()
virtual QCString trDataTypes()
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate)
virtual QCString trType(bool first_capital, bool singular)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
TranslatorSwedish (TranslatorAdapter_1_4_6) 24 methods to implement
TranslatorSwedish (TranslatorAdapter_1_4_6) 24 methods to implement
...
...
qtools/qfiledefs_p.h
View file @
2ddfaa1d
...
@@ -55,8 +55,7 @@
...
@@ -55,8 +55,7 @@
#elif !defined(_OS_MAC_)
#elif !defined(_OS_MAC_)
# include <sys/types.h>
# include <sys/types.h>
# include <sys/stat.h>
# include <sys/stat.h>
#elif defined(_OS_MAC_) \
#elif defined(_OS_MAC_)
&& (MAC_OS_X_VERSION_MAX_ALLOWED==MAC_OS_X_VERSION_10_5)
# include <sys/types.h>
# include <sys/types.h>
# include <sys/stat.h>
# include <sys/stat.h>
# define _OS_UNIX_
# define _OS_UNIX_
...
...
src/config.l
View file @
2ddfaa1d
...
@@ -1326,7 +1326,7 @@ void Config::check()
...
@@ -1326,7 +1326,7 @@ void Config::check()
bool b2 = Config_getBool("INHERIT_DOCS");
bool b2 = Config_getBool("INHERIT_DOCS");
bool b3 = Config_getBool("HIDE_SCOPE_NAMES");
bool b3 = Config_getBool("HIDE_SCOPE_NAMES");
bool b4 = Config_getBool("EXTRACT_PRIVATE");
bool b4 = Config_getBool("EXTRACT_PRIVATE");
char *s1,*s2,*s3,*s4;
c
onst c
har *s1,*s2,*s3,*s4;
if (b1) s1=" INLINDE_INHERITED_MEMB = NO (was YES)\n"; else s1="";
if (b1) s1=" INLINDE_INHERITED_MEMB = NO (was YES)\n"; else s1="";
if (b2) s2=" INHERIT_DOCS = NO (was YES)\n"; else s2="";
if (b2) s2=" INHERIT_DOCS = NO (was YES)\n"; else s2="";
if (!b3) s3=" HIDE_SCOPE_NAMES = YES (was NO)\n"; else s3="";
if (!b3) s3=" HIDE_SCOPE_NAMES = YES (was NO)\n"; else s3="";
...
@@ -2415,16 +2415,28 @@ void Config::create()
...
@@ -2415,16 +2415,28 @@ void Config::create()
1,20,4
1,20,4
);
);
ci->addDependency("GENERATE_HTML");
ci->addDependency("GENERATE_HTML");
c
b = addBool
(
c
e = addEnum
(
"GENERATE_TREEVIEW",
"GENERATE_TREEVIEW",
"If the GENERATE_TREEVIEW tag is set to YES, a side panel will be\n"
"The GENERATE_TREEVIEW tag is used to specify whether a tree-like index\n"
"generated containing a tree-like index structure (just like the one that \n"
"structure should be generated to display hierarchical information.\n"
"If the tag value is set to FRAME, a side panel will be generated\n"
"containing a tree-like index structure (just like the one that \n"
"is generated for HTML Help). For this to work a browser that supports \n"
"is generated for HTML Help). For this to work a browser that supports \n"
"JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, \n"
"JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, \n"
"Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are \n"
"Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are \n"
"probably better off using the HTML help feature. \n",
"probably better off using the HTML help feature. Other possible values \n"
FALSE
"for this tag are: HIERARCHIES, which will generate the Groups, Directories,\n"
);
"and Class Hiererachy pages using a tree view instead of an ordered list;\n"
"ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which\n"
"disables this behavior completely. For backwards compatibility with previous\n"
"releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE\n"
"respectively.\n",
"NONE"
);
ce->addValue("NONE");
ce->addValue("FRAME");
ce->addValue("HIERARCHIES");
ce->addValue("ALL");
cb->addDependency("GENERATE_HTML");
cb->addDependency("GENERATE_HTML");
ci = addInt(
ci = addInt(
"TREEVIEW_WIDTH",
"TREEVIEW_WIDTH",
...
...
src/docparser.cpp
View file @
2ddfaa1d
...
@@ -320,6 +320,7 @@ static void checkArgumentName(const QString &name,bool isParam)
...
@@ -320,6 +320,7 @@ static void checkArgumentName(const QString &name,bool isParam)
LockingPtr
<
ArgumentList
>
al
=
g_memberDef
->
isDocsForDefinition
()
?
LockingPtr
<
ArgumentList
>
al
=
g_memberDef
->
isDocsForDefinition
()
?
g_memberDef
->
argumentList
()
:
g_memberDef
->
argumentList
()
:
g_memberDef
->
declArgumentList
();
g_memberDef
->
declArgumentList
();
//printf("isDocsForDefinition()=%d\n",g_memberDef->isDocsForDefinition());
if
(
al
==
0
)
return
;
// no argument list
if
(
al
==
0
)
return
;
// no argument list
static
QRegExp
re
(
"[a-zA-Z0-9_]+
\\
.*"
);
static
QRegExp
re
(
"[a-zA-Z0-9_]+
\\
.*"
);
...
...
src/docsets.cpp
View file @
2ddfaa1d
...
@@ -129,8 +129,7 @@ void DocSets::initialize()
...
@@ -129,8 +129,7 @@ void DocSets::initialize()
err
(
"Could not open file %s for writing
\n
"
,
notes
.
data
());
err
(
"Could not open file %s for writing
\n
"
,
notes
.
data
());
exit
(
1
);
exit
(
1
);
}
}
QCString
indexName
=
"index"
;
QCString
indexName
=
usingTreeIndex
()
?
"main"
:
"index"
;
if
(
Config_getBool
(
"GENERATE_TREEVIEW"
))
indexName
=
"main"
;
m_nts
.
setDevice
(
m_nf
);
m_nts
.
setDevice
(
m_nf
);
m_nts
.
setEncoding
(
QTextStream
::
UnicodeUTF8
);
m_nts
.
setEncoding
(
QTextStream
::
UnicodeUTF8
);
m_nts
<<
"<?xml version=
\"
1.0
\"
encoding=
\"
UTF-8
\"
?>"
<<
endl
;
m_nts
<<
"<?xml version=
\"
1.0
\"
encoding=
\"
UTF-8
\"
?>"
<<
endl
;
...
...
src/doctokenizer.l
View file @
2ddfaa1d
...
@@ -326,7 +326,7 @@ OPMASK ({BLANK}*{OPNORM}{FUNCARG})
...
@@ -326,7 +326,7 @@ OPMASK ({BLANK}*{OPNORM}{FUNCARG})
OPMASKOPT ({BLANK}*{OPNORM}{FUNCARG}?)|({OPCAST}{FUNCARG})
OPMASKOPT ({BLANK}*{OPNORM}{FUNCARG}?)|({OPCAST}{FUNCARG})
LNKWORD1 ("::"|"#")?{SCOPEMASK}
LNKWORD1 ("::"|"#")?{SCOPEMASK}
CVSPEC {BLANK}*("const"|"volatile")
CVSPEC {BLANK}*("const"|"volatile")
LNKWORD2 ({SCOPEPRE}*"operator"{OPMASK})|(("::"|"#"){SCOPEPRE}*"operator"{OPMASKOPT})
LNKWORD2 ({SCOPEPRE}*"operator"{OPMASK})|(
{SCOPEPRE}"operator"{OPMASKOPT})|(
("::"|"#"){SCOPEPRE}*"operator"{OPMASKOPT})
LNKWORD3 ([0-9a-z_A-Z\-]+("/"|"\\"))*[0-9a-z_A-Z\-]+("."[0-9a-z_A-Z]+)+
LNKWORD3 ([0-9a-z_A-Z\-]+("/"|"\\"))*[0-9a-z_A-Z\-]+("."[0-9a-z_A-Z]+)+
CHARWORD [^ \t\n\r\\@<>()\[\]:;\?{}&%$#,.]
CHARWORD [^ \t\n\r\\@<>()\[\]:;\?{}&%$#,.]
CHARWORDQ [^ \t\n\r\\@<>()\[\]:;\?{}&%$#,."]
CHARWORDQ [^ \t\n\r\\@<>()\[\]:;\?{}&%$#,."]
...
...
src/doxygen.cpp
View file @
2ddfaa1d
...
@@ -241,7 +241,6 @@ struct STLInfo
...
@@ -241,7 +241,6 @@ struct STLInfo
static
STLInfo
g_stlinfo
[]
=
static
STLInfo
g_stlinfo
[]
=
{
{
// className baseClass1 baseClass2 templType1 templName1 templType2 templName2 virtInheritance // iterators
// className baseClass1 baseClass2 templType1 templName1 templType2 templName2 virtInheritance // iterators
#if 0
{
"allocator"
,
0
,
0
,
"T"
,
"elements"
,
0
,
0
,
FALSE
,
FALSE
},
{
"allocator"
,
0
,
0
,
"T"
,
"elements"
,
0
,
0
,
FALSE
,
FALSE
},
{
"auto_ptr"
,
0
,
0
,
"T"
,
"ptr"
,
0
,
0
,
FALSE
,
FALSE
},
{
"auto_ptr"
,
0
,
0
,
"T"
,
"ptr"
,
0
,
0
,
FALSE
,
FALSE
},
{
"ios_base"
,
0
,
0
,
0
,
0
,
0
,
0
,
FALSE
,
FALSE
},
{
"ios_base"
,
0
,
0
,
0
,
0
,
0
,
0
,
FALSE
,
FALSE
},
...
@@ -284,9 +283,7 @@ static STLInfo g_stlinfo[] =
...
@@ -284,9 +283,7 @@ static STLInfo g_stlinfo[] =
{
"multimap"
,
0
,
0
,
"K"
,
"keys"
,
"T"
,
"elements"
,
FALSE
,
TRUE
},
{
"multimap"
,
0
,
0
,
"K"
,
"keys"
,
"T"
,
"elements"
,
FALSE
,
TRUE
},
{
"set"
,
0
,
0
,
"K"
,
"keys"
,
0
,
0
,
FALSE
,
TRUE
},
{
"set"
,
0
,
0
,
"K"
,
"keys"
,
0
,
0
,
FALSE
,
TRUE
},
{
"multiset"
,
0
,
0
,
"K"
,
"keys"
,
0
,
0
,
FALSE
,
TRUE
},
{
"multiset"
,
0
,
0
,
"K"
,
"keys"
,
0
,
0
,
FALSE
,
TRUE
},
#endif
{
"vector"
,
0
,
0
,
"T"
,
"elements"
,
0
,
0
,
FALSE
,
TRUE
},
{
"vector"
,
0
,
0
,
"T"
,
"elements"
,
0
,
0
,
FALSE
,
TRUE
},
#if 0
{
"queue"
,
0
,
0
,
"T"
,
"elements"
,
0
,
0
,
FALSE
,
FALSE
},
{
"queue"
,
0
,
0
,
"T"
,
"elements"
,
0
,
0
,
FALSE
,
FALSE
},
{
"priority_queue"
,
0
,
0
,
"T"
,
"elements"
,
0
,
0
,
FALSE
,
FALSE
},
{
"priority_queue"
,
0
,
0
,
"T"
,
"elements"
,
0
,
0
,
FALSE
,
FALSE
},
{
"stack"
,
0
,
0
,
"T"
,
"elements"
,
0
,
0
,
FALSE
,
FALSE
},
{
"stack"
,
0
,
0
,
"T"
,
"elements"
,
0
,
0
,
FALSE
,
FALSE
},
...
@@ -306,7 +303,6 @@ static STLInfo g_stlinfo[] =
...
@@ -306,7 +303,6 @@ static STLInfo g_stlinfo[] =
{
"range_error"
,
"runtime_error"
,
0
,
0
,
0
,
0
,
0
,
FALSE
,
FALSE
},
{
"range_error"
,
"runtime_error"
,
0
,
0
,
0
,
0
,
0
,
FALSE
,
FALSE
},
{
"overflow_error"
,
"runtime_error"
,
0
,
0
,
0
,
0
,
0
,
FALSE
,
FALSE
},
{
"overflow_error"
,
"runtime_error"
,
0
,
0
,
0
,
0
,
0
,
FALSE
,
FALSE
},
{
"underflow_error"
,
"runtime_error"
,
0
,
0
,
0
,
0
,
0
,
FALSE
,
FALSE
},
{
"underflow_error"
,
"runtime_error"
,
0
,
0
,
0
,
0
,
0
,
FALSE
,
FALSE
},
#endif
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
FALSE
,
FALSE
}
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
FALSE
,
FALSE
}
};
};
...
@@ -2237,8 +2233,8 @@ static bool isVarWithConstructor(EntryNav *rootNav)
...
@@ -2237,8 +2233,8 @@ static bool isVarWithConstructor(EntryNav *rootNav)
goto
done
;
goto
done
;
}
}
else
if
((
fd
=
rootNav
->
fileDef
())
&&
else
if
((
fd
=
rootNav
->
fileDef
())
&&
fd
->
name
().
right
(
2
)
==
".c"
(
fd
->
name
().
right
(
2
)
==
".c"
||
fd
->
name
().
right
(
2
)
==
".h"
)
)
)
{
// inside a .c file
{
// inside a .c file
result
=
FALSE
;
result
=
FALSE
;
goto
done
;
goto
done
;
...
@@ -2333,9 +2329,9 @@ static bool isVarWithConstructor(EntryNav *rootNav)
...
@@ -2333,9 +2329,9 @@ static bool isVarWithConstructor(EntryNav *rootNav)
}
}
done
:
done
:
//printf("isVarWithConstructor(%s,%s)=%d\n",rootNav->parent()->name().data(),
// root->type.data(),result);
rootNav
->
releaseEntry
();
rootNav
->
releaseEntry
();
//printf("isVarWithConstructor(%s,%s)=%d\n",root->parent->name.data(),
// root->type.data(),result);
return
result
;
return
result
;
}
}
...
@@ -6828,53 +6824,56 @@ static void computeMemberRelations()
...
@@ -6828,53 +6824,56 @@ static void computeMemberRelations()
{
{
MemberNameIterator
mdi
(
*
mn
);
MemberNameIterator
mdi
(
*
mn
);
MemberDef
*
md
;
MemberDef
*
md
;
for
(
;
(
md
=
mdi
.
current
())
;
++
mdi
)
// for each member with a specific
arg list
for
(
;
(
md
=
mdi
.
current
())
;
++
mdi
)
// for each member with a specific
name
{
{
MemberNameIterator
bmdi
(
*
mn
);
MemberDef
*
bmd
=
mn
->
first
();
// for each other member with the same name
MemberDef
*
bmd
;
while
(
bmd
)
for
(
;
(
bmd
=
bmdi
.
current
())
;
++
bmdi
)
// for each other member with that signature
{
{
ClassDef
*
bmcd
=
bmd
->
getClassDef
();
ClassDef
*
mcd
=
md
->
getClassDef
();
ClassDef
*
mcd
=
md
->
getClassDef
();
//printf("Check relation between `%s'::`%s' (%p) and `%s'::`%s' (%p)\n",
if
(
mcd
&&
mcd
->
baseClasses
())
// mcd->name().data(),md->name().data(),md,
// bmcd->name().data(),bmd->name().data(),bmd
// );
if
(
md
!=
bmd
&&
bmcd
&&
mcd
&&
bmcd
!=
mcd
&&
mcd
->
isBaseClass
(
bmcd
,
TRUE
))
{
{
//printf(" Base argList=`%s'\n Super argList=`%s'\n",
ClassDef
*
bmcd
=
bmd
->
getClassDef
();
// argListToString(bmd->argumentList()).data(),
//printf("Check relation between `%s'::`%s' (%p) and `%s'::`%s' (%p)\n",
// argListToString(md->argumentList()).data()
// mcd->name().data(),md->name().data(),md,
// bmcd->name().data(),bmd->name().data(),bmd
// );
// );
LockingPtr
<
ArgumentList
>
bmdAl
=
bmd
->
argumentList
();
if
(
md
!=
bmd
&&
bmcd
&&
mcd
&&
bmcd
!=
mcd
&&
mcd
->
isBaseClass
(
bmcd
,
TRUE
))
LockingPtr
<
ArgumentList
>
mdAl
=
md
->
argumentList
();
if
(
matchArguments2
(
bmd
->
getOuterScope
(),
bmd
->
getFileDef
(),
bmdAl
.
pointer
(),
md
->
getOuterScope
(),
md
->
getFileDef
(),
mdAl
.
pointer
(),
TRUE
)
)
{
{
//printf(" match found!\n");
//printf(" Base argList=`%s'\n Super argList=`%s'\n",
if
(
mcd
&&
bmcd
&&
// argListToString(bmd->argumentList()).data(),
mcd
->
isLinkable
()
&&
bmcd
->
isLinkable
()
// argListToString(md->argumentList()).data()
// );
LockingPtr
<
ArgumentList
>
bmdAl
=
bmd
->
argumentList
();
LockingPtr
<
ArgumentList
>
mdAl
=
md
->
argumentList
();
if
(
matchArguments2
(
bmd
->
getOuterScope
(),
bmd
->
getFileDef
(),
bmdAl
.
pointer
(),
md
->
getOuterScope
(),
md
->
getFileDef
(),
mdAl
.
pointer
(),
TRUE
)
)
)
{
{
MemberDef
*
rmd
;
//printf(" match found!\n")
;
if
(
(
rmd
=
md
->
reimplements
())
==
0
||
if
(
mcd
&&
bmcd
&&
m
inClassDistance
(
mcd
,
bmcd
)
<
minClassDistance
(
mcd
,
rmd
->
getClassDef
()
)
m
cd
->
isLinkable
()
&&
bmcd
->
isLinkable
(
)
)
)
{
{
//printf("setting (new) reimplements member\n");
MemberDef
*
rmd
;
md
->
setReimplements
(
bmd
);
if
((
rmd
=
md
->
reimplements
())
==
0
||
minClassDistance
(
mcd
,
bmcd
)
<
minClassDistance
(
mcd
,
rmd
->
getClassDef
())
)
{
//printf("setting (new) reimplements member\n");
md
->
setReimplements
(
bmd
);
}
//printf("%s: add reimplements member %s\n",mcd->name().data(),bmcd->name().data());
//md->setImplements(bmd);
//printf("%s: add reimplementedBy member %s\n",bmcd->name().data(),mcd->name().data());
bmd
->
insertReimplementedBy
(
md
);
}
}
//printf("%s: add reimplements member %s\n",mcd->name().data(),bmcd->name().data());
}
//md->setImplements(bmd);
}
//printf("%s: add reimplementedBy member %s\n",bmcd->name().data(),mcd->name().data());
bmd
->
insertReimplementedBy
(
md
);
}
}
}
}
bmd
=
mn
->
next
();
}
}
}
}
}
}
...
@@ -7671,9 +7670,9 @@ static void buildPageList(EntryNav *rootNav)
...
@@ -7671,9 +7670,9 @@ static void buildPageList(EntryNav *rootNav)
QCString
title
=
root
->
args
.
stripWhiteSpace
();
QCString
title
=
root
->
args
.
stripWhiteSpace
();
if
(
title
.
isEmpty
())
title
=
theTranslator
->
trMainPage
();
if
(
title
.
isEmpty
())
title
=
theTranslator
->
trMainPage
();
addRefItem
(
root
->
sli
,
"page"
,
addRefItem
(
root
->
sli
,
"page"
,
Config_getBool
(
"GENERATE_TREEVIEW"
)
?
"main"
:
"index"
,
usingTreeIndex
(
)
?
"main"
:
"index"
,
title
title
);
);
rootNav
->
releaseEntry
();
rootNav
->
releaseEntry
();
}
}
...
@@ -7691,7 +7690,7 @@ static void findMainPage(EntryNav *rootNav)
...
@@ -7691,7 +7690,7 @@ static void findMainPage(EntryNav *rootNav)
{
{
//printf("Found main page! \n======\n%s\n=======\n",root->doc.data());
//printf("Found main page! \n======\n%s\n=======\n",root->doc.data());
QCString
title
=
root
->
args
.
stripWhiteSpace
();
QCString
title
=
root
->
args
.
stripWhiteSpace
();
QCString
indexName
=
Config_getBool
(
"GENERATE_TREEVIEW"
)
?
"main"
:
"index"
;
QCString
indexName
=
usingTreeIndex
(
)
?
"main"
:
"index"
;
Doxygen
::
mainPage
=
new
PageDef
(
root
->
fileName
,
root
->
startLine
,
Doxygen
::
mainPage
=
new
PageDef
(
root
->
fileName
,
root
->
startLine
,
indexName
,
root
->
brief
+
root
->
doc
,
title
);
indexName
,
root
->
brief
+
root
->
doc
,
title
);
//setFileNameForSections(root->anchors,"index",Doxygen::mainPage);
//setFileNameForSections(root->anchors,"index",Doxygen::mainPage);
...
@@ -9963,7 +9962,7 @@ void generateOutput()
...
@@ -9963,7 +9962,7 @@ void generateOutput()
outputList
->
add
(
new
HtmlGenerator
);
outputList
->
add
(
new
HtmlGenerator
);
HtmlGenerator
::
init
();
HtmlGenerator
::
init
();
if
(
Config_getBool
(
"GENERATE_HTMLHELP"
))
Doxygen
::
indexList
.
addIndex
(
new
HtmlHelp
);
if
(
Config_getBool
(
"GENERATE_HTMLHELP"
))
Doxygen
::
indexList
.
addIndex
(
new
HtmlHelp
);
if
(
Config_getBool
(
"GENERATE_TREEVIEW"
))
Doxygen
::
indexList
.
addIndex
(
new
FTVHelp
);
if
(
usingTreeIndex
(
))
Doxygen
::
indexList
.
addIndex
(
new
FTVHelp
);
if
(
Config_getBool
(
"GENERATE_DOCSET"
))
Doxygen
::
indexList
.
addIndex
(
new
DocSets
);
if
(
Config_getBool
(
"GENERATE_DOCSET"
))
Doxygen
::
indexList
.
addIndex
(
new
DocSets
);
Doxygen
::
indexList
.
initialize
();
Doxygen
::
indexList
.
initialize
();
if
(
Config_getBool
(
"HTML_DYNAMIC_SECTIONS"
))
HtmlGenerator
::
generateSectionImages
();
if
(
Config_getBool
(
"HTML_DYNAMIC_SECTIONS"
))
HtmlGenerator
::
generateSectionImages
();
...
...
src/doxygen_css.h
View file @
2ddfaa1d
...
@@ -407,6 +407,7 @@
...
@@ -407,6 +407,7 @@
" font-family: sans-serif;
\n
"
" font-family: sans-serif;
\n
"
" margin:0.5em;
\n
"
" margin:0.5em;
\n
"
"}
\n
"
"}
\n
"
"/* these are for tree view when used as main index */
\n
"
".directory {
\n
"
".directory {
\n
"
" font-size: 9pt;
\n
"
" font-size: 9pt;
\n
"
" font-weight: bold;
\n
"
" font-weight: bold;
\n
"
...
@@ -430,4 +431,28 @@
...
@@ -430,4 +431,28 @@
".directory img {
\n
"
".directory img {
\n
"
" vertical-align: -30%;
\n
"
" vertical-align: -30%;
\n
"
"}
\n
"
"}
\n
"
"/* these are for tree view when not used as main index */
\n
"
".directory-alt {
\n
"
" font-size: 100%;
\n
"
" font-weight: bold;
\n
"
"}
\n
"
".directory-alt h3 {
\n
"
" margin: 0px;
\n
"
" margin-top: 1em;
\n
"
" font-size: 11pt;
\n
"
"}
\n
"
".directory-alt > h3 {
\n
"
" margin-top: 0;
\n
"
"}
\n
"
".directory-alt p {
\n
"
" margin: 0px;
\n
"
" white-space: nowrap;
\n
"
"}
\n
"
".directory-alt div {
\n
"
" display: none;
\n
"
" margin: 0px;
\n
"
"}
\n
"
".directory-alt img {
\n
"
" vertical-align: -30%;
\n
"
"}
\n
"
"
\n
"
"
\n
"
src/fortranscanner.l
View file @
2ddfaa1d
...
@@ -325,7 +325,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC}
...
@@ -325,7 +325,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC}
yy_push_state(InterfaceBody);
yy_push_state(InterfaceBody);
startScope(last_entry);
startScope(last_entry);
}
}
<InterfaceBody>
"end"({BS_}"interface")?.*
{
<InterfaceBody>
^{BS}"end"({BS_}"interface")?
{
if (!endScope(current_root))
if (!endScope(current_root))
yyterminate();
yyterminate();
yy_pop_state();
yy_pop_state();
...
@@ -349,7 +349,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC}
...
@@ -349,7 +349,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC}
BEGIN(Module);
BEGIN(Module);
defaultProtection = Public;
defaultProtection = Public;
}
}
<Start,ModuleBody>
"end"({BS_}(module|program))?.*
{ // end module
<Start,ModuleBody>
^{BS}"end"({BS_}(module|program))?{BS}
{ // end module
resolveModuleProcedures(moduleProcedures, current_root);
resolveModuleProcedures(moduleProcedures, current_root);
if (!endScope(current_root))
if (!endScope(current_root))
yyterminate();
yyterminate();
...
@@ -415,7 +415,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC}
...
@@ -415,7 +415,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC}
/*------- module/global/typedef variable ---------------------------------------------------*/
/*------- module/global/typedef variable ---------------------------------------------------*/
<SubprogBody>
"end"({BS_}{SUBPROG})?.*
{
<SubprogBody>
^{BS}"end"({BS_}{SUBPROG})?{BS}
{
//cout << "1e=========> got end subprog: " << yytext << endl;
//cout << "1e=========> got end subprog: " << yytext << endl;
/* args is used for parameters in list of functions, argList for
/* args is used for parameters in list of functions, argList for
...
...
src/ftvhelp.cpp
View file @
2ddfaa1d
...
@@ -326,20 +326,17 @@ struct FTVNode
...
@@ -326,20 +326,17 @@ struct FTVNode
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
FTVHelp
*
FTVHelp
::
m_theInstance
=
0
;
/*! Constructs an ftv help object.
/*! Construm_cts an ftv help object.
* The object has to be \link initialize() initialized\endlink before it can
* The object has to be \link initialize() initialized\endlink before it can
* be used.
* be used.
*/
*/
FTVHelp
::
FTVHelp
()
FTVHelp
::
FTVHelp
(
bool
TLI
)
{
{
/* initial depth */
/* initial depth */
//m_dc = 0;
//m_cf = 0;
m_indentNodes
=
new
QList
<
FTVNode
>
[
MAX_INDENT
];
m_indentNodes
=
new
QList
<
FTVNode
>
[
MAX_INDENT
];
m_indentNodes
[
0
].
setAutoDelete
(
TRUE
);
m_indentNodes
[
0
].
setAutoDelete
(
TRUE
);
m_indent
=
0
;
m_indent
=
0
;
m_topLevelIndex
=
TLI
;
}
}
FTVHelp
::~
FTVHelp
()
FTVHelp
::~
FTVHelp
()
...
@@ -347,16 +344,6 @@ FTVHelp::~FTVHelp()
...
@@ -347,16 +344,6 @@ FTVHelp::~FTVHelp()
delete
[]
m_indentNodes
;
delete
[]
m_indentNodes
;
}
}
#if 0
/*! return a reference to the one and only instance of this class.
*/
FTVHelp *FTVHelp::getInstance()
{
if (m_theInstance==0) m_theInstance = new FTVHelp;
return m_theInstance;
}
#endif
/*! This will create a folder tree view table of contents file (tree.js).
/*! This will create a folder tree view table of contents file (tree.js).
* \sa finalize()
* \sa finalize()
*/
*/
...
@@ -371,9 +358,6 @@ void FTVHelp::initialize()
...
@@ -371,9 +358,6 @@ void FTVHelp::initialize()
void
FTVHelp
::
finalize
()
void
FTVHelp
::
finalize
()
{
{
generateTreeView
();
generateTreeView
();
generateTreeViewImages
();
delete
m_theInstance
;
m_theInstance
=
0
;
}
}
/*! Increase the level of the contents hierarchy.
/*! Increase the level of the contents hierarchy.
...
@@ -382,10 +366,8 @@ void FTVHelp::finalize()
...
@@ -382,10 +366,8 @@ void FTVHelp::finalize()
*/
*/
void
FTVHelp
::
incContentsDepth
()
void
FTVHelp
::
incContentsDepth
()
{
{
//int i; for (i=0;i<m_dc+1;i++) m_cts << " ";
m_indent
++
;
m_indent
++
;
ASSERT
(
m_indent
<
MAX_INDENT
);
ASSERT
(
m_indent
<
MAX_INDENT
);
//return m_indent;
}
}
/*! Decrease the level of the contents hierarchy.
/*! Decrease the level of the contents hierarchy.
...
@@ -394,8 +376,6 @@ void FTVHelp::incContentsDepth()
...
@@ -394,8 +376,6 @@ void FTVHelp::incContentsDepth()
*/
*/
void
FTVHelp
::
decContentsDepth
()
void
FTVHelp
::
decContentsDepth
()
{
{
//int i; for (i=0;i<m_dc;i++) m_cts << " ";
ASSERT
(
m_indent
>
0
);
ASSERT
(
m_indent
>
0
);
if
(
m_indent
>
0
)
if
(
m_indent
>
0
)
{
{
...
@@ -408,7 +388,6 @@ void FTVHelp::decContentsDepth()
...
@@ -408,7 +388,6 @@ void FTVHelp::decContentsDepth()
parent
->
children
.
append
(
children
->
take
(
0
));
parent
->
children
.
append
(
children
->
take
(
0
));
}
}
}
}
//return m_indent;
}
}
/*! Add a list item to the contents file.
/*! Add a list item to the contents file.
...
@@ -423,7 +402,7 @@ void FTVHelp::addContentsItem(bool isDir,
...
@@ -423,7 +402,7 @@ void FTVHelp::addContentsItem(bool isDir,
const
char
*
ref
,
const
char
*
ref
,
const
char
*
file
,
const
char
*
file
,
const
char
*
anchor
const
char
*
anchor
)
)
{
{
QList
<
FTVNode
>
*
nl
=
&
m_indentNodes
[
m_indent
];
QList
<
FTVNode
>
*
nl
=
&
m_indentNodes
[
m_indent
];
FTVNode
*
newNode
=
new
FTVNode
(
isDir
,
ref
,
file
,
anchor
,
name
);
FTVNode
*
newNode
=
new
FTVNode
(
isDir
,
ref
,
file
,
anchor
,
name
);
...
@@ -516,7 +495,10 @@ void FTVHelp::generateLink(QTextStream &t,FTVNode *n)
...
@@ -516,7 +495,10 @@ void FTVHelp::generateLink(QTextStream &t,FTVNode *n)
}
}
t
<<
n
->
file
<<
Doxygen
::
htmlFileExtension
;
t
<<
n
->
file
<<
Doxygen
::
htmlFileExtension
;
if
(
!
n
->
anchor
.
isEmpty
())
t
<<
"#"
<<
n
->
anchor
;
if
(
!
n
->
anchor
.
isEmpty
())
t
<<
"#"
<<
n
->
anchor
;
t
<<
"
\"
target=
\"
basefrm
\"
>"
;
if
(
m_topLevelIndex
)
t
<<
"
\"
target=
\"
basefrm
\"
>"
;
else
t
<<
"
\"
target=
\"
_self
\"
>"
;
t
<<
n
->
name
;
t
<<
n
->
name
;
t
<<
"</a>"
;
t
<<
"</a>"
;
if
(
!
n
->
ref
.
isEmpty
())
if
(
!
n
->
ref
.
isEmpty
())
...
@@ -580,59 +562,62 @@ void FTVHelp::generateTreeViewImages()
...
@@ -580,59 +562,62 @@ void FTVHelp::generateTreeViewImages()
}
}
}
}
void
FTVHelp
::
generateTreeView
()
void
FTVHelp
::
generateTreeView
(
QString
*
OutString
)
{
{
// Generate alternative index.html as a frame
QCString
fileName
;
QCString
fileName
=
Config_getString
(
"HTML_OUTPUT"
)
+
"/index"
+
Doxygen
::
htmlFileExtension
;
QFile
f
;
QFile
f
;
f
.
setName
(
fileName
);
if
(
!
f
.
open
(
IO_WriteOnly
))
generateTreeViewImages
();
{
err
(
"Cannot open file %s for writing!
\n
"
,
fileName
.
data
());
// If top level index, generate alternative index.html as a frame
return
;
if
(
m_topLevelIndex
)
}
else
{
{
QTextStream
t
(
&
f
);
fileName
=
Config_getString
(
"HTML_OUTPUT"
)
+
"/index"
+
Doxygen
::
htmlFileExtension
;
#if QT_VERSION >= 200
f
.
setName
(
fileName
);
t
.
setEncoding
(
QTextStream
::
UnicodeUTF8
);
if
(
!
f
.
open
(
IO_WriteOnly
))
#endif
t
<<
"<!DOCTYPE HTML PUBLIC
\"
-//W3C//DTD HTML 4.01 Frameset//EN
\"
>
\n
"
;
t
<<
"<html><head>"
;
t
<<
"<meta http-equiv=
\"
Content-Type
\"
content=
\"
text/html;charset=UTF-8
\"
>
\n
"
;
t
<<
"<title>"
;
if
(
Config_getString
(
"PROJECT_NAME"
).
isEmpty
())
{
{
t
<<
"Doxygen Documentation"
;
err
(
"Cannot open file %s for writing!
\n
"
,
fileName
.
data
());
return
;
}
}
else
else
{
{
t
<<
Config_getString
(
"PROJECT_NAME"
);
QTextStream
t
(
&
f
);
#if QT_VERSION >= 200
t
.
setEncoding
(
QTextStream
::
UnicodeUTF8
);
#endif
t
<<
"<!DOCTYPE HTML PUBLIC
\"
-//W3C//DTD HTML 4.01 Frameset//EN
\"
>
\n
"
;
t
<<
"<html><head>"
;
t
<<
"<meta http-equiv=
\"
Content-Type
\"
content=
\"
text/html;charset=UTF-8
\"
>
\n
"
;
t
<<
"<title>"
;
if
(
Config_getString
(
"PROJECT_NAME"
).
isEmpty
())
{
t
<<
"Doxygen Documentation"
;
}
else
{
t
<<
Config_getString
(
"PROJECT_NAME"
);
}
t
<<
"</title></head>"
<<
endl
;
t
<<
"<frameset cols=
\"
"
<<
Config_getInt
(
"TREEVIEW_WIDTH"
)
<<
",*
\"
>"
<<
endl
;
t
<<
" <frame src=
\"
tree"
<<
Doxygen
::
htmlFileExtension
<<
"
\"
name=
\"
treefrm
\"
>"
<<
endl
;
t
<<
" <frame src=
\"
main"
<<
Doxygen
::
htmlFileExtension
<<
"
\"
name=
\"
basefrm
\"
>"
<<
endl
;
t
<<
" <noframes>"
<<
endl
;
t
<<
" <a href=
\"
main"
<<
Doxygen
::
htmlFileExtension
<<
"
\"
>Frames are disabled. Click here to go to the main page.</a>"
<<
endl
;
t
<<
" </noframes>"
<<
endl
;
t
<<
"</frameset>"
<<
endl
;
t
<<
"</html>"
<<
endl
;
f
.
close
();
}
}
t
<<
"</title></head>"
<<
endl
;
t
<<
"<frameset cols=
\"
"
<<
Config_getInt
(
"TREEVIEW_WIDTH"
)
<<
",*
\"
>"
<<
endl
;
t
<<
" <frame src=
\"
tree"
<<
Doxygen
::
htmlFileExtension
<<
"
\"
name=
\"
treefrm
\"
>"
<<
endl
;
t
<<
" <frame src=
\"
main"
<<
Doxygen
::
htmlFileExtension
<<
"
\"
name=
\"
basefrm
\"
>"
<<
endl
;
t
<<
" <noframes>"
<<
endl
;
t
<<
" <a href=
\"
main"
<<
Doxygen
::
htmlFileExtension
<<
"
\"
>Frames are disabled. Click here to go to the main page.</a>"
<<
endl
;
t
<<
" </noframes>"
<<
endl
;
t
<<
"</frameset>"
<<
endl
;
t
<<
"</html>"
<<
endl
;
f
.
close
();
}
}
// Generate tree view frame
// Generate tree view
fileName
=
Config_getString
(
"HTML_OUTPUT"
)
+
"/tree"
+
Doxygen
::
htmlFileExtension
;
if
(
!
OutString
)
f
.
setName
(
fileName
);
OutString
=
new
QString
;
if
(
!
f
.
open
(
IO_WriteOnly
))
QTextOStream
t
(
OutString
);
{
t
.
setEncoding
(
QTextStream
::
UnicodeUTF8
);
err
(
"Cannot open file %s for writing!
\n
"
,
fileName
.
data
());
return
;
if
(
m_topLevelIndex
)
}
else
{
{
QTextStream
t
(
&
f
);
t
.
setEncoding
(
QTextStream
::
UnicodeUTF8
);
t
<<
"<html xmlns=
\"
http://www.w3.org/1999/xhtml
\"
xml:lang=
\"
en
\"
lang=
\"
en
\"
>
\n
"
;
t
<<
"<html xmlns=
\"
http://www.w3.org/1999/xhtml
\"
xml:lang=
\"
en
\"
lang=
\"
en
\"
>
\n
"
;
t
<<
" <head>
\n
"
;
t
<<
" <head>
\n
"
;
t
<<
" <meta http-equiv=
\"
Content-Type
\"
content=
\"
text/xhtml;charset=UTF-8
\"
/>
\n
"
;
t
<<
" <meta http-equiv=
\"
Content-Type
\"
content=
\"
text/xhtml;charset=UTF-8
\"
/>
\n
"
;
...
@@ -655,64 +640,67 @@ void FTVHelp::generateTreeView()
...
@@ -655,64 +640,67 @@ void FTVHelp::generateTreeView()
}
}
t
<<
"
\"
>"
<<
endl
;
t
<<
"
\"
>"
<<
endl
;
t
<<
" <title>TreeView</title>
\n
"
;
t
<<
" <title>TreeView</title>
\n
"
;
t
<<
" <script type=
\"
text/javascript
\"
>
\n
"
;
}
t
<<
" <!-- // Hide script from old browsers
\n
"
;
t
<<
" <script type=
\"
text/javascript
\"
>
\n
"
;
t
<<
"
\n
"
;
t
<<
" <!-- // Hide script from old browsers
\n
"
;
t
<<
"
\n
"
;
/* User has clicked on a node (folder or +/-) in the tree */
t
<<
" function toggleFolder(id, imageNode)
\n
"
;
/* User has clicked on a node (folder or +/-) in the tree */
t
<<
" {
\n
"
;
t
<<
" function toggleFolder(id, imageNode)
\n
"
;
t
<<
" var folder = document.getElementById(id);
\n
"
;
t
<<
" {
\n
"
;
t
<<
" var l = imageNode.src.length;
\n
"
;
t
<<
" var folder = document.getElementById(id);
\n
"
;
/* If the user clicks on the book icon, we move left one image so
t
<<
" var l = imageNode.src.length;
\n
"
;
* the code (below) will also adjust the '+' icon.
/* If the user clicks on the book icon, we move left one image so
*/
* the code (below) will also adjust the '+' icon.
t
<<
" if (imageNode.src.substring(l-20,l)==
\"
"
FTV_ICON_FILE
(
folderclosed
)
"
\"
||
\n
"
;
*/
t
<<
" imageNode.src.substring(l-18,l)==
\"
"
FTV_ICON_FILE
(
folderopen
)
"
\"
)
\n
"
;
t
<<
" if (imageNode.src.substring(l-20,l)==
\"
"
FTV_ICON_FILE
(
folderclosed
)
"
\"
||
\n
"
;
t
<<
" {
\n
"
;
t
<<
" imageNode.src.substring(l-18,l)==
\"
"
FTV_ICON_FILE
(
folderopen
)
"
\"
)
\n
"
;
t
<<
" imageNode = imageNode.previousSibling;
\n
"
;
t
<<
" {
\n
"
;
t
<<
" l = imageNode.src.length;
\n
"
;
t
<<
" imageNode = imageNode.previousSibling;
\n
"
;
t
<<
" }
\n
"
;
t
<<
" l = imageNode.src.length;
\n
"
;
t
<<
" if (folder == null)
\n
"
;
t
<<
" }
\n
"
;
t
<<
" {
\n
"
;
t
<<
" if (folder == null)
\n
"
;
t
<<
" }
\n
"
;
t
<<
" {
\n
"
;
/* Node controls a open section, we need to close it */
t
<<
" }
\n
"
;
t
<<
" else if (folder.style.display ==
\"
block
\"
)
\n
"
;
/* Node controls a open section, we need to close it */
t
<<
" {
\n
"
;
t
<<
" else if (folder.style.display ==
\"
block
\"
)
\n
"
;
t
<<
" if (imageNode != null)
\n
"
;
t
<<
" {
\n
"
;
t
<<
" {
\n
"
;
t
<<
" if (imageNode != null)
\n
"
;
t
<<
" imageNode.nextSibling.src =
\"
"
FTV_ICON_FILE
(
folderclosed
)
"
\"
;
\n
"
;
t
<<
" {
\n
"
;
t
<<
" if (imageNode.src.substring(l-13,l) ==
\"
"
FTV_ICON_FILE
(
mnode
)
"
\"
)
\n
"
;
t
<<
" imageNode.nextSibling.src =
\"
"
FTV_ICON_FILE
(
folderclosed
)
"
\"
;
\n
"
;
t
<<
" {
\n
"
;
t
<<
" if (imageNode.src.substring(l-13,l) ==
\"
"
FTV_ICON_FILE
(
mnode
)
"
\"
)
\n
"
;
t
<<
" imageNode.src =
\"
"
FTV_ICON_FILE
(
pnode
)
"
\"
;
\n
"
;
t
<<
" {
\n
"
;
t
<<
" }
\n
"
;
t
<<
" imageNode.src =
\"
"
FTV_ICON_FILE
(
pnode
)
"
\"
;
\n
"
;
t
<<
" else if (imageNode.src.substring(l-17,l) ==
\"
"
FTV_ICON_FILE
(
mlastnode
)
"
\"
)
\n
"
;
t
<<
" }
\n
"
;
t
<<
" {
\n
"
;
t
<<
" else if (imageNode.src.substring(l-17,l) ==
\"
"
FTV_ICON_FILE
(
mlastnode
)
"
\"
)
\n
"
;
t
<<
" imageNode.src =
\"
"
FTV_ICON_FILE
(
plastnode
)
"
\"
;
\n
"
;
t
<<
" {
\n
"
;
t
<<
" }
\n
"
;
t
<<
" imageNode.src =
\"
"
FTV_ICON_FILE
(
plastnode
)
"
\"
;
\n
"
;
t
<<
" }
\n
"
;
t
<<
" }
\n
"
;
t
<<
" folder.style.display =
\"
none
\"
;
\n
"
;
t
<<
" }
\n
"
;
t
<<
" }
\n
"
;
t
<<
" folder.style.display =
\"
none
\"
;
\n
"
;
t
<<
" else
\n
"
;
/* section is closed, we need to open it */
t
<<
" }
\n
"
;
t
<<
" {
\n
"
;
t
<<
" else
\n
"
;
/* section is closed, we need to open it */
t
<<
" if (imageNode != null)
\n
"
;
t
<<
" {
\n
"
;
t
<<
" {
\n
"
;
t
<<
" if (imageNode != null)
\n
"
;
t
<<
" imageNode.nextSibling.src =
\"
"
FTV_ICON_FILE
(
folderopen
)
"
\"
;
\n
"
;
t
<<
" {
\n
"
;
t
<<
" if (imageNode.src.substring(l-13,l) ==
\"
"
FTV_ICON_FILE
(
pnode
)
"
\"
)
\n
"
;
t
<<
" imageNode.nextSibling.src =
\"
"
FTV_ICON_FILE
(
folderopen
)
"
\"
;
\n
"
;
t
<<
" {
\n
"
;
t
<<
" if (imageNode.src.substring(l-13,l) ==
\"
"
FTV_ICON_FILE
(
pnode
)
"
\"
)
\n
"
;
t
<<
" imageNode.src =
\"
"
FTV_ICON_FILE
(
mnode
)
"
\"
;
\n
"
;
t
<<
" {
\n
"
;
t
<<
" }
\n
"
;
t
<<
" imageNode.src =
\"
"
FTV_ICON_FILE
(
mnode
)
"
\"
;
\n
"
;
t
<<
" else if (imageNode.src.substring(l-17,l) ==
\"
"
FTV_ICON_FILE
(
plastnode
)
"
\"
)
\n
"
;
t
<<
" }
\n
"
;
t
<<
" {
\n
"
;
t
<<
" else if (imageNode.src.substring(l-17,l) ==
\"
"
FTV_ICON_FILE
(
plastnode
)
"
\"
)
\n
"
;
t
<<
" imageNode.src =
\"
"
FTV_ICON_FILE
(
mlastnode
)
"
\"
;
\n
"
;
t
<<
" {
\n
"
;
t
<<
" }
\n
"
;
t
<<
" imageNode.src =
\"
"
FTV_ICON_FILE
(
mlastnode
)
"
\"
;
\n
"
;
t
<<
" }
\n
"
;
t
<<
" }
\n
"
;
t
<<
" folder.style.display =
\"
block
\"
;
\n
"
;
t
<<
" }
\n
"
;
t
<<
" }
\n
"
;
t
<<
" folder.style.display =
\"
block
\"
;
\n
"
;
t
<<
" }
\n
"
;
t
<<
" }
\n
"
;
t
<<
"
\n
"
;
t
<<
" }
\n
"
;
t
<<
" // End script hiding -->
\n
"
;
t
<<
"
\n
"
;
t
<<
" </script>
\n
"
;
t
<<
" // End script hiding -->
\n
"
;
t
<<
" </script>
\n
"
;
if
(
m_topLevelIndex
)
{
t
<<
" </head>
\n
"
;
t
<<
" </head>
\n
"
;
t
<<
"
\n
"
;
t
<<
"
\n
"
;
t
<<
" <body class=
\"
ftvtree
\"
>
\n
"
;
t
<<
" <body class=
\"
ftvtree
\"
>
\n
"
;
...
@@ -728,16 +716,40 @@ void FTVHelp::generateTreeView()
...
@@ -728,16 +716,40 @@ void FTVHelp::generateTreeView()
t
<<
projName
;
t
<<
projName
;
}
}
t
<<
"</h3>
\n
"
;
t
<<
"</h3>
\n
"
;
t
<<
" <div style=
\"
display: block;
\"
>
\n
"
;
}
else
{
t
<<
" <div class=
\"
directory-alt
\"
>
\n
"
;
t
<<
" <br>
\n
"
;
}
t
<<
" <div style=
\"
display: block;
\"
>
\n
"
;
generateTree
(
t
,
m_indentNodes
[
0
],
0
);
generateTree
(
t
,
m_indentNodes
[
0
],
0
);
t
<<
" </div>
\n
"
;
t
<<
" </div>
\n
"
;
t
<<
" </div>
\n
"
;
t
<<
" </div>
\n
"
;
if
(
!
m_topLevelIndex
)
{
t
<<
" </body>
\n
"
;
t
<<
" </body>
\n
"
;
t
<<
"</html>
\n
"
;
t
<<
"</html>
\n
"
;
}
}
generateTreeViewImages
();
if
(
m_topLevelIndex
)
{
fileName
=
Config_getString
(
"HTML_OUTPUT"
)
+
"/tree"
+
Doxygen
::
htmlFileExtension
;
f
.
setName
(
fileName
);
if
(
!
f
.
open
(
IO_WriteOnly
))
{
err
(
"Cannot open file %s for writing!
\n
"
,
fileName
.
data
());
return
;
}
else
{
QTextStream
t
(
&
f
);
t
<<
*
OutString
<<
endl
;
f
.
close
();
}
}
}
}
src/ftvhelp.h
View file @
2ddfaa1d
/******************************************************************************
*
* Copyright (C) 1997-2008 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
/******************************************************************************
/******************************************************************************
* ftvhelp.h,v 1.0 2000/09/06 16:09:00
* ftvhelp.h,v 1.0 2000/09/06 16:09:00
*
*
* Kenney Wong <kwong@ea.com>
* Kenney Wong <kwong@ea.com>
*
*
* Folder Tree View for offline help on browsers that do not support HTML Help.
* Folder Tree View for offline help on browsers that do not support HTML Help.
* Uses the FTV structure from:
* http://www.geocities.com/Paris/LeftBank/2178/ftexample.html
*/
*/
#ifndef FTVHELP_H
#ifndef FTVHELP_H
...
@@ -58,8 +71,8 @@ extern FTVImageInfo image_info[];
...
@@ -58,8 +71,8 @@ extern FTVImageInfo image_info[];
class
FTVHelp
:
public
IndexIntf
class
FTVHelp
:
public
IndexIntf
{
{
public
:
public
:
FTVHelp
();
FTVHelp
(
bool
topLevelIndex
=
true
);
//static FTVHelp *getInstance
();
~
FTVHelp
();
void
initialize
();
void
initialize
();
void
finalize
();
void
finalize
();
void
incContentsDepth
();
void
incContentsDepth
();
...
@@ -73,17 +86,15 @@ class FTVHelp : public IndexIntf
...
@@ -73,17 +86,15 @@ class FTVHelp : public IndexIntf
const
char
*
,
const
char
*
,
const
char
*
,
const
char
*
,
const
char
*
,
const
MemberDef
*
)
{}
const
char
*
,
const
MemberDef
*
)
{}
void
addIndexFile
(
const
char
*
)
{}
void
addIndexFile
(
const
char
*
)
{}
void
generateTreeView
(
QString
*
=
NULL
);
private
:
private
:
void
generateTreeViewImages
();
void
generateTreeViewImages
();
void
generateTreeView
();
void
generateTree
(
QTextStream
&
t
,
const
QList
<
FTVNode
>
&
nl
,
int
level
);
void
generateTree
(
QTextStream
&
t
,
const
QList
<
FTVNode
>
&
nl
,
int
level
);
void
generateIndent
(
QTextStream
&
t
,
FTVNode
*
n
,
int
level
);
void
generateIndent
(
QTextStream
&
t
,
FTVNode
*
n
,
int
level
);
void
generateLink
(
QTextStream
&
t
,
FTVNode
*
n
);
void
generateLink
(
QTextStream
&
t
,
FTVNode
*
n
);
~
FTVHelp
();
static
FTVHelp
*
m_theInstance
;
QList
<
FTVNode
>
*
m_indentNodes
;
QList
<
FTVNode
>
*
m_indentNodes
;
int
m_indent
;
int
m_indent
;
bool
m_topLevelIndex
;
};
};
...
...
src/groupdef.h
View file @
2ddfaa1d
...
@@ -39,6 +39,7 @@ class PageSDict;
...
@@ -39,6 +39,7 @@ class PageSDict;
class
PageDef
;
class
PageDef
;
class
DirDef
;
class
DirDef
;
class
DirList
;
class
DirList
;
class
FTVHelp
;
class
GroupDef
:
public
Definition
class
GroupDef
:
public
Definition
{
{
...
@@ -86,7 +87,7 @@ class GroupDef : public Definition
...
@@ -86,7 +87,7 @@ class GroupDef : public Definition
bool
visited
;
// number of times accessed for output - KPW
bool
visited
;
// number of times accessed for output - KPW
friend
void
writeGroupTreeNode
(
OutputList
&
,
GroupDef
*
,
int
);
friend
void
writeGroupTreeNode
(
OutputList
&
,
GroupDef
*
,
int
,
FTVHelp
*
);
// make accessible for writing tree view of group in index.cpp - KPW
// make accessible for writing tree view of group in index.cpp - KPW
void
setGroupScope
(
Definition
*
d
)
{
groupScope
=
d
;
}
void
setGroupScope
(
Definition
*
d
)
{
groupScope
=
d
;
}
...
...
src/htmlgen.cpp
View file @
2ddfaa1d
...
@@ -978,7 +978,7 @@ void HtmlGenerator::endTextLink()
...
@@ -978,7 +978,7 @@ void HtmlGenerator::endTextLink()
void
HtmlGenerator
::
startHtmlLink
(
const
char
*
url
)
void
HtmlGenerator
::
startHtmlLink
(
const
char
*
url
)
{
{
t
<<
"<a "
;
t
<<
"<a "
;
if
(
Config_getBool
(
"GENERATE_TREEVIEW"
))
t
<<
"target=
\"
top
\"
"
;
if
(
usingTreeIndex
(
))
t
<<
"target=
\"
top
\"
"
;
t
<<
"href=
\"
"
;
t
<<
"href=
\"
"
;
if
(
url
)
t
<<
url
;
if
(
url
)
t
<<
url
;
t
<<
"
\"
>"
;
t
<<
"
\"
>"
;
...
@@ -1618,17 +1618,17 @@ void HtmlGenerator::writeNonBreakableSpace(int n)
...
@@ -1618,17 +1618,17 @@ void HtmlGenerator::writeNonBreakableSpace(int n)
}
}
}
}
void
HtmlGenerator
::
writeLineNumber
(
const
char
*
ref
,
const
char
*
file
,
void
HtmlGenerator
::
writeLineNumber
(
const
char
*
ref
,
const
char
*
file
name
,
const
char
*
anchor
,
int
l
)
const
char
*
anchor
,
int
l
)
{
{
QCString
lineNumber
,
lineAnchor
;
QCString
lineNumber
,
lineAnchor
;
lineNumber
.
sprintf
(
"%05d"
,
l
);
lineNumber
.
sprintf
(
"%05d"
,
l
);
lineAnchor
.
sprintf
(
"l%05d"
,
l
);
lineAnchor
.
sprintf
(
"l%05d"
,
l
);
if
(
file
)
if
(
file
name
)
{
{
startCodeAnchor
(
lineAnchor
);
startCodeAnchor
(
lineAnchor
);
writeCodeLink
(
ref
,
file
,
anchor
,
lineNumber
,
0
);
writeCodeLink
(
ref
,
file
name
,
anchor
,
lineNumber
,
0
);
endCodeAnchor
();
endCodeAnchor
();
}
}
else
else
...
@@ -1641,13 +1641,13 @@ void HtmlGenerator::writeLineNumber(const char *ref,const char *file,
...
@@ -1641,13 +1641,13 @@ void HtmlGenerator::writeLineNumber(const char *ref,const char *file,
}
}
void
HtmlGenerator
::
startSimpleSect
(
SectionTypes
,
void
HtmlGenerator
::
startSimpleSect
(
SectionTypes
,
const
char
*
file
,
const
char
*
anchor
,
const
char
*
file
name
,
const
char
*
anchor
,
const
char
*
title
)
const
char
*
title
)
{
{
t
<<
"<dl compact><dt><b>"
;
t
<<
"<dl compact><dt><b>"
;
if
(
file
)
if
(
file
name
)
{
{
writeObjectLink
(
0
,
file
,
anchor
,
title
);
writeObjectLink
(
0
,
file
name
,
anchor
,
title
);
}
}
else
else
{
{
...
@@ -1867,7 +1867,7 @@ static void writeDefaultQuickLinks(QTextStream &t,bool compact,
...
@@ -1867,7 +1867,7 @@ static void writeDefaultQuickLinks(QTextStream &t,bool compact,
bool
vhdlOpt
=
Config_getBool
(
"OPTIMIZE_OUTPUT_VHDL"
);
bool
vhdlOpt
=
Config_getBool
(
"OPTIMIZE_OUTPUT_VHDL"
);
startQuickIndexList
(
t
,
compact
);
startQuickIndexList
(
t
,
compact
);
if
(
Config_getBool
(
"GENERATE_TREEVIEW"
))
if
(
usingTreeIndex
(
))
{
{
startQuickIndexItem
(
t
,
"main"
+
Doxygen
::
htmlFileExtension
,
startQuickIndexItem
(
t
,
"main"
+
Doxygen
::
htmlFileExtension
,
hli
==
HLI_Main
,
compact
,
relPath
);
hli
==
HLI_Main
,
compact
,
relPath
);
...
...
src/htmlhelp.cpp
View file @
2ddfaa1d
...
@@ -415,7 +415,7 @@ void HtmlHelp::createProjectFile()
...
@@ -415,7 +415,7 @@ void HtmlHelp::createProjectFile()
QCString
indexName
=
"index"
+
Doxygen
::
htmlFileExtension
;
QCString
indexName
=
"index"
+
Doxygen
::
htmlFileExtension
;
if
(
Config_getBool
(
"GENERATE_TREEVIEW"
))
indexName
=
"main"
+
Doxygen
::
htmlFileExtension
;
if
(
usingTreeIndex
(
))
indexName
=
"main"
+
Doxygen
::
htmlFileExtension
;
t
<<
"[OPTIONS]
\n
"
;
t
<<
"[OPTIONS]
\n
"
;
if
(
!
Config_getString
(
"CHM_FILE"
).
isEmpty
())
if
(
!
Config_getString
(
"CHM_FILE"
).
isEmpty
())
{
{
...
@@ -433,9 +433,16 @@ void HtmlHelp::createProjectFile()
...
@@ -433,9 +433,16 @@ void HtmlHelp::createProjectFile()
t
<<
"Title="
<<
Config_getString
(
"PROJECT_NAME"
)
<<
endl
<<
endl
;
t
<<
"Title="
<<
Config_getString
(
"PROJECT_NAME"
)
<<
endl
<<
endl
;
t
<<
"[WINDOWS]"
<<
endl
;
t
<<
"[WINDOWS]"
<<
endl
;
// NOTE: the 0x10387e number is a set of bits specifying the buttons
// which should appear in the CHM viewer; that specific value
// means "show all buttons including the font-size one";
// the font-size one is not normally settable by the HTML Help Workshop
// utility but the way to set it is described here:
// http://support.microsoft.com/?scid=kb%3Ben-us%3B240062&x=17&y=18
t
<<
"main=
\"
"
<<
Config_getString
(
"PROJECT_NAME"
)
<<
"
\"
,
\"
index.hhc
\"
,"
t
<<
"main=
\"
"
<<
Config_getString
(
"PROJECT_NAME"
)
<<
"
\"
,
\"
index.hhc
\"
,"
"
\"
index.hhk
\"
,
\"
"
<<
indexName
<<
"
\"
,
\"
"
<<
"
\"
index.hhk
\"
,
\"
"
<<
indexName
<<
"
\"
,
\"
"
<<
indexName
<<
"
\"
,,,,,0x23520,,0x387e,,,,,,,,0"
<<
endl
<<
endl
;
indexName
<<
"
\"
,,,,,0x23520,,0x
10
387e,,,,,,,,0"
<<
endl
<<
endl
;
t
<<
"[FILES]"
<<
endl
;
t
<<
"[FILES]"
<<
endl
;
char
*
s
=
indexFiles
.
first
();
char
*
s
=
indexFiles
.
first
();
...
...
src/index.cpp
View file @
2ddfaa1d
...
@@ -318,7 +318,7 @@ static bool classHasVisibleChildren(ClassDef *cd)
...
@@ -318,7 +318,7 @@ static bool classHasVisibleChildren(ClassDef *cd)
return
FALSE
;
return
FALSE
;
}
}
void
writeClassTree
(
OutputList
&
ol
,
BaseClassList
*
bcl
,
bool
hideSuper
,
int
level
)
void
writeClassTree
(
OutputList
&
ol
,
BaseClassList
*
bcl
,
bool
hideSuper
,
int
level
,
FTVHelp
*
ftv
)
{
{
if
(
bcl
==
0
)
return
;
if
(
bcl
==
0
)
return
;
BaseClassListIterator
bcli
(
*
bcl
);
BaseClassListIterator
bcli
(
*
bcl
);
...
@@ -332,6 +332,8 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level)
...
@@ -332,6 +332,8 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level)
{
{
startIndexHierarchy
(
ol
,
level
);
startIndexHierarchy
(
ol
,
level
);
Doxygen
::
indexList
.
incContentsDepth
();
Doxygen
::
indexList
.
incContentsDepth
();
if
(
ftv
)
ftv
->
incContentsDepth
();
started
=
TRUE
;
started
=
TRUE
;
}
}
//printf("Passed...\n");
//printf("Passed...\n");
...
@@ -349,11 +351,9 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level)
...
@@ -349,11 +351,9 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level)
ol
.
docify
(
" [external]"
);
ol
.
docify
(
" [external]"
);
ol
.
endTypewriter
();
ol
.
endTypewriter
();
}
}
Doxygen
::
indexList
.
addContentsItem
(
hasChildren
,
Doxygen
::
indexList
.
addContentsItem
(
hasChildren
,
cd
->
displayName
(),
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
0
);
cd
->
displayName
(),
if
(
ftv
)
cd
->
getReference
(),
ftv
->
addContentsItem
(
hasChildren
,
cd
->
displayName
(),
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
0
);
cd
->
getOutputFileBase
(),
0
);
}
}
else
else
{
{
...
@@ -361,13 +361,15 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level)
...
@@ -361,13 +361,15 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level)
ol
.
parseText
(
cd
->
name
());
ol
.
parseText
(
cd
->
name
());
ol
.
endIndexItem
(
0
,
0
);
ol
.
endIndexItem
(
0
,
0
);
Doxygen
::
indexList
.
addContentsItem
(
hasChildren
,
cd
->
displayName
(),
0
,
0
,
0
);
Doxygen
::
indexList
.
addContentsItem
(
hasChildren
,
cd
->
displayName
(),
0
,
0
,
0
);
if
(
ftv
)
ftv
->
addContentsItem
(
hasChildren
,
cd
->
displayName
(),
0
,
0
,
0
);
}
}
if
(
hasChildren
)
if
(
hasChildren
)
{
{
//printf("Class %s at %p visited=%d\n",cd->name().data(),cd,cd->visited);
//printf("Class %s at %p visited=%d\n",cd->name().data(),cd,cd->visited);
bool
wasVisited
=
cd
->
visited
;
bool
wasVisited
=
cd
->
visited
;
cd
->
visited
=
TRUE
;
cd
->
visited
=
TRUE
;
writeClassTree
(
ol
,
cd
->
subClasses
(),
wasVisited
,
level
+
1
);
writeClassTree
(
ol
,
cd
->
subClasses
(),
wasVisited
,
level
+
1
,
ftv
);
}
}
}
}
}
}
...
@@ -375,6 +377,8 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level)
...
@@ -375,6 +377,8 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level)
{
{
endIndexHierarchy
(
ol
,
level
);
endIndexHierarchy
(
ol
,
level
);
Doxygen
::
indexList
.
decContentsDepth
();
Doxygen
::
indexList
.
decContentsDepth
();
if
(
ftv
)
ftv
->
decContentsDepth
();
}
}
}
}
...
@@ -475,7 +479,7 @@ void writeClassTree(ClassSDict *d,int level)
...
@@ -475,7 +479,7 @@ void writeClassTree(ClassSDict *d,int level)
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
static
void
writeClassTreeForList
(
OutputList
&
ol
,
ClassSDict
*
cl
,
bool
&
started
)
static
void
writeClassTreeForList
(
OutputList
&
ol
,
ClassSDict
*
cl
,
bool
&
started
,
FTVHelp
*
ftv
)
{
{
ClassSDict
::
Iterator
cli
(
*
cl
);
ClassSDict
::
Iterator
cli
(
*
cl
);
for
(;
cli
.
current
();
++
cli
)
for
(;
cli
.
current
();
++
cli
)
...
@@ -512,6 +516,8 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started)
...
@@ -512,6 +516,8 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started)
ol
.
endTypewriter
();
ol
.
endTypewriter
();
}
}
Doxygen
::
indexList
.
addContentsItem
(
hasChildren
,
cd
->
displayName
(),
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
0
);
Doxygen
::
indexList
.
addContentsItem
(
hasChildren
,
cd
->
displayName
(),
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
0
);
if
(
ftv
)
ftv
->
addContentsItem
(
hasChildren
,
cd
->
displayName
(),
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
0
);
}
}
else
else
{
{
...
@@ -519,10 +525,12 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started)
...
@@ -519,10 +525,12 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started)
ol
.
parseText
(
cd
->
displayName
());
ol
.
parseText
(
cd
->
displayName
());
ol
.
endIndexItem
(
0
,
0
);
ol
.
endIndexItem
(
0
,
0
);
Doxygen
::
indexList
.
addContentsItem
(
hasChildren
,
cd
->
displayName
(),
0
,
0
,
0
);
Doxygen
::
indexList
.
addContentsItem
(
hasChildren
,
cd
->
displayName
(),
0
,
0
,
0
);
if
(
ftv
)
ftv
->
addContentsItem
(
hasChildren
,
cd
->
displayName
(),
0
,
0
,
0
);
}
}
if
(
hasChildren
)
if
(
hasChildren
)
{
{
writeClassTree
(
ol
,
cd
->
subClasses
(),
cd
->
visited
,
1
);
writeClassTree
(
ol
,
cd
->
subClasses
(),
cd
->
visited
,
1
,
ftv
);
cd
->
visited
=
TRUE
;
cd
->
visited
=
TRUE
;
}
}
}
}
...
@@ -530,19 +538,25 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started)
...
@@ -530,19 +538,25 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started)
}
}
}
}
void
writeClassHierarchy
(
OutputList
&
ol
)
void
writeClassHierarchy
(
OutputList
&
ol
,
FTVHelp
*
ftv
)
{
{
initClassHierarchy
(
Doxygen
::
classSDict
);
initClassHierarchy
(
Doxygen
::
classSDict
);
initClassHierarchy
(
Doxygen
::
hiddenClasses
);
initClassHierarchy
(
Doxygen
::
hiddenClasses
);
if
(
ftv
)
{
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Html
);
}
bool
started
=
FALSE
;
bool
started
=
FALSE
;
writeClassTreeForList
(
ol
,
Doxygen
::
classSDict
,
started
);
writeClassTreeForList
(
ol
,
Doxygen
::
classSDict
,
started
,
ftv
);
writeClassTreeForList
(
ol
,
Doxygen
::
hiddenClasses
,
started
);
writeClassTreeForList
(
ol
,
Doxygen
::
hiddenClasses
,
started
,
ftv
);
if
(
started
)
if
(
started
)
{
{
endIndexHierarchy
(
ol
,
0
);
endIndexHierarchy
(
ol
,
0
);
Doxygen
::
indexList
.
decContentsDepth
();
Doxygen
::
indexList
.
decContentsDepth
();
}
}
if
(
ftv
)
ol
.
popGeneratorState
();
}
}
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
...
@@ -612,7 +626,24 @@ void writeHierarchicalIndex(OutputList &ol)
...
@@ -612,7 +626,24 @@ void writeHierarchicalIndex(OutputList &ol)
}
}
ol
.
parseText
(
theTranslator
->
trClassHierarchyDescription
());
ol
.
parseText
(
theTranslator
->
trClassHierarchyDescription
());
ol
.
endTextBlock
();
ol
.
endTextBlock
();
writeClassHierarchy
(
ol
);
FTVHelp
*
ftv
=
NULL
;
QCString
&
TreeView
=
Config_getEnum
(
"GENERATE_TREEVIEW"
);
if
(
TreeView
==
"HIERARCHIES"
||
TreeView
==
"ALL"
)
ftv
=
new
FTVHelp
(
false
);
writeClassHierarchy
(
ol
,
ftv
);
if
(
ftv
)
{
QString
OutStr
;
ftv
->
generateTreeView
(
&
OutStr
);
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
writeString
(
OutStr
);
ol
.
popGeneratorState
();
delete
ftv
;
}
endFile
(
ol
);
endFile
(
ol
);
ol
.
popGeneratorState
();
ol
.
popGeneratorState
();
}
}
...
@@ -1415,7 +1446,7 @@ static void writeMemberList(OutputList &ol,bool useSections,int page,
...
@@ -1415,7 +1446,7 @@ static void writeMemberList(OutputList &ol,bool useSections,int page,
MemberDef
*
md
;
MemberDef
*
md
;
for
(
mli
.
toFirst
();(
md
=
mli
.
current
());
++
mli
)
for
(
mli
.
toFirst
();(
md
=
mli
.
current
());
++
mli
)
{
{
char
*
sep
;
c
onst
c
har
*
sep
;
bool
isFunc
=!
md
->
isObjCMethod
()
&&
bool
isFunc
=!
md
->
isObjCMethod
()
&&
(
md
->
isFunction
()
||
md
->
isSlot
()
||
md
->
isSignal
());
(
md
->
isFunction
()
||
md
->
isSlot
()
||
md
->
isSignal
());
QCString
name
=
md
->
name
();
QCString
name
=
md
->
name
();
...
@@ -2349,7 +2380,7 @@ void writeGroupIndexItem(GroupDef *gd,MemberList *ml,const QCString &title)
...
@@ -2349,7 +2380,7 @@ void writeGroupIndexItem(GroupDef *gd,MemberList *ml,const QCString &title)
* write groups as hierarchical trees
* write groups as hierarchical trees
* \author KPW
* \author KPW
*/
*/
void
writeGroupTreeNode
(
OutputList
&
ol
,
GroupDef
*
gd
,
int
level
)
void
writeGroupTreeNode
(
OutputList
&
ol
,
GroupDef
*
gd
,
int
level
,
FTVHelp
*
ftv
)
{
{
bool
fortranOpt
=
Config_getBool
(
"OPTIMIZE_FOR_FORTRAN"
);
bool
fortranOpt
=
Config_getBool
(
"OPTIMIZE_FOR_FORTRAN"
);
bool
vhdlOpt
=
Config_getBool
(
"OPTIMIZE_OUTPUT_VHDL"
);
bool
vhdlOpt
=
Config_getBool
(
"OPTIMIZE_OUTPUT_VHDL"
);
...
@@ -2394,12 +2425,17 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
...
@@ -2394,12 +2425,17 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
//printf("gd=`%s': pageDict=%d\n",gd->name().data(),gd->pageDict->count());
//printf("gd=`%s': pageDict=%d\n",gd->name().data(),gd->pageDict->count());
Doxygen
::
indexList
.
addContentsItem
(
isDir
,
gd
->
groupTitle
(),
gd
->
getReference
(),
gd
->
getOutputFileBase
(),
0
);
Doxygen
::
indexList
.
addContentsItem
(
isDir
,
gd
->
groupTitle
(),
gd
->
getReference
(),
gd
->
getOutputFileBase
(),
0
);
Doxygen
::
indexList
.
incContentsDepth
();
Doxygen
::
indexList
.
incContentsDepth
();
if
(
ftv
)
{
ftv
->
addContentsItem
(
isDir
,
gd
->
groupTitle
(),
gd
->
getReference
(),
gd
->
getOutputFileBase
(),
0
);
ftv
->
incContentsDepth
();
}
//ol.writeListItem();
//ol.writeListItem();
//ol.startTextLink(gd->getOutputFileBase(),0);
//ol.startTextLink(gd->getOutputFileBase(),0);
//parseText(ol,gd->groupTitle());
//parseText(ol,gd->groupTitle());
//ol.endTextLink();
//ol.endTextLink();
ol
.
startIndexItem
(
gd
->
getReference
(),
gd
->
getOutputFileBase
());
ol
.
startIndexItem
(
gd
->
getReference
(),
gd
->
getOutputFileBase
());
ol
.
parseText
(
gd
->
groupTitle
());
ol
.
parseText
(
gd
->
groupTitle
());
ol
.
endIndexItem
(
gd
->
getReference
(),
gd
->
getOutputFileBase
());
ol
.
endIndexItem
(
gd
->
getReference
(),
gd
->
getOutputFileBase
());
...
@@ -2422,11 +2458,10 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
...
@@ -2422,11 +2458,10 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
SectionInfo
*
si
=
0
;
SectionInfo
*
si
=
0
;
if
(
!
pd
->
name
().
isEmpty
())
si
=
Doxygen
::
sectionDict
[
pd
->
name
()];
if
(
!
pd
->
name
().
isEmpty
())
si
=
Doxygen
::
sectionDict
[
pd
->
name
()];
Doxygen
::
indexList
.
addContentsItem
(
FALSE
,
Doxygen
::
indexList
.
addContentsItem
(
FALSE
,
convertToHtml
(
pd
->
title
(),
TRUE
),
convertToHtml
(
pd
->
title
(),
TRUE
),
gd
->
getReference
(),
gd
->
getReference
(),
gd
->
getOutputFileBase
(),
gd
->
getOutputFileBase
(),
si
?
si
->
label
.
data
()
:
0
si
?
si
->
label
.
data
()
:
0
);
);
}
}
// write subgroups
// write subgroups
...
@@ -2439,7 +2474,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
...
@@ -2439,7 +2474,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
GroupDef
*
subgd
=
0
;
GroupDef
*
subgd
=
0
;
for
(
gli
.
toFirst
();(
subgd
=
gli
.
current
());
++
gli
)
for
(
gli
.
toFirst
();(
subgd
=
gli
.
current
());
++
gli
)
{
{
writeGroupTreeNode
(
ol
,
subgd
,
level
+
1
);
writeGroupTreeNode
(
ol
,
subgd
,
level
+
1
,
ftv
);
}
}
endIndexHierarchy
(
ol
,
level
+
1
);
endIndexHierarchy
(
ol
,
level
+
1
);
}
}
...
@@ -2538,13 +2573,19 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
...
@@ -2538,13 +2573,19 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
}
}
Doxygen
::
indexList
.
decContentsDepth
();
Doxygen
::
indexList
.
decContentsDepth
();
if
(
ftv
)
ftv
->
decContentsDepth
();
//gd->visited=TRUE;
//gd->visited=TRUE;
}
}
}
}
void
writeGroupHierarchy
(
OutputList
&
ol
)
void
writeGroupHierarchy
(
OutputList
&
ol
,
FTVHelp
*
ftv
)
{
{
if
(
ftv
)
{
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Html
);
}
startIndexHierarchy
(
ol
,
0
);
startIndexHierarchy
(
ol
,
0
);
if
(
Config_getBool
(
"SORT_GROUP_NAMES"
))
if
(
Config_getBool
(
"SORT_GROUP_NAMES"
))
Doxygen
::
groupSDict
->
sort
();
Doxygen
::
groupSDict
->
sort
();
...
@@ -2552,13 +2593,15 @@ void writeGroupHierarchy(OutputList &ol)
...
@@ -2552,13 +2593,15 @@ void writeGroupHierarchy(OutputList &ol)
GroupDef
*
gd
;
GroupDef
*
gd
;
for
(
gli
.
toFirst
();(
gd
=
gli
.
current
());
++
gli
)
for
(
gli
.
toFirst
();(
gd
=
gli
.
current
());
++
gli
)
{
{
writeGroupTreeNode
(
ol
,
gd
,
0
);
writeGroupTreeNode
(
ol
,
gd
,
0
,
ftv
);
}
}
endIndexHierarchy
(
ol
,
0
);
endIndexHierarchy
(
ol
,
0
);
if
(
ftv
)
ol
.
popGeneratorState
();
}
}
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
void
writeDirTreeNode
(
OutputList
&
ol
,
DirDef
*
dd
,
int
level
)
void
writeDirTreeNode
(
OutputList
&
ol
,
DirDef
*
dd
,
int
level
,
FTVHelp
*
ftv
)
{
{
if
(
level
>
20
)
if
(
level
>
20
)
{
{
...
@@ -2577,6 +2620,11 @@ void writeDirTreeNode(OutputList &ol, DirDef *dd,int level)
...
@@ -2577,6 +2620,11 @@ void writeDirTreeNode(OutputList &ol, DirDef *dd,int level)
//printf("gd=`%s': pageDict=%d\n",gd->name().data(),gd->pageDict->count());
//printf("gd=`%s': pageDict=%d\n",gd->name().data(),gd->pageDict->count());
Doxygen
::
indexList
.
addContentsItem
(
isDir
,
dd
->
shortName
(),
dd
->
getReference
(),
dd
->
getOutputFileBase
(),
0
);
Doxygen
::
indexList
.
addContentsItem
(
isDir
,
dd
->
shortName
(),
dd
->
getReference
(),
dd
->
getOutputFileBase
(),
0
);
Doxygen
::
indexList
.
incContentsDepth
();
Doxygen
::
indexList
.
incContentsDepth
();
if
(
ftv
)
{
ftv
->
addContentsItem
(
isDir
,
dd
->
shortName
(),
dd
->
getReference
(),
dd
->
getOutputFileBase
(),
0
);
ftv
->
incContentsDepth
();
}
ol
.
startIndexItem
(
dd
->
getReference
(),
dd
->
getOutputFileBase
());
ol
.
startIndexItem
(
dd
->
getReference
(),
dd
->
getOutputFileBase
());
ol
.
parseText
(
dd
->
shortName
());
ol
.
parseText
(
dd
->
shortName
());
...
@@ -2596,7 +2644,7 @@ void writeDirTreeNode(OutputList &ol, DirDef *dd,int level)
...
@@ -2596,7 +2644,7 @@ void writeDirTreeNode(OutputList &ol, DirDef *dd,int level)
DirDef
*
subdd
=
0
;
DirDef
*
subdd
=
0
;
for
(
dli
.
toFirst
();(
subdd
=
dli
.
current
());
++
dli
)
for
(
dli
.
toFirst
();(
subdd
=
dli
.
current
());
++
dli
)
{
{
writeDirTreeNode
(
ol
,
subdd
,
level
+
1
);
writeDirTreeNode
(
ol
,
subdd
,
level
+
1
,
ftv
);
}
}
endIndexHierarchy
(
ol
,
level
+
1
);
endIndexHierarchy
(
ol
,
level
+
1
);
}
}
...
@@ -2617,18 +2665,27 @@ void writeDirTreeNode(OutputList &ol, DirDef *dd,int level)
...
@@ -2617,18 +2665,27 @@ void writeDirTreeNode(OutputList &ol, DirDef *dd,int level)
}
}
Doxygen
::
indexList
.
decContentsDepth
();
Doxygen
::
indexList
.
decContentsDepth
();
if
(
ftv
)
ftv
->
decContentsDepth
();
}
}
void
writeDirHierarchy
(
OutputList
&
ol
)
void
writeDirHierarchy
(
OutputList
&
ol
,
FTVHelp
*
ftv
)
{
{
if
(
ftv
)
{
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Html
);
}
startIndexHierarchy
(
ol
,
0
);
startIndexHierarchy
(
ol
,
0
);
SDict
<
DirDef
>::
Iterator
dli
(
*
Doxygen
::
directories
);
SDict
<
DirDef
>::
Iterator
dli
(
*
Doxygen
::
directories
);
DirDef
*
dd
;
DirDef
*
dd
;
for
(
dli
.
toFirst
();(
dd
=
dli
.
current
());
++
dli
)
for
(
dli
.
toFirst
();(
dd
=
dli
.
current
());
++
dli
)
{
{
if
(
dd
->
getOuterScope
()
==
Doxygen
::
globalScope
)
writeDirTreeNode
(
ol
,
dd
,
0
);
if
(
dd
->
getOuterScope
()
==
Doxygen
::
globalScope
)
writeDirTreeNode
(
ol
,
dd
,
0
,
ftv
);
}
}
endIndexHierarchy
(
ol
,
0
);
endIndexHierarchy
(
ol
,
0
);
if
(
ftv
)
ol
.
popGeneratorState
();
}
}
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
...
@@ -2650,11 +2707,26 @@ void writeGroupIndex(OutputList &ol)
...
@@ -2650,11 +2707,26 @@ void writeGroupIndex(OutputList &ol)
ol
.
startTextBlock
();
ol
.
startTextBlock
();
Doxygen
::
indexList
.
addContentsItem
(
TRUE
,
theTranslator
->
trModules
(),
0
,
"modules"
,
0
);
Doxygen
::
indexList
.
addContentsItem
(
TRUE
,
theTranslator
->
trModules
(),
0
,
"modules"
,
0
);
Doxygen
::
indexList
.
incContentsDepth
();
Doxygen
::
indexList
.
incContentsDepth
();
ol
.
parseText
(
theTranslator
->
trModulesDescription
());
ol
.
parseText
(
theTranslator
->
trModulesDescription
());
ol
.
endTextBlock
();
ol
.
endTextBlock
();
writeGroupHierarchy
(
ol
);
FTVHelp
*
ftv
=
NULL
;
QCString
&
TreeView
=
Config_getEnum
(
"GENERATE_TREEVIEW"
);
if
(
TreeView
==
"HIERARCHIES"
||
TreeView
==
"ALL"
)
ftv
=
new
FTVHelp
(
false
);
writeGroupHierarchy
(
ol
,
ftv
);
Doxygen
::
indexList
.
decContentsDepth
();
Doxygen
::
indexList
.
decContentsDepth
();
if
(
ftv
)
{
QString
OutStr
;
ftv
->
generateTreeView
(
&
OutStr
);
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
writeString
(
OutStr
);
ol
.
popGeneratorState
();
delete
ftv
;
}
endFile
(
ol
);
endFile
(
ol
);
ol
.
popGeneratorState
();
ol
.
popGeneratorState
();
}
}
...
@@ -2681,8 +2753,23 @@ void writeDirIndex(OutputList &ol)
...
@@ -2681,8 +2753,23 @@ void writeDirIndex(OutputList &ol)
ol
.
parseText
(
theTranslator
->
trDirDescription
());
ol
.
parseText
(
theTranslator
->
trDirDescription
());
ol
.
endTextBlock
();
ol
.
endTextBlock
();
writeDirHierarchy
(
ol
);
FTVHelp
*
ftv
=
NULL
;
QCString
&
TreeView
=
Config_getEnum
(
"GENERATE_TREEVIEW"
);
if
(
TreeView
==
"HIERARCHIES"
||
TreeView
==
"ALL"
)
ftv
=
new
FTVHelp
(
false
);
writeDirHierarchy
(
ol
,
ftv
);
if
(
ftv
)
{
QString
OutStr
;
ftv
->
generateTreeView
(
&
OutStr
);
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
writeString
(
OutStr
);
ol
.
popGeneratorState
();
delete
ftv
;
}
Doxygen
::
indexList
.
decContentsDepth
();
Doxygen
::
indexList
.
decContentsDepth
();
endFile
(
ol
);
endFile
(
ol
);
ol
.
popGeneratorState
();
ol
.
popGeneratorState
();
...
@@ -2733,8 +2820,7 @@ void writeIndex(OutputList &ol)
...
@@ -2733,8 +2820,7 @@ void writeIndex(OutputList &ol)
title
=
substitute
(
Doxygen
::
mainPage
->
title
(),
"%"
,
""
);
title
=
substitute
(
Doxygen
::
mainPage
->
title
(),
"%"
,
""
);
}
}
QCString
indexName
=
"index"
;
QCString
indexName
=
usingTreeIndex
()
?
"main"
:
"index"
;
if
(
Config_getBool
(
"GENERATE_TREEVIEW"
))
indexName
=
"main"
;
ol
.
startFile
(
indexName
,
0
,
title
);
ol
.
startFile
(
indexName
,
0
,
title
);
if
(
Doxygen
::
mainPage
)
if
(
Doxygen
::
mainPage
)
...
...
src/latexgen.cpp
View file @
2ddfaa1d
...
@@ -606,8 +606,7 @@ void LatexGenerator::endIndexSection(IndexSections is)
...
@@ -606,8 +606,7 @@ void LatexGenerator::endIndexSection(IndexSections is)
break
;
break
;
case
isMainPage
:
case
isMainPage
:
{
{
QCString
indexName
=
"index"
;
QCString
indexName
=
usingTreeIndex
()
?
"main"
:
"index"
;
if
(
Config_getBool
(
"GENERATE_TREEVIEW"
))
indexName
=
"main"
;
t
<<
"}
\n\\
label{index}"
;
t
<<
"}
\n\\
label{index}"
;
if
(
Config_getBool
(
"PDF_HYPERLINKS"
))
t
<<
"
\\
hypertarget{index}{}"
;
if
(
Config_getBool
(
"PDF_HYPERLINKS"
))
t
<<
"
\\
hypertarget{index}{}"
;
t
<<
"
\\
input{"
<<
indexName
<<
"}
\n
"
;
t
<<
"
\\
input{"
<<
indexName
<<
"}
\n
"
;
...
...
src/libdoxygen.t
View file @
2ddfaa1d
...
@@ -73,22 +73,22 @@ sub GenerateDep {
...
@@ -73,22 +73,22 @@ sub GenerateDep {
$
(
LEX
)
-
PpreYY
-
t
pre
.
l
|
$
(
INCBUFSIZE
)
>
pre
.
cpp
$
(
LEX
)
-
PpreYY
-
t
pre
.
l
|
$
(
INCBUFSIZE
)
>
pre
.
cpp
#$ GenerateDep("declinfo.cpp","declinfo.l");
#$ GenerateDep("declinfo.cpp","declinfo.l");
$
(
LEX
)
-
PdeclinfoYY
-
t
declinfo
.
l
>
declinfo
.
cpp
$
(
LEX
)
-
PdeclinfoYY
-
t
declinfo
.
l
|
$
(
INCBUFSIZE
)
>
declinfo
.
cpp
#$ GenerateDep("defargs.cpp","defargs.l");
#$ GenerateDep("defargs.cpp","defargs.l");
$
(
LEX
)
-
PdefargsYY
-
t
defargs
.
l
>
defargs
.
cpp
$
(
LEX
)
-
PdefargsYY
-
t
defargs
.
l
|
$
(
INCBUFSIZE
)
>
defargs
.
cpp
#$ GenerateDep("doctokenizer.cpp","doctokenizer.l");
#$ GenerateDep("doctokenizer.cpp","doctokenizer.l");
$
(
LEX
)
-
PdoctokenizerYY
-
t
doctokenizer
.
l
>
doctokenizer
.
cpp
$
(
LEX
)
-
PdoctokenizerYY
-
t
doctokenizer
.
l
|
$
(
INCBUFSIZE
)
>
doctokenizer
.
cpp
#$ GenerateDep("commentcnv.cpp","commentcnv.l");
#$ GenerateDep("commentcnv.cpp","commentcnv.l");
$
(
LEX
)
-
PcommentcnvYY
-
t
commentcnv
.
l
>
commentcnv
.
cpp
$
(
LEX
)
-
PcommentcnvYY
-
t
commentcnv
.
l
|
$
(
INCBUFSIZE
)
>
commentcnv
.
cpp
#$GenerateDep("commentscan.cpp","commentscan.l");
#$GenerateDep("commentscan.cpp","commentscan.l");
$
(
LEX
)
-
PcommentScanYY
-
t
commentscan
.
l
>
commentscan
.
cpp
$
(
LEX
)
-
PcommentScanYY
-
t
commentscan
.
l
|
$
(
INCBUFSIZE
)
>
commentscan
.
cpp
#$ GenerateDep("ce_lex.cpp","constexp.l","ce_parse.h");
#$ GenerateDep("ce_lex.cpp","constexp.l","ce_parse.h");
$
(
LEX
)
-
PcppExpYY
-
t
constexp
.
l
>
ce_lex
.
cpp
$
(
LEX
)
-
PcppExpYY
-
t
constexp
.
l
|
$
(
INCBUFSIZE
)
>
ce_lex
.
cpp
#$ GenerateDep("ce_parse.cpp","constexp.y");
#$ GenerateDep("ce_parse.cpp","constexp.y");
$
(
YACC
)
-
l
-
p
cppExpYY
constexp
.
y
-
o
ce_parse
.
cpp
$
(
YACC
)
-
l
-
p
cppExpYY
constexp
.
y
-
o
ce_parse
.
cpp
...
...
src/memberdef.cpp
View file @
2ddfaa1d
...
@@ -833,7 +833,7 @@ bool MemberDef::isLinkableInProject() const
...
@@ -833,7 +833,7 @@ bool MemberDef::isLinkableInProject() const
//printf("private and invisible!\n");
//printf("private and invisible!\n");
return
FALSE
;
// hidden due to protection
return
FALSE
;
// hidden due to protection
}
}
if
(
isStatic
()
&&
m_impl
->
classDef
==
0
&&
!
extractStatic
)
if
(
m_impl
->
stat
&&
m_impl
->
classDef
==
0
&&
!
extractStatic
)
{
{
//printf("static and invisible!\n");
//printf("static and invisible!\n");
return
FALSE
;
// hidden due to staticness
return
FALSE
;
// hidden due to staticness
...
...
src/memberlist.cpp
View file @
2ddfaa1d
...
@@ -320,6 +320,11 @@ void MemberList::writeDeclarations(OutputList &ol,
...
@@ -320,6 +320,11 @@ void MemberList::writeDeclarations(OutputList &ol,
{
{
//printf("----- writeDeclaration() this=%p ----\n",this);
//printf("----- writeDeclaration() this=%p ----\n",this);
countDecMembers
(
showEnumValues
);
// count member not in group
countDecMembers
(
showEnumValues
);
// count member not in group
Definition
*
ctx
=
cd
;
if
(
ctx
==
0
&&
nd
)
ctx
=
nd
;
if
(
ctx
==
0
&&
gd
)
ctx
=
gd
;
if
(
ctx
==
0
&&
fd
)
ctx
=
fd
;
if
(
numDecMembers
()
==
0
)
return
;
if
(
numDecMembers
()
==
0
)
return
;
//printf("%p: MemberList::writeDeclaration(title=`%s',subtitle=`%s')=%d\n",
//printf("%p: MemberList::writeDeclaration(title=`%s',subtitle=`%s')=%d\n",
// this,title,subtitle,numDecMembers());
// this,title,subtitle,numDecMembers());
...
@@ -333,7 +338,7 @@ void MemberList::writeDeclarations(OutputList &ol,
...
@@ -333,7 +338,7 @@ void MemberList::writeDeclarations(OutputList &ol,
{
{
//printf("subtitle=`%s'\n",subtitle);
//printf("subtitle=`%s'\n",subtitle);
ol
.
startMemberSubtitle
();
ol
.
startMemberSubtitle
();
ol
.
parseDoc
(
"[generated]"
,
-
1
,
0
,
0
,
subtitle
,
FALSE
,
FALSE
);
ol
.
parseDoc
(
"[generated]"
,
-
1
,
ctx
,
0
,
subtitle
,
FALSE
,
FALSE
);
ol
.
endMemberSubtitle
();
ol
.
endMemberSubtitle
();
}
}
...
@@ -358,7 +363,7 @@ void MemberList::writeDeclarations(OutputList &ol,
...
@@ -358,7 +363,7 @@ void MemberList::writeDeclarations(OutputList &ol,
{
{
//printf("Member group has docs!\n");
//printf("Member group has docs!\n");
ol
.
startMemberGroupDocs
();
ol
.
startMemberGroupDocs
();
ol
.
parseDoc
(
"[generated]"
,
-
1
,
0
,
0
,
mg
->
documentation
()
+
"
\n
"
,
FALSE
,
FALSE
);
ol
.
parseDoc
(
"[generated]"
,
-
1
,
ctx
,
0
,
mg
->
documentation
()
+
"
\n
"
,
FALSE
,
FALSE
);
ol
.
endMemberGroupDocs
();
ol
.
endMemberGroupDocs
();
}
}
ol
.
startMemberGroup
();
ol
.
startMemberGroup
();
...
...
src/rtfdocvisitor.cpp
View file @
2ddfaa1d
...
@@ -895,7 +895,7 @@ void RTFDocVisitor::visitPre(DocHtmlRow *r)
...
@@ -895,7 +895,7 @@ void RTFDocVisitor::visitPre(DocHtmlRow *r)
{
{
if
(
m_hide
)
return
;
if
(
m_hide
)
return
;
DBG_RTF
(
"{
\\
comment RTFDocVisitor::visitPre(DocHtmlRow)}
\n
"
);
DBG_RTF
(
"{
\\
comment RTFDocVisitor::visitPre(DocHtmlRow)}
\n
"
);
uint
i
,
columnWidth
=
r
tf_pageWidth
/
r
->
numCells
()
;
uint
i
,
columnWidth
=
r
->
numCells
()
>
0
?
rtf_pageWidth
/
r
->
numCells
()
:
10
;
m_t
<<
"
\\
trowd
\\
trgaph108
\\
trleft-108"
m_t
<<
"
\\
trowd
\\
trgaph108
\\
trleft-108"
"
\\
trbrdrt
\\
brdrs
\\
brdrw10 "
"
\\
trbrdrt
\\
brdrs
\\
brdrw10 "
"
\\
trbrdrl
\\
brdrs
\\
brdrw10 "
"
\\
trbrdrl
\\
brdrs
\\
brdrw10 "
...
...
src/rtfgen.cpp
View file @
2ddfaa1d
...
@@ -607,7 +607,7 @@ void RTFGenerator::endIndexSection(IndexSections is)
...
@@ -607,7 +607,7 @@ void RTFGenerator::endIndexSection(IndexSections is)
t
<<
"{
\\
tc
\\
v "
<<
substitute
(
Doxygen
::
mainPage
->
title
(),
"%"
,
""
)
<<
"}"
<<
endl
;
t
<<
"{
\\
tc
\\
v "
<<
substitute
(
Doxygen
::
mainPage
->
title
(),
"%"
,
""
)
<<
"}"
<<
endl
;
}
}
t
<<
"{
\\
field
\\
fldedit{
\\
*
\\
fldinst INCLUDETEXT
\"
"
;
t
<<
"{
\\
field
\\
fldedit{
\\
*
\\
fldinst INCLUDETEXT
\"
"
;
if
(
Config_getBool
(
"GENERATE_TREEVIEW"
))
t
<<
"main"
;
else
t
<<
"index"
;
if
(
usingTreeIndex
(
))
t
<<
"main"
;
else
t
<<
"index"
;
t
<<
".rtf
\"
\\\\
*MERGEFORMAT}{
\\
fldrslt includedstuff}}
\n
"
;
t
<<
".rtf
\"
\\\\
*MERGEFORMAT}{
\\
fldrslt includedstuff}}
\n
"
;
break
;
break
;
//case isPackageIndex:
//case isPackageIndex:
...
...
src/scanner.l
View file @
2ddfaa1d
...
@@ -170,6 +170,7 @@ static QCString idlAttr;
...
@@ -170,6 +170,7 @@ static QCString idlAttr;
static QCString idlProp;
static QCString idlProp;
static bool g_lexInit = FALSE;
static bool g_lexInit = FALSE;
static bool externC;
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
...
@@ -902,6 +903,12 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
...
@@ -902,6 +903,12 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
curlyCount=0;
curlyCount=0;
BEGIN( CliPropertyType );
BEGIN( CliPropertyType );
}
}
else if (insideCS)
{
lineCount() ;
current->mtype = Event;
current->bodyLine = yyLineNr;
}
else
else
{
{
REJECT;
REJECT;
...
@@ -3006,8 +3013,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
...
@@ -3006,8 +3013,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
}
else
else
{
{
current->doc.resize(0);
//
current->doc.resize(0);
current->brief.resize(0);
//
current->brief.resize(0);
BEGIN( MemberSpec ) ;
BEGIN( MemberSpec ) ;
}
}
}
}
...
@@ -4324,7 +4331,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
...
@@ -4324,7 +4331,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
{
{
current->name += "-p";
current->name += "-p";
}
}
if ((current->s
ection
& Entry::Protocol) ||
if ((current->s
pec
& Entry::Protocol) ||
current->section == Entry::OBJCIMPL_SEC)
current->section == Entry::OBJCIMPL_SEC)
{
{
unput('{'); // fake start of body
unput('{'); // fake start of body
...
@@ -4453,6 +4460,11 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
...
@@ -4453,6 +4460,11 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
unput('{');
unput('{');
BEGIN( lastCSConstraint );
BEGIN( lastCSConstraint );
}
}
<CSConstraintType,CSConstraintName>";" {
handleParametersCommentBlocks(current->typeConstr);
unput(';');
BEGIN( lastCSConstraint );
}
<CSConstraintName>":" {
<CSConstraintName>":" {
BEGIN( CSConstraintType );
BEGIN( CSConstraintType );
}
}
...
@@ -4719,6 +4731,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
...
@@ -4719,6 +4731,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
if (*yytext=='>')
if (*yytext=='>')
{ // end of a ObjC protocol list
{ // end of a ObjC protocol list
insideProtocolList=FALSE;
insideProtocolList=FALSE;
unput('{'); // dummy start body
}
}
else
else
{
{
...
@@ -4831,6 +4844,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
...
@@ -4831,6 +4844,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
<FindMembers,FindFields,MemberSpec,FuncQual,SkipCurly,Operator,ClassVar,SkipInits,Bases,OldStyleArgs>("//"{B}*)?"/**"/[^/*] {
<FindMembers,FindFields,MemberSpec,FuncQual,SkipCurly,Operator,ClassVar,SkipInits,Bases,OldStyleArgs>("//"{B}*)?"/**"/[^/*] {
removeSlashes=(yytext[1]=='/');
removeSlashes=(yytext[1]=='/');
lastDocContext = YY_START;
lastDocContext = YY_START;
//printf("Found comment block at %s:%d\n",yyFileName,yyLineNr);
//printf("Found comment block at %s:%d\n",yyFileName,yyLineNr);
if (current_root->section & Entry::SCOPE_MASK)
if (current_root->section & Entry::SCOPE_MASK)
{
{
...
@@ -4918,9 +4932,14 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
...
@@ -4918,9 +4932,14 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
}
<FindMembers>"extern"{BN}*"\"C"("++")?"\""{BN}*("{")? {
<FindMembers>"extern"{BN}*"\"C"("++")?"\""{BN}*("{")? {
lineCount();
lineCount();
externC=TRUE;
}
}
<FindMembers>"{" {
<FindMembers>"{" {
if (insideCS &&
if (externC)
{
externC=FALSE;
}
else if (insideCS &&
!current->name.isEmpty() &&
!current->name.isEmpty() &&
!current->type.isEmpty())
!current->type.isEmpty())
{
{
...
...
src/translator_de.h
View file @
2ddfaa1d
...
@@ -672,8 +672,8 @@ class TranslatorGerman : public Translator
...
@@ -672,8 +672,8 @@ class TranslatorGerman : public Translator
case
ClassDef
:
:
Struct
:
result
+=
"Struktur"
;
break
;
case
ClassDef
:
:
Struct
:
result
+=
"Struktur"
;
break
;
case
ClassDef
:
:
Union
:
result
+=
"Varianten"
;
break
;
case
ClassDef
:
:
Union
:
result
+=
"Varianten"
;
break
;
case
ClassDef
:
:
Interface
:
result
+=
"Schnittstellen"
;
break
;
case
ClassDef
:
:
Interface
:
result
+=
"Schnittstellen"
;
break
;
case
ClassDef
:
:
Protocol
:
result
+=
"Proto
col"
;
break
;
// translate me!
case
ClassDef
:
:
Protocol
:
result
+=
"Proto
koll"
;
break
;
case
ClassDef
:
:
Category
:
result
+=
"
Category"
;
break
;
// translate me!
case
ClassDef
:
:
Category
:
result
+=
"
Kategorie"
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
"Ausnahmen"
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
"Ausnahmen"
;
break
;
}
}
result
+=
"referenz"
;
result
+=
"referenz"
;
...
@@ -840,8 +840,8 @@ class TranslatorGerman : public Translator
...
@@ -840,8 +840,8 @@ class TranslatorGerman : public Translator
case
ClassDef
:
:
Struct
:
result
+=
" Struktur"
;
break
;
case
ClassDef
:
:
Struct
:
result
+=
" Struktur"
;
break
;
case
ClassDef
:
:
Union
:
result
+=
" Variante"
;
break
;
case
ClassDef
:
:
Union
:
result
+=
" Variante"
;
break
;
case
ClassDef
:
:
Interface
:
result
+=
" Schnittstelle"
;
break
;
case
ClassDef
:
:
Interface
:
result
+=
" Schnittstelle"
;
break
;
case
ClassDef
:
:
Protocol
:
result
+=
"
Protocol"
;
break
;
// translate me!
case
ClassDef
:
:
Protocol
:
result
+=
"
s Protokoll"
;
break
;
case
ClassDef
:
:
Category
:
result
+=
"
Category"
;
break
;
// translate me!
case
ClassDef
:
:
Category
:
result
+=
"
Kategorie"
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
" Ausnahme"
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
" Ausnahme"
;
break
;
}
}
result
+=
" wurde erzeugt aufgrund der Datei"
;
result
+=
" wurde erzeugt aufgrund der Datei"
;
...
...
src/util.cpp
View file @
2ddfaa1d
...
@@ -3069,8 +3069,8 @@ static QCString getCanonicalTypeForIdentifier(
...
@@ -3069,8 +3069,8 @@ static QCString getCanonicalTypeForIdentifier(
//printf(" >>>> word '%s' => '%s' templSpec=%s ts=%s tSpec=%s isTemplate=%d resolvedType=%s\n",
//printf(" >>>> word '%s' => '%s' templSpec=%s ts=%s tSpec=%s isTemplate=%d resolvedType=%s\n",
// (word+templSpec).data(),
// (word+templSpec).data(),
// cd?cd->qualifiedName().data():"<none>",
// cd?cd->qualifiedName().data():"<none>",
// templSpec.data(),ts.data(),
//
templSpec.data(),ts.data(),
// tSpec?tSpec->data():"<null>",
//
tSpec?tSpec->data():"<null>",
// cd?cd->isTemplate():FALSE,
// cd?cd->isTemplate():FALSE,
// resolvedType.data());
// resolvedType.data());
...
@@ -3400,6 +3400,7 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl,bool forceNameOverwr
...
@@ -3400,6 +3400,7 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl,bool forceNameOverwr
if
(
srcA
->
type
==
dstA
->
type
)
if
(
srcA
->
type
==
dstA
->
type
)
{
{
//printf("1. merging %s:%s <-> %s:%s\n",srcA->type.data(),srcA->name.data(),dstA->type.data(),dstA->name.data());
if
(
srcA
->
name
.
isEmpty
()
&&
!
dstA
->
name
.
isEmpty
())
if
(
srcA
->
name
.
isEmpty
()
&&
!
dstA
->
name
.
isEmpty
())
{
{
//printf("type: `%s':=`%s'\n",srcA->type.data(),dstA->type.data());
//printf("type: `%s':=`%s'\n",srcA->type.data(),dstA->type.data());
...
@@ -3436,7 +3437,9 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl,bool forceNameOverwr
...
@@ -3436,7 +3437,9 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl,bool forceNameOverwr
}
}
else
else
{
{
//printf("merging %s:%s <-> %s:%s\n",srcA->type.data(),srcA->name.data(),dstA->type.data(),dstA->name.data());
//printf("2. merging '%s':'%s' <-> '%s':'%s'\n",srcA->type.data(),srcA->name.data(),dstA->type.data(),dstA->name.data());
srcA
->
type
=
srcA
->
type
.
stripWhiteSpace
();
dstA
->
type
=
dstA
->
type
.
stripWhiteSpace
();
if
(
srcA
->
type
+
" "
+
srcA
->
name
==
dstA
->
type
)
// "unsigned long:int" <-> "unsigned long int:bla"
if
(
srcA
->
type
+
" "
+
srcA
->
name
==
dstA
->
type
)
// "unsigned long:int" <-> "unsigned long int:bla"
{
{
srcA
->
type
+=
" "
+
srcA
->
name
;
srcA
->
type
+=
" "
+
srcA
->
name
;
...
@@ -3833,7 +3836,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
...
@@ -3833,7 +3836,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
// md->name().data(),args,fd,gd);
// md->name().data(),args,fd,gd);
if
(
if
(
((
gd
&&
gd
->
isLinkable
())
||
(
fd
&&
fd
->
isLinkable
()))
&&
((
gd
&&
gd
->
isLinkable
())
||
(
fd
&&
fd
->
isLinkable
()))
&&
md
->
getNamespaceDef
()
==
0
md
->
getNamespaceDef
()
==
0
&&
md
->
isLinkable
()
)
)
{
{
//printf(" fd=%p gd=%p args=`%s'\n",fd,gd,args);
//printf(" fd=%p gd=%p args=`%s'\n",fd,gd,args);
...
@@ -3905,7 +3908,6 @@ bool getDefs(const QCString &scName,const QCString &memberName,
...
@@ -3905,7 +3908,6 @@ bool getDefs(const QCString &scName,const QCString &memberName,
}
}
if
(
bmd
)
md
=
bmd
;
if
(
bmd
)
md
=
bmd
;
}
}
if
(
md
&&
!
md
->
isLinkable
())
md
=
0
;
// ignore things we cannot link to
if
(
md
)
// found a matching global member
if
(
md
)
// found a matching global member
{
{
fd
=
md
->
getFileDef
();
fd
=
md
->
getFileDef
();
...
@@ -4469,12 +4471,13 @@ FileDef *findFileDef(const FileNameDict *fnDict,const char *n,bool &ambig)
...
@@ -4469,12 +4471,13 @@ FileDef *findFileDef(const FileNameDict *fnDict,const char *n,bool &ambig)
for
(
fni
.
toFirst
();(
fd
=
fni
.
current
());
++
fni
)
for
(
fni
.
toFirst
();(
fd
=
fni
.
current
());
++
fni
)
{
{
QCString
fdStripPath
=
stripFromIncludePath
(
fd
->
getPath
());
QCString
fdStripPath
=
stripFromIncludePath
(
fd
->
getPath
());
if
(
path
.
isEmpty
()
||
fdStripPath
==
pathStripped
)
if
(
path
.
isEmpty
()
||
fdStripPath
.
right
(
pathStripped
.
length
())
==
pathStripped
)
{
{
count
++
;
count
++
;
lastMatch
=
fd
;
lastMatch
=
fd
;
}
}
}
}
ambig
=
(
count
>
1
);
ambig
=
(
count
>
1
);
cachedResult
->
isAmbig
=
ambig
;
cachedResult
->
isAmbig
=
ambig
;
cachedResult
->
fileDef
=
lastMatch
;
cachedResult
->
fileDef
=
lastMatch
;
...
@@ -6593,3 +6596,9 @@ void writeTypeConstraints(OutputList &ol,Definition *d,ArgumentList *al)
...
@@ -6593,3 +6596,9 @@ void writeTypeConstraints(OutputList &ol,Definition *d,ArgumentList *al)
ol
.
endConstraintList
();
ol
.
endConstraintList
();
}
}
bool
usingTreeIndex
()
{
QCString
&
TreeView
=
Config_getEnum
(
"GENERATE_TREEVIEW"
);
return
TreeView
==
"FRAME"
||
TreeView
==
"ALL"
||
TreeView
==
"YES"
;
}
src/util.h
View file @
2ddfaa1d
...
@@ -351,5 +351,7 @@ void writeTypeConstraints(OutputList &ol,Definition *d,ArgumentList *al);
...
@@ -351,5 +351,7 @@ void writeTypeConstraints(OutputList &ol,Definition *d,ArgumentList *al);
QCString
convertCharEntitiesToUTF8
(
const
QCString
&
s
);
QCString
convertCharEntitiesToUTF8
(
const
QCString
&
s
);
bool
usingTreeIndex
();
#endif
#endif
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