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
b37fae19
Commit
b37fae19
authored
Oct 12, 2008
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.5.7.1-20081012
parent
2b7214ab
Changes
33
Show whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
443 additions
and
146 deletions
+443
-146
INSTALL
INSTALL
+2
-2
README
README
+2
-2
configure
configure
+1
-1
config.doc
doc/config.doc
+22
-0
features.doc
doc/features.doc
+2
-2
index.doc
doc/index.doc
+1
-1
install.doc
doc/install.doc
+4
-4
lists.doc
doc/lists.doc
+1
-1
code.l
src/code.l
+15
-1
commentscan.l
src/commentscan.l
+12
-5
config.l
src/config.l
+55
-12
definition.cpp
src/definition.cpp
+3
-0
diagram.cpp
src/diagram.cpp
+2
-2
docparser.cpp
src/docparser.cpp
+3
-1
docsets.h
src/docsets.h
+2
-0
dot.cpp
src/dot.cpp
+7
-0
doxygen.cpp
src/doxygen.cpp
+5
-0
doxygen.css
src/doxygen.css
+0
-4
doxygen_css.h
src/doxygen_css.h
+0
-4
ftvhelp.h
src/ftvhelp.h
+2
-0
htmlgen.cpp
src/htmlgen.cpp
+5
-4
htmlhelp.h
src/htmlhelp.h
+2
-0
index.h
src/index.h
+6
-0
namespacedef.cpp
src/namespacedef.cpp
+20
-0
namespacedef.h
src/namespacedef.h
+2
-1
qhp.cpp
src/qhp.cpp
+89
-56
qhp.h
src/qhp.h
+10
-8
rtfgen.cpp
src/rtfgen.cpp
+14
-4
scanner.l
src/scanner.l
+1
-1
util.cpp
src/util.cpp
+119
-26
util.h
src/util.h
+3
-1
vhdldocgen.cpp
src/vhdldocgen.cpp
+29
-1
vhdlscanner.l
src/vhdlscanner.l
+2
-2
No files found.
INSTALL
View file @
b37fae19
DOXYGEN Version 1.5.7.1
DOXYGEN Version 1.5.7.1
-20081012
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 (
04
October 2008)
Dimitri van Heesch (
12
October 2008)
README
View file @
b37fae19
DOXYGEN Version 1.5.7.1
DOXYGEN Version 1.5.7.1
_20081012
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) (
04
October 2008)
Dimitri van Heesch (dimitri@stack.nl) (
12
October 2008)
configure
View file @
b37fae19
...
@@ -20,7 +20,7 @@ doxygen_version_minor=5
...
@@ -20,7 +20,7 @@ doxygen_version_minor=5
doxygen_version_revision
=
7.1
doxygen_version_revision
=
7.1
#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
=
20081012
bin_dirs
=
`
echo
$PATH
|
sed
-e
"s/:/ /g"
`
bin_dirs
=
`
echo
$PATH
|
sed
-e
"s/:/ /g"
`
...
...
doc/config.doc
View file @
b37fae19
...
@@ -195,6 +195,9 @@ followed by the descriptions of the tags grouped by category.
...
@@ -195,6 +195,9 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_project_number
PROJECT_NUMBER
\
refitem
cfg_project_number
PROJECT_NUMBER
\
refitem
cfg_qhp_namespace
QHP_NAMESPACE
\
refitem
cfg_qhp_namespace
QHP_NAMESPACE
\
refitem
cfg_qhp_virtual_folder
QHP_VIRTUAL_FOLDER
\
refitem
cfg_qhp_virtual_folder
QHP_VIRTUAL_FOLDER
\
refitem
cfg_qhp_custom_filter_name
QHP_CUSTOM_FILTER_NAME
\
refitem
cfg_qhp_cust_filter_attrs
QHP_CUST_FILTER_ATTRS
\
refitem
cfg_qhp_sect_filter_attrs
QHP_SECT_FILTER_ATTRS
\
refitem
cfg_qhg_location
QHG_LOCATION
\
refitem
cfg_qhg_location
QHG_LOCATION
\
refitem
cfg_qt_autobrief
QT_AUTOBRIEF
\
refitem
cfg_qt_autobrief
QT_AUTOBRIEF
\
refitem
cfg_quiet
QUIET
\
refitem
cfg_quiet
QUIET
...
@@ -1384,6 +1387,25 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
...
@@ -1384,6 +1387,25 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
generating
Qt
Help
Project
output
.
For
more
information
please
see
generating
Qt
Help
Project
output
.
For
more
information
please
see
<
a
href
=
"http://doc.trolltech.com/qthelpproject.html#virtual-folders"
>
Qt
Help
Project
/
Virtual
Folders
</
a
>.
<
a
href
=
"http://doc.trolltech.com/qthelpproject.html#virtual-folders"
>
Qt
Help
Project
/
Virtual
Folders
</
a
>.
\
anchor
cfg_qhp_custom_filter_name
<
dt
>\
c
QHP_CUSTOM_FILTER_NAME
<
dd
>
\
addindex
QHP_CUSTOM_FILTER_NAME
If
QHP_CUSTOM_FILTER_NAME
is
set
,
it
specifies
the
name
of
a
custom
filter
to
add
.
For
more
information
please
see
<
a
href
=
"http://doc.trolltech.com/qthelpproject.html#custom-filters"
>
Qt
Help
Project
/
Custom
Filters
</
a
>.
\
anchor
cfg_qhp_cust_filter_attrs
<
dt
>\
c
QHP_CUST_FILTER_ATTRS
<
dd
>
\
addindex
QHP_CUST_FILTER_ATTRS
The
QHP_CUST_FILTER_ATTRIBUTES
tag
specifies
the
list
of
the
attributes
of
the
custom
filter
to
add
.
For
more
information
please
see
<
a
href
=
"http://doc.trolltech.com/qthelpproject.html#custom-filters"
>
Qt
Help
Project
/
Custom
Filters
</
a
>.
\
anchor
cfg_qhp_sect_filter_attrs
<
dt
>\
c
QHP_SECT_FILTER_ATTRS
<
dd
>
\
addindex
QHP_SECT_FILTER_ATTRS
The
QHP_SECT_FILTER_ATTRS
tag
specifies
the
list
of
the
attributes
this
project
's filter section matches.
<a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
\anchor cfg_qhg_location
\anchor cfg_qhg_location
<dt>\c QHG_LOCATION <dd>
<dt>\c QHG_LOCATION <dd>
\addindex QHG_LOCATION
\addindex QHG_LOCATION
...
...
doc/features.doc
View file @
b37fae19
...
@@ -80,11 +80,11 @@
...
@@ -80,11 +80,11 @@
Although doxygen can now be used in any project written in a language that is
Although doxygen can now be used in any project written in a language that is
supported by doxygen, initially it was specifically designed to be used for projects
supported by doxygen, initially it was specifically designed to be used for projects
that make use of
Troll Tech
's
that make use of
Qt Software
's
<A HREF="http://www.trolltech.com/products/qt.html">Qt toolkit</A>. I have tried to
<A HREF="http://www.trolltech.com/products/qt.html">Qt toolkit</A>. I have tried to
make doxygen `Qt-compatible'. That is: Doxygen can read the documentation contained in
make doxygen `Qt-compatible'. That is: Doxygen can read the documentation contained in
the Qt source code and create a class browser that looks quite similar to the
the Qt source code and create a class browser that looks quite similar to the
one that is generated by
Troll Tech
. Doxygen understands the C++ extensions
one that is generated by
Qt Software
. Doxygen understands the C++ extensions
used by Qt such as signals and slots and many of the markup commands used in the Qt sources.
used by Qt such as signals and slots and many of the markup commands used in the Qt sources.
Doxygen can also automatically generate links to existing documentation
Doxygen can also automatically generate links to existing documentation
...
...
doc/index.doc
View file @
b37fae19
...
@@ -175,7 +175,7 @@ Thanks go to:
...
@@ -175,7 +175,7 @@ Thanks go to:
The first version of doxygen borrowed some code of an old version of DOC++.
The first version of doxygen borrowed some code of an old version of DOC++.
Although I have rewritten practically all code since then, DOC++ has still
Although I have rewritten practically all code since then, DOC++ has still
given me a good start in writing doxygen.
given me a good start in writing doxygen.
<li>All people at
Troll Tech
, for creating a beautiful GUI Toolkit
<li>All people at
Qt Software
, for creating a beautiful GUI Toolkit
(which is very useful as a Windows/Unix platform abstraction layer :-)
(which is very useful as a Windows/Unix platform abstraction layer :-)
<li>Kevin McBride for maintaining the subversion reporsitory for doxygen.
<li>Kevin McBride for maintaining the subversion reporsitory for doxygen.
<li>My brother Frank
<li>My brother Frank
...
...
doc/install.doc
View file @
b37fae19
...
@@ -55,7 +55,7 @@ To take full advantage of doxygen's features the following additional
...
@@ -55,7 +55,7 @@ To take full advantage of doxygen's features the following additional
tools should be installed.
tools should be installed.
<ul>
<ul>
<li>
Troll Tech
's GUI toolkit
<li>
Qt Software
's GUI toolkit
<A HREF="http://www.trolltech.com/products/qt.html">Qt</A>
<A HREF="http://www.trolltech.com/products/qt.html">Qt</A>
\latexonly(see {\tt http://www.trolltech.com/products/qt.html})\endlatexonly
\latexonly(see {\tt http://www.trolltech.com/products/qt.html})\endlatexonly
\addindex Qt
\addindex Qt
...
@@ -505,7 +505,7 @@ Here is what is required:
...
@@ -505,7 +505,7 @@ Here is what is required:
For doxywizard, a complete Qt library is
For doxywizard, a complete Qt library is
still a requirement however. A commercial license to build
still a requirement however. A commercial license to build
doxywizard with the latest Qt library was kindly donated to me
doxywizard with the latest Qt library was kindly donated to me
by the nice people at <a href="http://www.trolltech.com">
TrollTech
</a>.
by the nice people at <a href="http://www.trolltech.com">
Qt Software
</a>.
See doxygen download page for a link.
See doxygen download page for a link.
<li>If you used WinZip to extract the tar archive it will (apparently) not
<li>If you used WinZip to extract the tar archive it will (apparently) not
...
@@ -589,7 +589,7 @@ You can download it from
...
@@ -589,7 +589,7 @@ You can download it from
If you want to produce Qt Compressed Help files (see \ref
If you want to produce Qt Compressed Help files (see \ref
cfg_qhg_location "QHG_LOCATION") in the config file, then
cfg_qhg_location "QHG_LOCATION") in the config file, then
you need qhelpgenerator which is part of Qt.
you need qhelpgenerator which is part of Qt.
You can download Qt from <a href="http://trolltech.com/downloads/">
Trolltech
Downloads</a>.
You can download Qt from <a href="http://trolltech.com/downloads/">
Qt Software
Downloads</a>.
In order to generate PDF output or use scientific formulas you will also need to
In order to generate PDF output or use scientific formulas you will also need to
install <a href="http://en.wikipedia.org/wiki/LaTeX">LaTeX</a> and
install <a href="http://en.wikipedia.org/wiki/LaTeX">LaTeX</a> and
...
@@ -662,7 +662,7 @@ features:
...
@@ -662,7 +662,7 @@ features:
cfg_qhelgenerator_loc "QHG_LOCATION") in the config file,
cfg_qhelgenerator_loc "QHG_LOCATION") in the config file,
then you need qhelpgenerator which is part of Qt.
then you need qhelpgenerator which is part of Qt.
You can download Qt from
You can download Qt from
<a href="http://trolltech.com/downloads/">
Trolltech
Downloads</a>.
<a href="http://trolltech.com/downloads/">
Qt Software
Downloads</a>.
<li><a href="http://www.graphviz.org/">
<li><a href="http://www.graphviz.org/">
the Graph visualization toolkit version 1.8.10</a><br>
the Graph visualization toolkit version 1.8.10</a><br>
...
...
doc/lists.doc
View file @
b37fae19
...
@@ -103,7 +103,7 @@ Here is the above example with HTML commands:
...
@@ -103,7 +103,7 @@ Here is the above example with HTML commands:
<b>Using \\arg or \@li</b>
<b>Using \\arg or \@li</b>
For compatibility with the
Troll Tech's internal documentation tool
and
For compatibility with the
Qt Software's internal documentation tool qdoc
and
with KDoc, doxygen has two commands that can be used to create simple
with KDoc, doxygen has two commands that can be used to create simple
unnested lists.
unnested lists.
...
...
src/code.l
View file @
b37fae19
...
@@ -687,7 +687,7 @@ static MemberDef *setCallContextForVar(const QCString &name)
...
@@ -687,7 +687,7 @@ static MemberDef *setCallContextForVar(const QCString &name)
QCString scope = name.left(scopeEnd);
QCString scope = name.left(scopeEnd);
QCString locName = name.right(name.length()-scopeEnd-2);
QCString locName = name.right(name.length()-scopeEnd-2);
//printf("explicit scope: name=%s scope=%s\n",locName.data(),scope.data());
//printf("explicit scope: name=%s scope=%s\n",locName.data(),scope.data());
ClassDef *mcd = getClass(scope);
// TODO: check namespace as well
ClassDef *mcd = getClass(scope);
if (mcd && !locName.isEmpty())
if (mcd && !locName.isEmpty())
{
{
MemberDef *md=mcd->getMemberByName(locName);
MemberDef *md=mcd->getMemberByName(locName);
...
@@ -698,6 +698,20 @@ static MemberDef *setCallContextForVar(const QCString &name)
...
@@ -698,6 +698,20 @@ static MemberDef *setCallContextForVar(const QCString &name)
return md;
return md;
}
}
}
}
else // check namespace as well
{
NamespaceDef *mnd = getResolvedNamespace(scope);
if (mnd && !locName.isEmpty())
{
MemberDef *md=mnd->getMemberByName(locName);
if (md)
{
//printf("name=%s scope=%s\n",locName.data(),scope.data());
g_theCallContext.setClass(stripClassName(md->typeString()));
return md;
}
}
}
}
}
MemberName *mn;
MemberName *mn;
...
...
src/commentscan.l
View file @
b37fae19
...
@@ -151,11 +151,11 @@ static DocCmdMap docCmdMap[] =
...
@@ -151,11 +151,11 @@ static DocCmdMap docCmdMap[] =
{ "example", &handleExample, FALSE },
{ "example", &handleExample, FALSE },
{ "details", &handleDetails, TRUE },
{ "details", &handleDetails, TRUE },
{ "name", &handleName, FALSE },
{ "name", &handleName, FALSE },
{ "todo", &handleTodo,
TRUE },
{ "todo", &handleTodo,
FALSE }, // end brief will be done differently
{ "test", &handleTest,
TRUE },
{ "test", &handleTest,
FALSE }, // end brief will be done differently
{ "bug", &handleBug,
TRUE },
{ "bug", &handleBug,
FALSE }, // end brief will be done differently
{ "deprecated", &handleDeprecated,
TRUE },
{ "deprecated", &handleDeprecated,
FALSE }, // end brief will be done differently
{ "xrefitem", &handleXRefItem,
TRUE },
{ "xrefitem", &handleXRefItem,
FALSE }, // end brief will be done differently
{ "related", &handleRelated, TRUE },
{ "related", &handleRelated, TRUE },
{ "relates", &handleRelated, TRUE },
{ "relates", &handleRelated, TRUE },
{ "relatedalso", &handleRelatedAlso, TRUE },
{ "relatedalso", &handleRelatedAlso, TRUE },
...
@@ -624,6 +624,13 @@ static inline void setOutput(OutputContext ctx)
...
@@ -624,6 +624,13 @@ static inline void setOutput(OutputContext ctx)
newXRefKind==xrefKind && // of the same kind
newXRefKind==xrefKind && // of the same kind
(xrefKind!=XRef_Item ||
(xrefKind!=XRef_Item ||
newXRefItemKey==xrefItemKey); // with the same key if \xrefitem
newXRefItemKey==xrefItemKey); // with the same key if \xrefitem
//printf("%d && %d && %d && (%d || %d)\n",
// inContext==OutputXRef,
// ctx==OutputXRef,
// newXRefKind==xrefKind,
// xrefKind!=XRef_Item,
// newXRefItemKey==xrefItemKey);
//printf("refKind=%d newXRefKind=%d xrefAppendToPrev=%d xrefAppendFlag=%d\n",
//printf("refKind=%d newXRefKind=%d xrefAppendToPrev=%d xrefAppendFlag=%d\n",
// xrefKind,newXRefKind,xrefAppendToPrev,xrefAppendFlag);
// xrefKind,newXRefKind,xrefAppendToPrev,xrefAppendFlag);
...
...
src/config.l
View file @
b37fae19
...
@@ -1270,19 +1270,28 @@ void Config::check()
...
@@ -1270,19 +1270,28 @@ void Config::check()
// check QHP creation requirements
// check QHP creation requirements
if (Config_getBool("GENERATE_QHP"))
if (Config_getBool("GENERATE_QHP"))
{
{
bool quit = false;
if (!Config_getBool("GENERATE_HTML"))
if (!Config_getBool("GENERATE_HTML"))
{
{
config_err("Warning: GENERATE_QHP=YES requires GENERATE_HTML=YES.\n");
config_err("Warning: GENERATE_QHP=YES requires GENERATE_HTML=YES.\n");
quit = true;
}
}
if (Config_getString("QHP_NAMESPACE").isEmpty())
if (Config_getString("QHP_NAMESPACE").isEmpty())
{
{
config_err("Warning: GENERATE_QHP=YES requires QHP_NAMESPACE to be set.\n");
config_err("Warning: GENERATE_QHP=YES requires QHP_NAMESPACE to be set.\n");
quit = true;
}
}
if (Config_getString("QHP_VIRTUAL_FOLDER").isEmpty())
if (Config_getString("QHP_VIRTUAL_FOLDER").isEmpty())
{
{
config_err("Warning: GENERATE_QHP=YES requires QHP_VIRTUAL_FOLDER to be set.\n");
config_err("Warning: GENERATE_QHP=YES requires QHP_VIRTUAL_FOLDER to be set.\n");
quit = true;
}
if (quit)
{
exit(1);
}
}
}
}
...
@@ -1751,6 +1760,16 @@ void Config::create()
...
@@ -1751,6 +1760,16 @@ void Config::create()
"VHDL. \n",
"VHDL. \n",
FALSE
FALSE
);
);
cl = addList( "EXTENSION_MAPPING",
"Doxygen selects the parser to use depending on the extension of the files it parses. \n"
"With this tag you can assign which parser to use for a given extension. \n"
"Doxygen has a built-in mapping, but you can override or extend it using this tag. \n"
"The format is ext=language, where ext is a file extension, and language is one of \n"
"the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, \n"
"Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat \n"
".inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), \n"
"use: inc=Fortran f=C\n"
);
cb = addBool(
cb = addBool(
"BUILTIN_STL_SUPPORT",
"BUILTIN_STL_SUPPORT",
"If you use STL classes (i.e. std::string, std::vector, etc.) but do not want \n"
"If you use STL classes (i.e. std::string, std::vector, etc.) but do not want \n"
...
@@ -2565,18 +2584,42 @@ void Config::create()
...
@@ -2565,18 +2584,42 @@ void Config::create()
"QHP_NAMESPACE",
"QHP_NAMESPACE",
"The QHP_NAMESPACE tag specifies the namespace to use when generating \n"
"The QHP_NAMESPACE tag specifies the namespace to use when generating \n"
"Qt Help Project output. For more information please see \n"
"Qt Help Project output. For more information please see \n"
"
<a href=\"http://doc.trolltech.com/qthelpproject.html#namespace\">Qt Help Project / Namespace</a>.
\n"
"
http://doc.trolltech.com/qthelpproject.html#namespace
\n"
);
);
cs->setDefaultValue("org.doxygen.Project");
cs->addDependency("GENERATE_QHP");
cs->addDependency("GENERATE_QHP");
cs = addString(
cs = addString(
"QHP_VIRTUAL_FOLDER",
"QHP_VIRTUAL_FOLDER",
"The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating \n"
"The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating \n"
"Qt Help Project output. For more information please see \n"
"Qt Help Project output. For more information please see \n"
"
<a href=\"http://doc.trolltech.com/qthelpproject.html#virtual-folders\">Qt Help Project / Virtual Folders</a>.
\n"
"
http://doc.trolltech.com/qthelpproject.html#virtual-folders
\n"
);
);
cs->setDefaultValue("doc");
cs->setDefaultValue("doc");
cs->addDependency("GENERATE_QHP");
cs->addDependency("GENERATE_QHP");
cs = addString(
"QHP_CUSTOM_FILTER_NAME",
"If QHP_CUSTOM_FILTER_NAME is set, it specifies the name of a custom filter to add. \n"
"For more information please see \n"
"http://doc.trolltech.com/qthelpproject.html#custom-filters \n"
);
cs->addDependency("GENERATE_QHP");
cs = addString(
"QHP_CUST_FILTER_ATTRS",
"The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add."
"For more information please see \n"
"<a href=\"http://doc.trolltech.com/qthelpproject.html#custom-filters\">Qt Help Project / Custom Filters</a>. \n"
);
cs->addDependency("GENERATE_QHP");
cs = addString(
"QHP_SECT_FILTER_ATTRS",
"The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's \n"
"filter section matches. \n"
"<a href=\"http://doc.trolltech.com/qthelpproject.html#filter-attributes\">Qt Help Project / Filter Attributes</a>. \n"
);
cs->addDependency("GENERATE_QHP");
cs = addString(
cs = addString(
"QHG_LOCATION",
"QHG_LOCATION",
"If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can \n"
"If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can \n"
...
...
src/definition.cpp
View file @
b37fae19
...
@@ -1238,8 +1238,11 @@ QCString Definition::briefDescriptionAsTooltip() const
...
@@ -1238,8 +1238,11 @@ QCString Definition::briefDescriptionAsTooltip() const
static
bool
reentering
=
FALSE
;
static
bool
reentering
=
FALSE
;
if
(
!
reentering
)
if
(
!
reentering
)
{
{
MemberDef
*
md
=
definitionType
()
==
TypeMember
?
(
MemberDef
*
)
this
:
0
;
const
Definition
*
scope
=
definitionType
()
==
TypeMember
?
getOuterScope
()
:
this
;
reentering
=
TRUE
;
// prevent requests for tooltips while parsing a tooltip
reentering
=
TRUE
;
// prevent requests for tooltips while parsing a tooltip
m_impl
->
brief
->
tooltip
=
parseCommentAsText
(
m_impl
->
brief
->
tooltip
=
parseCommentAsText
(
scope
,
md
,
m_impl
->
brief
->
doc
,
m_impl
->
brief
->
doc
,
m_impl
->
brief
->
file
,
m_impl
->
brief
->
file
,
m_impl
->
brief
->
line
);
m_impl
->
brief
->
line
);
...
...
src/diagram.cpp
View file @
b37fae19
...
@@ -30,10 +30,9 @@
...
@@ -30,10 +30,9 @@
#include "config.h"
#include "config.h"
#include "message.h"
#include "message.h"
#include "util.h"
#include "util.h"
//#include "latexgen.h"
//#include "htmlgen.h"
#include "doxygen.h"
#include "doxygen.h"
#include "portable.h"
#include "portable.h"
#include "index.h"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
...
@@ -1291,6 +1290,7 @@ void ClassDiagram::writeImage(QTextStream &t,const char *path,
...
@@ -1291,6 +1290,7 @@ void ClassDiagram::writeImage(QTextStream &t,const char *path,
super
->
drawConnectors
(
t
,
&
image
,
FALSE
,
TRUE
,
baseRows
,
superRows
,
cellWidth
,
cellHeight
);
super
->
drawConnectors
(
t
,
&
image
,
FALSE
,
TRUE
,
baseRows
,
superRows
,
cellWidth
,
cellHeight
);
image
.
save
((
QCString
)
path
+
"/"
+
fileName
+
".png"
);
image
.
save
((
QCString
)
path
+
"/"
+
fileName
+
".png"
);
Doxygen
::
indexList
.
addImageFile
(
QCString
(
fileName
)
+
".png"
);
if
(
generateMap
)
t
<<
"</map>"
<<
endl
;
if
(
generateMap
)
t
<<
"</map>"
<<
endl
;
}
}
...
...
src/docparser.cpp
View file @
b37fae19
...
@@ -2122,6 +2122,7 @@ DocRef::DocRef(DocNode *parent,const QString &target,const QString &context) :
...
@@ -2122,6 +2122,7 @@ DocRef::DocRef(DocNode *parent,const QString &target,const QString &context) :
{
{
Definition
*
compound
=
0
;
Definition
*
compound
=
0
;
QCString
anchor
;
QCString
anchor
;
//printf("DocRef::DocRef(target=%s,context=%s\n",target.data(),context.data());
ASSERT
(
!
target
.
isEmpty
());
ASSERT
(
!
target
.
isEmpty
());
m_relPath
=
g_relPath
;
m_relPath
=
g_relPath
;
SectionInfo
*
sec
=
Doxygen
::
sectionDict
[
target
];
SectionInfo
*
sec
=
Doxygen
::
sectionDict
[
target
];
...
@@ -6086,6 +6087,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
...
@@ -6086,6 +6087,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
{
{
g_context
=
""
;
g_context
=
""
;
}
}
//printf("g_context=%s\n",g_context.data());
if
(
indexWords
&&
md
&&
Config_getBool
(
"SEARCHENGINE"
))
if
(
indexWords
&&
md
&&
Config_getBool
(
"SEARCHENGINE"
))
{
{
...
@@ -6216,7 +6218,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
...
@@ -6216,7 +6218,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
// restore original parser state
// restore original parser state
docParserPopContext
();
docParserPopContext
();
//printf("end validatingParseDoc(%s,%s)\n",ctx?ctx->name().data():"<none>",
//printf("
>>>>>>
end validatingParseDoc(%s,%s)\n",ctx?ctx->name().data():"<none>",
// md?md->name().data():"<none>");
// md?md->name().data():"<none>");
return
root
;
return
root
;
...
...
src/docsets.h
View file @
b37fae19
...
@@ -50,6 +50,8 @@ class DocSets : public IndexIntf
...
@@ -50,6 +50,8 @@ class DocSets : public IndexIntf
const
char
*
contRef
,
const
char
*
memRef
,
const
char
*
contRef
,
const
char
*
memRef
,
const
char
*
anchor
,
const
MemberDef
*
md
);
const
char
*
anchor
,
const
MemberDef
*
md
);
void
addIndexFile
(
const
char
*
name
);
void
addIndexFile
(
const
char
*
name
);
void
addImageFile
(
const
char
*
)
{}
void
addStyleSheetFile
(
const
char
*
)
{}
private
:
private
:
void
writeToken
(
QTextStream
&
t
,
const
Definition
*
d
,
void
writeToken
(
QTextStream
&
t
,
const
Definition
*
d
,
...
...
src/dot.cpp
View file @
b37fae19
...
@@ -1123,6 +1123,7 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) const
...
@@ -1123,6 +1123,7 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) const
checkDotResult
(
imgName
);
checkDotResult
(
imgName
);
if
(
Config_getBool
(
"DOT_CLEANUP"
))
thisDir
.
remove
(
dotName
);
if
(
Config_getBool
(
"DOT_CLEANUP"
))
thisDir
.
remove
(
dotName
);
}
}
Doxygen
::
indexList
.
addImageFile
(
imgName
);
// write image and map in a table row
// write image and map in a table row
QCString
mapLabel
=
convertNameToFile
(
n
->
m_label
);
QCString
mapLabel
=
convertNameToFile
(
n
->
m_label
);
out
<<
"<tr><td><img src=
\"
"
<<
imgName
<<
"
\"
border=
\"
0
\"
alt=
\"\"
usemap=
\"
#"
out
<<
"<tr><td><img src=
\"
"
<<
imgName
<<
"
\"
border=
\"
0
\"
alt=
\"\"
usemap=
\"
#"
...
@@ -1908,6 +1909,7 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
...
@@ -1908,6 +1909,7 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
}
}
if
(
Config_getBool
(
"DOT_CLEANUP"
))
thisDir
.
remove
(
baseName
+
".dot"
);
if
(
Config_getBool
(
"DOT_CLEANUP"
))
thisDir
.
remove
(
baseName
+
".dot"
);
}
}
Doxygen
::
indexList
.
addImageFile
(
baseName
+
"."
+
imgExt
);
if
(
format
==
BITMAP
&&
generateImageMap
)
// produce HTML to include the image
if
(
format
==
BITMAP
&&
generateImageMap
)
// produce HTML to include the image
{
{
...
@@ -2238,6 +2240,7 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
...
@@ -2238,6 +2240,7 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
}
}
}
}
}
}
Doxygen
::
indexList
.
addImageFile
(
baseName
+
"."
+
imgExt
);
if
(
format
==
BITMAP
&&
generateImageMap
)
if
(
format
==
BITMAP
&&
generateImageMap
)
{
{
...
@@ -2531,6 +2534,7 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
...
@@ -2531,6 +2534,7 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
}
}
}
}
}
}
Doxygen
::
indexList
.
addImageFile
(
baseName
+
"."
+
imgExt
);
if
(
format
==
BITMAP
&&
generateImageMap
)
if
(
format
==
BITMAP
&&
generateImageMap
)
{
{
...
@@ -2672,6 +2676,7 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
...
@@ -2672,6 +2676,7 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
}
}
}
}
}
}
Doxygen
::
indexList
.
addImageFile
(
baseName
+
"."
+
imgExt
);
if
(
format
==
BITMAP
&&
generateImageMap
)
if
(
format
==
BITMAP
&&
generateImageMap
)
{
{
...
@@ -2784,6 +2789,7 @@ void generateGraphLegend(const char *path)
...
@@ -2784,6 +2789,7 @@ void generateGraphLegend(const char *path)
return
;
return
;
}
}
checkDotResult
(
imgName
);
checkDotResult
(
imgName
);
Doxygen
::
indexList
.
addImageFile
(
imgName
);
QDir
::
setCurrent
(
oldDir
);
QDir
::
setCurrent
(
oldDir
);
}
}
...
@@ -2836,6 +2842,7 @@ void writeDotGraphFromFile(const char *inFile,const char *outDir,
...
@@ -2836,6 +2842,7 @@ void writeDotGraphFromFile(const char *inFile,const char *outDir,
}
}
if
(
format
==
BITMAP
)
checkDotResult
(
imgName
);
if
(
format
==
BITMAP
)
checkDotResult
(
imgName
);
Doxygen
::
indexList
.
addImageFile
(
imgName
);
if
(
env
==
"."
)
if
(
env
==
"."
)
{
{
...
...
src/doxygen.cpp
View file @
b37fae19
...
@@ -10050,6 +10050,11 @@ void generateOutput()
...
@@ -10050,6 +10050,11 @@ void generateOutput()
if
(
usingTreeIndex
())
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
();
Doxygen
::
indexList
.
addImageFile
(
"tab_r.gif"
);
Doxygen
::
indexList
.
addImageFile
(
"tab_l.gif"
);
Doxygen
::
indexList
.
addImageFile
(
"tab_b.gif"
);
Doxygen
::
indexList
.
addStyleSheetFile
(
"tabs.css"
);
Doxygen
::
indexList
.
addImageFile
(
"doxygen.png"
);
if
(
Config_getBool
(
"HTML_DYNAMIC_SECTIONS"
))
HtmlGenerator
::
generateSectionImages
();
if
(
Config_getBool
(
"HTML_DYNAMIC_SECTIONS"
))
HtmlGenerator
::
generateSectionImages
();
copyStyleSheet
();
copyStyleSheet
();
}
}
...
...
src/doxygen.css
View file @
b37fae19
...
@@ -322,10 +322,6 @@ hr {
...
@@ -322,10 +322,6 @@ hr {
-moz-border-radius-bottomright
:
8px
;
-moz-border-radius-bottomright
:
8px
;
}
}
.memdoc
p
,
.memdoc
dl
,
.memdoc
ul
{
margin
:
6px
0
;
}
.paramkey
{
.paramkey
{
text-align
:
right
;
text-align
:
right
;
}
}
...
...
src/doxygen_css.h
View file @
b37fae19
...
@@ -322,10 +322,6 @@
...
@@ -322,10 +322,6 @@
" -moz-border-radius-bottomright: 8px;
\n
"
" -moz-border-radius-bottomright: 8px;
\n
"
"}
\n
"
"}
\n
"
"
\n
"
"
\n
"
".memdoc p, .memdoc dl, .memdoc ul {
\n
"
" margin: 6px 0;
\n
"
"}
\n
"
"
\n
"
".paramkey {
\n
"
".paramkey {
\n
"
" text-align: right;
\n
"
" text-align: right;
\n
"
"}
\n
"
"}
\n
"
...
...
src/ftvhelp.h
View file @
b37fae19
...
@@ -86,6 +86,8 @@ class FTVHelp : public IndexIntf
...
@@ -86,6 +86,8 @@ 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
addImageFile
(
const
char
*
)
{}
void
addStyleSheetFile
(
const
char
*
)
{}
void
generateTreeView
(
QString
*
=
NULL
);
void
generateTreeView
(
QString
*
=
NULL
);
private
:
private
:
void
generateTreeViewImages
();
void
generateTreeViewImages
();
...
...
src/htmlgen.cpp
View file @
b37fae19
...
@@ -547,10 +547,7 @@ void HtmlGenerator::init()
...
@@ -547,10 +547,7 @@ void HtmlGenerator::init()
}
}
createSubDirs
(
d
);
createSubDirs
(
d
);
//if (Config_getBool("HTML_FANCY_TABS"))
{
writeTabData
(
dname
);
writeTabData
(
dname
);
}
}
}
void
HtmlGenerator
::
writeStyleSheetFile
(
QFile
&
file
)
void
HtmlGenerator
::
writeStyleSheetFile
(
QFile
&
file
)
...
@@ -778,6 +775,7 @@ void HtmlGenerator::writeStyleInfo(int part)
...
@@ -778,6 +775,7 @@ void HtmlGenerator::writeStyleInfo(int part)
t
<<
defaultStyleSheet
;
t
<<
defaultStyleSheet
;
endPlainFile
();
endPlainFile
();
Doxygen
::
indexList
.
addStyleSheetFile
(
"doxygen.css"
);
}
}
else
// write user defined style sheet
else
// write user defined style sheet
{
{
...
@@ -796,6 +794,7 @@ void HtmlGenerator::writeStyleInfo(int part)
...
@@ -796,6 +794,7 @@ void HtmlGenerator::writeStyleInfo(int part)
t
<<
fileStr
;
t
<<
fileStr
;
endPlainFile
();
endPlainFile
();
}
}
Doxygen
::
indexList
.
addStyleSheetFile
(
cssfi
.
fileName
());
}
}
}
}
}
}
...
@@ -2345,6 +2344,7 @@ void HtmlGenerator::generateSectionImages()
...
@@ -2345,6 +2344,7 @@ void HtmlGenerator::generateSectionImages()
{
{
f
.
writeBlock
((
char
*
)
open_gif
,
open_gif_len
);
f
.
writeBlock
((
char
*
)
open_gif
,
open_gif_len
);
}
}
Doxygen
::
indexList
.
addImageFile
(
"open.gif"
);
}
}
{
{
QCString
fileName
=
Config_getString
(
"HTML_OUTPUT"
)
+
"/closed.gif"
;
QCString
fileName
=
Config_getString
(
"HTML_OUTPUT"
)
+
"/closed.gif"
;
...
@@ -2353,6 +2353,7 @@ void HtmlGenerator::generateSectionImages()
...
@@ -2353,6 +2353,7 @@ void HtmlGenerator::generateSectionImages()
{
{
f
.
writeBlock
((
char
*
)
closed_gif
,
closed_gif_len
);
f
.
writeBlock
((
char
*
)
closed_gif
,
closed_gif_len
);
}
}
Doxygen
::
indexList
.
addImageFile
(
"closed.gif"
);
}
}
}
}
...
...
src/htmlhelp.h
View file @
b37fae19
...
@@ -78,6 +78,8 @@ class HtmlHelp : public IndexIntf
...
@@ -78,6 +78,8 @@ class HtmlHelp : public IndexIntf
const
char
*
contRef
,
const
char
*
memRef
,
const
char
*
contRef
,
const
char
*
memRef
,
const
char
*
anchor
,
const
MemberDef
*
md
);
const
char
*
anchor
,
const
MemberDef
*
md
);
void
addIndexFile
(
const
char
*
name
);
void
addIndexFile
(
const
char
*
name
);
void
addImageFile
(
const
char
*
)
{}
void
addStyleSheetFile
(
const
char
*
)
{}
private
:
private
:
void
createProjectFile
();
void
createProjectFile
();
...
...
src/index.h
View file @
b37fae19
...
@@ -39,6 +39,8 @@ class IndexIntf
...
@@ -39,6 +39,8 @@ class IndexIntf
virtual
void
addIndexItem
(
const
char
*
level1
,
const
char
*
level2
,
const
char
*
contRef
,
virtual
void
addIndexItem
(
const
char
*
level1
,
const
char
*
level2
,
const
char
*
contRef
,
const
char
*
memRef
,
const
char
*
anchor
,
const
MemberDef
*
md
)
=
0
;
const
char
*
memRef
,
const
char
*
anchor
,
const
MemberDef
*
md
)
=
0
;
virtual
void
addIndexFile
(
const
char
*
name
)
=
0
;
virtual
void
addIndexFile
(
const
char
*
name
)
=
0
;
virtual
void
addImageFile
(
const
char
*
name
)
=
0
;
virtual
void
addStyleSheetFile
(
const
char
*
name
)
=
0
;
};
};
class
IndexList
:
public
IndexIntf
class
IndexList
:
public
IndexIntf
...
@@ -92,6 +94,10 @@ class IndexList : public IndexIntf
...
@@ -92,6 +94,10 @@ class IndexList : public IndexIntf
(
&
IndexIntf
::
addIndexItem
,
level1
,
level2
,
contRef
,
memRef
,
anchor
,
md
);
}
(
&
IndexIntf
::
addIndexItem
,
level1
,
level2
,
contRef
,
memRef
,
anchor
,
md
);
}
void
addIndexFile
(
const
char
*
name
)
void
addIndexFile
(
const
char
*
name
)
{
foreach
<
const
char
*>
(
&
IndexIntf
::
addIndexFile
,
name
);
}
{
foreach
<
const
char
*>
(
&
IndexIntf
::
addIndexFile
,
name
);
}
void
addImageFile
(
const
char
*
name
)
{
foreach
<
const
char
*>
(
&
IndexIntf
::
addImageFile
,
name
);
}
void
addStyleSheetFile
(
const
char
*
name
)
{
foreach
<
const
char
*>
(
&
IndexIntf
::
addStyleSheetFile
,
name
);
}
};
};
...
...
src/namespacedef.cpp
View file @
b37fae19
...
@@ -51,6 +51,7 @@ NamespaceDef::NamespaceDef(const char *df,int dl,
...
@@ -51,6 +51,7 @@ NamespaceDef::NamespaceDef(const char *df,int dl,
m_innerCompounds
=
new
SDict
<
Definition
>
(
17
);
m_innerCompounds
=
new
SDict
<
Definition
>
(
17
);
usingDirList
=
0
;
usingDirList
=
0
;
usingDeclList
=
0
;
usingDeclList
=
0
;
m_allMembersDict
=
0
;
setReference
(
lref
);
setReference
(
lref
);
memberGroupSDict
=
new
MemberGroupSDict
;
memberGroupSDict
=
new
MemberGroupSDict
;
memberGroupSDict
->
setAutoDelete
(
TRUE
);
memberGroupSDict
->
setAutoDelete
(
TRUE
);
...
@@ -183,6 +184,12 @@ void NamespaceDef::insertMember(MemberDef *md)
...
@@ -183,6 +184,12 @@ void NamespaceDef::insertMember(MemberDef *md)
m_memberLists
.
append
(
allMemberList
);
m_memberLists
.
append
(
allMemberList
);
}
}
allMemberList
->
append
(
md
);
allMemberList
->
append
(
md
);
if
(
m_allMembersDict
==
0
)
{
m_allMembersDict
=
new
MemberSDict
;
}
//printf("%s::m_allMembersDict->append(%s)\n",name().data(),md->localName().data());
m_allMembersDict
->
append
(
md
->
localName
(),
md
);
//::addNamespaceMemberNameToIndex(md);
//::addNamespaceMemberNameToIndex(md);
//static bool sortBriefDocs=Config_getBool("SORT_BRIEF_DOCS");
//static bool sortBriefDocs=Config_getBool("SORT_BRIEF_DOCS");
switch
(
md
->
memberType
())
switch
(
md
->
memberType
())
...
@@ -935,3 +942,16 @@ bool NamespaceDef::isLinkable() const
...
@@ -935,3 +942,16 @@ bool NamespaceDef::isLinkable() const
{
{
return
isLinkableInProject
()
||
isReference
();
return
isLinkableInProject
()
||
isReference
();
}
}
MemberDef
*
NamespaceDef
::
getMemberByName
(
const
QCString
&
n
)
const
{
MemberDef
*
md
=
0
;
if
(
m_allMembersDict
&&
!
n
.
isEmpty
())
{
md
=
m_allMembersDict
->
find
(
n
);
//printf("%s::m_allMembersDict->find(%s)=%p\n",name().data(),n.data(),md);
}
return
md
;
}
src/namespacedef.h
View file @
b37fae19
...
@@ -74,6 +74,7 @@ class NamespaceDef : public Definition
...
@@ -74,6 +74,7 @@ class NamespaceDef : public Definition
MemberList
*
getMemberList
(
MemberList
::
ListType
lt
)
const
;
MemberList
*
getMemberList
(
MemberList
::
ListType
lt
)
const
;
const
QList
<
MemberList
>
&
getMemberLists
()
const
{
return
m_memberLists
;
}
const
QList
<
MemberList
>
&
getMemberLists
()
const
{
return
m_memberLists
;
}
MemberDef
*
getMemberByName
(
const
QCString
&
)
const
;
/*! Returns the user defined member groups */
/*! Returns the user defined member groups */
MemberGroupSDict
*
getMemberGroupSDict
()
const
{
return
memberGroupSDict
;
}
MemberGroupSDict
*
getMemberGroupSDict
()
const
{
return
memberGroupSDict
;
}
...
@@ -109,7 +110,7 @@ class NamespaceDef : public Definition
...
@@ -109,7 +110,7 @@ class NamespaceDef : public Definition
SDict
<
Definition
>
*
usingDeclList
;
SDict
<
Definition
>
*
usingDeclList
;
SDict
<
Definition
>
*
m_innerCompounds
;
SDict
<
Definition
>
*
m_innerCompounds
;
//MemberList *allMemberLis
t;
MemberSDict
*
m_allMembersDic
t
;
QList
<
MemberList
>
m_memberLists
;
QList
<
MemberList
>
m_memberLists
;
MemberGroupSDict
*
memberGroupSDict
;
MemberGroupSDict
*
memberGroupSDict
;
ClassSDict
*
classSDict
;
ClassSDict
*
classSDict
;
...
...
src/qhp.cpp
View file @
b37fae19
...
@@ -19,15 +19,16 @@
...
@@ -19,15 +19,16 @@
#include "message.h"
#include "message.h"
#include "config.h"
#include "config.h"
#include <qstringlist.h>
#include <string.h>
#include <string.h>
static
QCString
makeFileName
(
c
har
const
*
withoutExtension
)
static
QCString
makeFileName
(
c
onst
char
*
withoutExtension
)
{
{
if
(
!
withoutExtension
)
return
QCString
();
if
(
!
withoutExtension
)
return
QCString
();
return
QCString
(
withoutExtension
)
+
".html"
;
return
QCString
(
withoutExtension
)
+
".html"
;
}
}
static
QCString
makeRef
(
c
har
const
*
withoutExtension
,
char
const
*
anchor
)
static
QCString
makeRef
(
c
onst
char
*
withoutExtension
,
const
char
*
anchor
)
{
{
if
(
!
withoutExtension
)
return
QCString
();
if
(
!
withoutExtension
)
return
QCString
();
QCString
result
=
makeFileName
(
withoutExtension
);
QCString
result
=
makeFileName
(
withoutExtension
);
...
@@ -65,26 +66,57 @@ void Qhp::initialize()
...
@@ -65,26 +66,57 @@ void Qhp::initialize()
*/
*/
QCString
nameSpace
=
Config_getString
(
"QHP_NAMESPACE"
);
QCString
nameSpace
=
Config_getString
(
"QHP_NAMESPACE"
);
QCString
virtualFolder
=
Config_getString
(
"QHP_VIRTUAL_FOLDER"
);
QCString
virtualFolder
=
Config_getString
(
"QHP_VIRTUAL_FOLDER"
);
QCString
projectTitle
=
getFullProjectName
();
QCString
filterIdent
=
projectTitle
;
QCString
filterAttribute
=
projectTitle
;
c
har
const
*
rootAttributes
[]
=
c
onst
char
*
rootAttributes
[]
=
{
"version"
,
"1.0"
,
0
};
{
"version"
,
"1.0"
,
0
};
char
const
*
customFilterAttributes
[]
=
{
"name"
,
filterIdent
,
0
};
m_doc
.
open
(
"QtHelpProject"
,
rootAttributes
);
m_doc
.
open
(
"QtHelpProject"
,
rootAttributes
);
m_doc
.
openCloseContent
(
"namespace"
,
nameSpace
);
m_doc
.
openCloseContent
(
"namespace"
,
nameSpace
);
m_doc
.
openCloseContent
(
"virtualFolder"
,
virtualFolder
);
m_doc
.
openCloseContent
(
"virtualFolder"
,
virtualFolder
);
m_doc
.
open
(
"customFilter"
,
customFilterAttributes
);
// Add custom filter
m_doc
.
openCloseContent
(
"filterAttribute"
,
filterAttribute
);
QCString
filterName
=
Config_getString
(
"QHP_CUSTOM_FILTER_NAME"
);
if
(
!
filterName
.
isEmpty
())
{
const
char
*
tagAttributes
[]
=
{
"name"
,
filterName
,
0
};
m_doc
.
open
(
"customFilter"
,
tagAttributes
);
QStringList
customFilterAttributes
=
QStringList
::
split
(
' '
,
Config_getString
(
"QHP_CUST_FILTER_ATTRS"
));
for
(
int
i
=
0
;
i
<
(
int
)
customFilterAttributes
.
count
();
i
++
)
{
m_doc
.
openCloseContent
(
"filterAttribute"
,
customFilterAttributes
[
i
]);
}
m_doc
.
close
(
"customFilter"
);
m_doc
.
close
(
"customFilter"
);
}
m_doc
.
open
(
"filterSection"
);
m_doc
.
open
(
"filterSection"
);
m_doc
.
openCloseContent
(
"filterAttribute"
,
filterAttribute
);
// Add section attributes
QStringList
sectionFilterAttributes
=
QStringList
::
split
(
' '
,
Config_getString
(
"QHP_SECT_FILTER_ATTRS"
));
if
(
!
sectionFilterAttributes
.
contains
(
QString
(
"doxygen"
)))
{
sectionFilterAttributes
<<
"doxygen"
;
}
for
(
int
i
=
0
;
i
<
(
int
)
sectionFilterAttributes
.
count
();
i
++
)
{
m_doc
.
openCloseContent
(
"filterAttribute"
,
sectionFilterAttributes
[
i
]);
}
m_toc
.
open
(
"toc"
);
m_toc
.
open
(
"toc"
);
// Add extra root node
QCString
fullProjectname
=
getFullProjectName
();
const
char
*
const
attributes
[]
=
{
"title"
,
fullProjectname
,
"ref"
,
"index.html"
,
NULL
};
m_toc
.
open
(
"section"
,
attributes
);
m_prevSectionLevel
=
1
;
m_sectionLevel
=
1
;
m_index
.
open
(
"keywords"
);
m_index
.
open
(
"keywords"
);
m_files
.
open
(
"files"
);
m_files
.
open
(
"files"
);
}
}
...
@@ -93,6 +125,10 @@ void Qhp::finalize()
...
@@ -93,6 +125,10 @@ void Qhp::finalize()
{
{
// Finish TOC
// Finish TOC
handlePrevSection
();
handlePrevSection
();
for
(
int
i
=
m_prevSectionLevel
;
i
>
0
;
i
--
)
{
m_toc
.
close
(
"section"
);
}
m_toc
.
close
(
"toc"
);
m_toc
.
close
(
"toc"
);
m_doc
.
insert
(
m_toc
);
m_doc
.
insert
(
m_toc
);
...
@@ -101,12 +137,6 @@ void Qhp::finalize()
...
@@ -101,12 +137,6 @@ void Qhp::finalize()
m_doc
.
insert
(
m_index
);
m_doc
.
insert
(
m_index
);
// Finish files
// Finish files
addFile
(
"doxygen.css"
);
addFile
(
"doxygen.png"
);
addFile
(
"tab_b.gif"
);
addFile
(
"tab_l.gif"
);
addFile
(
"tab_r.gif"
);
addFile
(
"tabs.css"
);
m_files
.
close
(
"files"
);
m_files
.
close
(
"files"
);
m_doc
.
insert
(
m_files
);
m_doc
.
insert
(
m_files
);
...
@@ -137,9 +167,9 @@ void Qhp::decContentsDepth()
...
@@ -137,9 +167,9 @@ void Qhp::decContentsDepth()
m_sectionLevel
--
;
m_sectionLevel
--
;
}
}
void
Qhp
::
addContentsItem
(
bool
/*isDir*/
,
c
har
const
*
name
,
void
Qhp
::
addContentsItem
(
bool
/*isDir*/
,
c
onst
char
*
name
,
c
har
const
*
/*ref*/
,
char
const
*
file
,
c
onst
char
*
/*ref*/
,
const
char
*
file
,
c
har
const
*
/*anchor*/
)
c
onst
char
*
/*anchor*/
)
{
{
// Backup difference before modification
// Backup difference before modification
int
diff
=
m_prevSectionLevel
-
m_sectionLevel
;
int
diff
=
m_prevSectionLevel
-
m_sectionLevel
;
...
@@ -154,9 +184,9 @@ void Qhp::addContentsItem(bool /*isDir*/, char const * name,
...
@@ -154,9 +184,9 @@ void Qhp::addContentsItem(bool /*isDir*/, char const * name,
}
}
}
}
void
Qhp
::
addIndexItem
(
c
har
const
*
level1
,
char
const
*
level2
,
void
Qhp
::
addIndexItem
(
c
onst
char
*
level1
,
const
char
*
level2
,
c
har
const
*
contRef
,
char
const
*
/*memRef*/
,
c
onst
char
*
contRef
,
const
char
*
/*memRef*/
,
c
har
const
*
anchor
,
const
MemberDef
*
/*md*/
)
c
onst
char
*
anchor
,
const
MemberDef
*
/*md*/
)
{
{
/*
/*
<keyword name="foo" id="MyApplication::foo" ref="doc.html#foo"/>
<keyword name="foo" id="MyApplication::foo" ref="doc.html#foo"/>
...
@@ -165,7 +195,7 @@ void Qhp::addIndexItem(char const * level1, char const * level2,
...
@@ -165,7 +195,7 @@ void Qhp::addIndexItem(char const * level1, char const * level2,
QCString
id
(
level1
);
QCString
id
(
level1
);
id
+=
"::"
;
id
+=
"::"
;
id
+=
level2
;
id
+=
level2
;
c
har
const
*
attributes
[]
=
c
onst
char
*
attributes
[]
=
{
"name"
,
level2
,
{
"name"
,
level2
,
"id"
,
id
,
"id"
,
id
,
"ref"
,
ref
,
"ref"
,
ref
,
...
@@ -175,7 +205,7 @@ void Qhp::addIndexItem(char const * level1, char const * level2,
...
@@ -175,7 +205,7 @@ void Qhp::addIndexItem(char const * level1, char const * level2,
}
}
void
void
Qhp
::
addIndexFile
(
c
har
const
*
name
)
Qhp
::
addIndexFile
(
c
onst
char
*
name
)
{
{
addFile
(
name
);
addFile
(
name
);
}
}
...
@@ -183,7 +213,6 @@ Qhp::addIndexFile(char const * name)
...
@@ -183,7 +213,6 @@ Qhp::addIndexFile(char const * name)
/*static*/
QCString
/*static*/
QCString
Qhp
::
getQhpFileName
()
Qhp
::
getQhpFileName
()
{
{
return
"index.qhp"
;
return
"index.qhp"
;
}
}
...
@@ -215,20 +244,13 @@ Qhp::handlePrevSection()
...
@@ -215,20 +244,13 @@ Qhp::handlePrevSection()
return
;
return
;
}
}
// Replace "Main Page" with <project_name> in TOC
// We skip "Main Page" as our extra root is pointing to that
QCString
finalTitle
;
if
(
!
((
m_prevSectionLevel
==
1
)
&&
(
m_prevSectionTitle
==
"Main Page"
)))
if
(
m_prevSectionLevel
==
0
&&
m_prevSectionTitle
==
"Main Page"
)
{
{
finalTitle
=
getFullProjectName
();
}
if
(
finalTitle
.
isEmpty
())
{
finalTitle
=
m_prevSectionTitle
;
}
QCString
finalRef
=
makeFileName
(
m_prevSectionRef
);
QCString
finalRef
=
makeFileName
(
m_prevSectionRef
);
char
const
*
const
attributes
[]
=
const
char
*
const
attributes
[]
=
{
"title"
,
final
Title
,
{
"title"
,
m_prevSection
Title
,
"ref"
,
finalRef
,
"ref"
,
finalRef
,
NULL
NULL
};
};
...
@@ -243,11 +265,12 @@ Qhp::handlePrevSection()
...
@@ -243,11 +265,12 @@ Qhp::handlePrevSection()
// Section without children
// Section without children
m_toc
.
openClose
(
"section"
,
attributes
);
m_toc
.
openClose
(
"section"
,
attributes
);
}
}
}
clearPrevSection
();
clearPrevSection
();
}
}
void
Qhp
::
setPrevSection
(
c
har
const
*
title
,
char
const
*
ref
,
int
level
)
void
Qhp
::
setPrevSection
(
c
onst
char
*
title
,
const
char
*
ref
,
int
level
)
{
{
m_prevSectionTitle
=
title
;
m_prevSectionTitle
=
title
;
m_prevSectionRef
=
ref
;
m_prevSectionRef
=
ref
;
...
@@ -258,10 +281,20 @@ void Qhp::clearPrevSection()
...
@@ -258,10 +281,20 @@ void Qhp::clearPrevSection()
{
{
m_prevSectionTitle
.
resize
(
0
);
m_prevSectionTitle
.
resize
(
0
);
m_prevSectionRef
.
resize
(
0
);
m_prevSectionRef
.
resize
(
0
);
m_prevSectionLevel
=
m_sectionLevel
;
}
}
void
Qhp
::
addFile
(
c
har
const
*
fileName
)
void
Qhp
::
addFile
(
c
onst
char
*
fileName
)
{
{
m_files
.
openCloseContent
(
"file"
,
fileName
);
m_files
.
openCloseContent
(
"file"
,
fileName
);
}
}
void
Qhp
::
addImageFile
(
const
char
*
fileName
)
{
addFile
(
fileName
);
}
void
Qhp
::
addStyleSheetFile
(
const
char
*
fileName
)
{
addFile
(
fileName
);
}
src/qhp.h
View file @
b37fae19
...
@@ -31,12 +31,14 @@ class Qhp : public IndexIntf
...
@@ -31,12 +31,14 @@ class Qhp : public IndexIntf
void
finalize
();
void
finalize
();
void
incContentsDepth
();
void
incContentsDepth
();
void
decContentsDepth
();
void
decContentsDepth
();
void
addContentsItem
(
bool
isDir
,
char
const
*
name
,
char
const
*
ref
,
void
addContentsItem
(
bool
isDir
,
const
char
*
name
,
const
char
*
ref
,
char
const
*
file
,
char
const
*
anchor
);
const
char
*
file
,
const
char
*
anchor
);
void
addIndexItem
(
char
const
*
level1
,
char
const
*
level2
,
void
addIndexItem
(
const
char
*
level1
,
const
char
*
level2
,
char
const
*
contRef
,
char
const
*
memRef
,
const
char
*
contRef
,
const
char
*
memRef
,
char
const
*
anchor
,
const
MemberDef
*
md
);
const
char
*
anchor
,
const
MemberDef
*
md
);
void
addIndexFile
(
char
const
*
name
);
void
addIndexFile
(
const
char
*
name
);
void
addImageFile
(
const
char
*
name
);
void
addStyleSheetFile
(
const
char
*
name
);
// END IndexIntf
// END IndexIntf
static
QCString
getQhpFileName
();
static
QCString
getQhpFileName
();
...
@@ -44,8 +46,8 @@ class Qhp : public IndexIntf
...
@@ -44,8 +46,8 @@ class Qhp : public IndexIntf
private
:
private
:
void
handlePrevSection
();
void
handlePrevSection
();
void
clearPrevSection
();
void
clearPrevSection
();
void
setPrevSection
(
c
har
const
*
title
,
char
const
*
ref
,
int
level
);
void
setPrevSection
(
c
onst
char
*
title
,
const
char
*
ref
,
int
level
);
void
addFile
(
c
har
const
*
fileName
);
void
addFile
(
c
onst
char
*
fileName
);
static
QCString
getFullProjectName
();
static
QCString
getFullProjectName
();
...
...
src/rtfgen.cpp
View file @
b37fae19
...
@@ -922,10 +922,13 @@ void RTFGenerator::startIndexList()
...
@@ -922,10 +922,13 @@ void RTFGenerator::startIndexList()
void
RTFGenerator
::
endIndexList
()
void
RTFGenerator
::
endIndexList
()
{
{
DBG_RTF
(
t
<<
"{
\\
comment (endIndexList)}"
<<
endl
)
DBG_RTF
(
t
<<
"{
\\
comment (endIndexList)}"
<<
endl
)
if
(
!
m_omitParagraph
)
{
t
<<
"
\\
par"
;
t
<<
"
\\
par"
;
m_omitParagraph
=
TRUE
;
}
t
<<
"}"
;
t
<<
"}"
;
decrementIndentLevel
();
decrementIndentLevel
();
m_omitParagraph
=
TRUE
;
}
}
/*! start bullet list */
/*! start bullet list */
...
@@ -990,6 +993,12 @@ void RTFGenerator::writeListItem()
...
@@ -990,6 +993,12 @@ void RTFGenerator::writeListItem()
void
RTFGenerator
::
startIndexItem
(
const
char
*
,
const
char
*
)
void
RTFGenerator
::
startIndexItem
(
const
char
*
,
const
char
*
)
{
{
DBG_RTF
(
t
<<
"{
\\
comment (startIndexItem)}"
<<
endl
)
DBG_RTF
(
t
<<
"{
\\
comment (startIndexItem)}"
<<
endl
)
if
(
!
m_omitParagraph
)
{
t
<<
"
\\
par"
<<
endl
;
m_omitParagraph
=
TRUE
;
}
}
}
void
RTFGenerator
::
endIndexItem
(
const
char
*
ref
,
const
char
*
fn
)
void
RTFGenerator
::
endIndexItem
(
const
char
*
ref
,
const
char
*
fn
)
...
@@ -1006,7 +1015,6 @@ void RTFGenerator::endIndexItem(const char *ref,const char *fn)
...
@@ -1006,7 +1015,6 @@ void RTFGenerator::endIndexItem(const char *ref,const char *fn)
t
<<
endl
;
t
<<
endl
;
}
}
m_omitParagraph
=
TRUE
;
m_omitParagraph
=
TRUE
;
newParagraph
();
}
}
//void RTFGenerator::writeIndexFileItem(const char *,const char *text)
//void RTFGenerator::writeIndexFileItem(const char *,const char *text)
...
@@ -2607,15 +2615,17 @@ void RTFGenerator::postProcess(QByteArray &a)
...
@@ -2607,15 +2615,17 @@ void RTFGenerator::postProcess(QByteArray &a)
QByteArray
enc
(
a
.
size
()
*
4
);
// worst case
QByteArray
enc
(
a
.
size
()
*
4
);
// worst case
int
off
=
0
;
int
off
=
0
;
uint
i
;
uint
i
;
bool
mbFlag
=
FALSE
;
for
(
i
=
0
;
i
<
a
.
size
();
i
++
)
for
(
i
=
0
;
i
<
a
.
size
();
i
++
)
{
{
unsigned
char
c
=
(
unsigned
char
)
a
.
at
(
i
);
unsigned
char
c
=
(
unsigned
char
)
a
.
at
(
i
);
if
(
c
>
0x80
)
if
(
c
>
0x80
||
mbFlag
)
{
{
char
s
[
10
];
char
s
[
10
];
sprintf
(
s
,
"
\\
'%X"
,
c
);
sprintf
(
s
,
"
\\
'%X"
,
c
);
qstrcpy
(
enc
.
data
()
+
off
,
s
);
qstrcpy
(
enc
.
data
()
+
off
,
s
);
off
+=
qstrlen
(
s
);
off
+=
qstrlen
(
s
);
mbFlag
=
c
>
0x80
;
}
}
else
else
{
{
...
...
src/scanner.l
View file @
b37fae19
...
@@ -5383,7 +5383,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
...
@@ -5383,7 +5383,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
//printf("parseCommentBlock [%s]\n",doc.data());
//printf("parseCommentBlock [%s]\n",doc.data());
while (parseCommentBlock(
while (parseCommentBlock(
g_thisParser,
g_thisParser,
docBlockInBody ? previous : current,
docBlockInBody
&& previous
? previous : current,
doc, // text
doc, // text
yyFileName, // file
yyFileName, // file
brief ? current->briefLine : current->docLine, // line of block start
brief ? current->briefLine : current->docLine, // line of block start
...
...
src/util.cpp
View file @
b37fae19
...
@@ -49,6 +49,18 @@
...
@@ -49,6 +49,18 @@
#include "textdocvisitor.h"
#include "textdocvisitor.h"
#include "portable.h"
#include "portable.h"
#define ENABLE_TRACINGSUPPORT 0
#if defined(_OS_MAC_) && ENABLE_TRACINGSUPPORT
#define TRACINGSUPPORT
#endif
#ifdef TRACINGSUPPORT
#include <execinfo.h>
#include <unistd.h>
#endif
//------------------------------------------------------------------------
//------------------------------------------------------------------------
// selects one of the name to sub-dir mapping algorithms that is used
// selects one of the name to sub-dir mapping algorithms that is used
...
@@ -6355,35 +6367,85 @@ void stringToSearchIndex(const QCString &docBaseUrl,const QCString &title,
...
@@ -6355,35 +6367,85 @@ void stringToSearchIndex(const QCString &docBaseUrl,const QCString &title,
}
}
}
}
//--------------------------------------------------------------------------
static
QDict
<
int
>
g_extLookup
;
static
struct
Lang2ExtMap
{
const
char
*
langName
;
SrcLangExt
parserId
;
}
g_lang2extMap
[]
=
{
{
"idl"
,
SrcLangExt_IDL
},
{
"java"
,
SrcLangExt_Java
},
{
"javascript"
,
SrcLangExt_JS
},
{
"c#"
,
SrcLangExt_CSharp
},
{
"d"
,
SrcLangExt_D
},
{
"php"
,
SrcLangExt_PHP
},
{
"objective-c"
,
SrcLangExt_ObjC
},
{
"python"
,
SrcLangExt_Python
},
{
"fortran"
,
SrcLangExt_F90
},
{
"vhdl"
,
SrcLangExt_VHDL
},
{
"c"
,
SrcLangExt_Cpp
},
{
"c++"
,
SrcLangExt_Cpp
},
{
0
,
(
SrcLangExt
)
0
}
};
bool
updateLanguageMapping
(
const
QCString
&
extension
,
const
QCString
&
parser
)
{
getLanguageFromFileName
(
"dummy"
);
// force initializion of the g_extLookup map
const
Lang2ExtMap
*
p
=
g_lang2extMap
;
QCString
langName
=
parser
.
lower
();
while
(
p
->
langName
)
{
if
(
langName
==
p
->
langName
)
break
;
p
++
;
}
if
(
!
p
->
langName
)
return
FALSE
;
// found the parser
SrcLangExt
parserId
=
p
->
parserId
;
QCString
extName
=
extension
;
if
(
extName
.
isEmpty
())
return
FALSE
;
if
(
extName
.
at
(
0
)
!=
'.'
)
extName
.
prepend
(
"."
);
if
(
g_extLookup
.
find
(
extension
)
!=
0
)
// parser was already register for this ext
{
g_extLookup
.
remove
(
extension
);
}
g_extLookup
.
insert
(
extension
,
new
int
(
parserId
));
return
TRUE
;
}
SrcLangExt
getLanguageFromFileName
(
const
QCString
fileName
)
SrcLangExt
getLanguageFromFileName
(
const
QCString
fileName
)
{
{
int
i
=
fileName
.
findRev
(
'.'
);
int
i
=
fileName
.
findRev
(
'.'
);
static
bool
init
=
FALSE
;
static
bool
init
=
FALSE
;
static
QDict
<
int
>
extLookup
;
g_extLookup
.
setAutoDelete
(
TRUE
);
extLookup
.
setAutoDelete
(
TRUE
);
if
(
!
init
)
// one time initialization
if
(
!
init
)
// one time initialization
{
{
extLookup
.
insert
(
".idl"
,
new
int
(
SrcLangExt_IDL
));
g_
extLookup
.
insert
(
".idl"
,
new
int
(
SrcLangExt_IDL
));
extLookup
.
insert
(
".ddl"
,
new
int
(
SrcLangExt_IDL
));
g_
extLookup
.
insert
(
".ddl"
,
new
int
(
SrcLangExt_IDL
));
extLookup
.
insert
(
".odl"
,
new
int
(
SrcLangExt_IDL
));
g_
extLookup
.
insert
(
".odl"
,
new
int
(
SrcLangExt_IDL
));
extLookup
.
insert
(
".java"
,
new
int
(
SrcLangExt_Java
));
g_
extLookup
.
insert
(
".java"
,
new
int
(
SrcLangExt_Java
));
extLookup
.
insert
(
".as"
,
new
int
(
SrcLangExt_JS
));
g_
extLookup
.
insert
(
".as"
,
new
int
(
SrcLangExt_JS
));
extLookup
.
insert
(
".js"
,
new
int
(
SrcLangExt_JS
));
g_
extLookup
.
insert
(
".js"
,
new
int
(
SrcLangExt_JS
));
extLookup
.
insert
(
".cs"
,
new
int
(
SrcLangExt_CSharp
));
g_
extLookup
.
insert
(
".cs"
,
new
int
(
SrcLangExt_CSharp
));
extLookup
.
insert
(
".d"
,
new
int
(
SrcLangExt_D
));
g_
extLookup
.
insert
(
".d"
,
new
int
(
SrcLangExt_D
));
extLookup
.
insert
(
".php"
,
new
int
(
SrcLangExt_PHP
));
g_
extLookup
.
insert
(
".php"
,
new
int
(
SrcLangExt_PHP
));
extLookup
.
insert
(
".php4"
,
new
int
(
SrcLangExt_PHP
));
g_
extLookup
.
insert
(
".php4"
,
new
int
(
SrcLangExt_PHP
));
extLookup
.
insert
(
".php5"
,
new
int
(
SrcLangExt_PHP
));
g_
extLookup
.
insert
(
".php5"
,
new
int
(
SrcLangExt_PHP
));
extLookup
.
insert
(
".inc"
,
new
int
(
SrcLangExt_PHP
));
g_
extLookup
.
insert
(
".inc"
,
new
int
(
SrcLangExt_PHP
));
extLookup
.
insert
(
".phtml"
,
new
int
(
SrcLangExt_PHP
));
g_
extLookup
.
insert
(
".phtml"
,
new
int
(
SrcLangExt_PHP
));
extLookup
.
insert
(
".m"
,
new
int
(
SrcLangExt_ObjC
));
g_
extLookup
.
insert
(
".m"
,
new
int
(
SrcLangExt_ObjC
));
extLookup
.
insert
(
".M"
,
new
int
(
SrcLangExt_ObjC
));
g_
extLookup
.
insert
(
".M"
,
new
int
(
SrcLangExt_ObjC
));
extLookup
.
insert
(
".mm"
,
new
int
(
SrcLangExt_ObjC
));
g_
extLookup
.
insert
(
".mm"
,
new
int
(
SrcLangExt_ObjC
));
extLookup
.
insert
(
".py"
,
new
int
(
SrcLangExt_Python
));
g_
extLookup
.
insert
(
".py"
,
new
int
(
SrcLangExt_Python
));
extLookup
.
insert
(
".f"
,
new
int
(
SrcLangExt_F90
));
g_
extLookup
.
insert
(
".f"
,
new
int
(
SrcLangExt_F90
));
extLookup
.
insert
(
".f90"
,
new
int
(
SrcLangExt_F90
));
g_
extLookup
.
insert
(
".f90"
,
new
int
(
SrcLangExt_F90
));
extLookup
.
insert
(
".vhd"
,
new
int
(
SrcLangExt_VHDL
));
g_
extLookup
.
insert
(
".vhd"
,
new
int
(
SrcLangExt_VHDL
));
extLookup
.
insert
(
".vhdl"
,
new
int
(
SrcLangExt_VHDL
));
g_
extLookup
.
insert
(
".vhdl"
,
new
int
(
SrcLangExt_VHDL
));
init
=
TRUE
;
init
=
TRUE
;
}
}
if
(
i
!=-
1
)
// name has an extension
if
(
i
!=-
1
)
// name has an extension
...
@@ -6391,7 +6453,7 @@ SrcLangExt getLanguageFromFileName(const QCString fileName)
...
@@ -6391,7 +6453,7 @@ SrcLangExt getLanguageFromFileName(const QCString fileName)
QCString
extStr
=
fileName
.
right
(
fileName
.
length
()
-
i
);
QCString
extStr
=
fileName
.
right
(
fileName
.
length
()
-
i
);
if
(
!
extStr
.
isEmpty
())
// non-empty extension
if
(
!
extStr
.
isEmpty
())
// non-empty extension
{
{
int
*
pVal
=
extLookup
.
find
(
extStr
);
int
*
pVal
=
g_
extLookup
.
find
(
extStr
);
if
(
pVal
)
// listed extension
if
(
pVal
)
// listed extension
{
{
return
(
SrcLangExt
)
*
pVal
;
// cast void* address to enum value
return
(
SrcLangExt
)
*
pVal
;
// cast void* address to enum value
...
@@ -6401,6 +6463,8 @@ SrcLangExt getLanguageFromFileName(const QCString fileName)
...
@@ -6401,6 +6463,8 @@ SrcLangExt getLanguageFromFileName(const QCString fileName)
return
SrcLangExt_Cpp
;
// not listed => assume C-ish language.
return
SrcLangExt_Cpp
;
// not listed => assume C-ish language.
}
}
//--------------------------------------------------------------------------
/*! Returns true iff the given name string appears to be a typedef in scope. */
/*! Returns true iff the given name string appears to be a typedef in scope. */
bool
checkIfTypedef
(
Definition
*
scope
,
FileDef
*
fileScope
,
const
char
*
n
)
bool
checkIfTypedef
(
Definition
*
scope
,
FileDef
*
fileScope
,
const
char
*
n
)
{
{
...
@@ -6471,12 +6535,14 @@ bool checkIfTypedef(Definition *scope,FileDef *fileScope,const char *n)
...
@@ -6471,12 +6535,14 @@ bool checkIfTypedef(Definition *scope,FileDef *fileScope,const char *n)
return
FALSE
;
return
FALSE
;
}
}
QCString
parseCommentAsText
(
const
QString
&
doc
,
const
QCString
&
fileName
,
int
lineNr
)
QCString
parseCommentAsText
(
const
Definition
*
scope
,
const
MemberDef
*
md
,
const
QString
&
doc
,
const
QCString
&
fileName
,
int
lineNr
)
{
{
QString
result
;
QString
result
;
if
(
doc
.
isEmpty
())
return
result
.
data
();
if
(
doc
.
isEmpty
())
return
result
.
data
();
QTextStream
t
(
&
result
,
IO_WriteOnly
);
QTextStream
t
(
&
result
,
IO_WriteOnly
);
DocNode
*
root
=
validatingParseDoc
(
fileName
,
lineNr
,
Doxygen
::
globalScope
,
0
,
doc
,
FALSE
,
FALSE
);
DocNode
*
root
=
validatingParseDoc
(
fileName
,
lineNr
,
(
Definition
*
)
scope
,(
MemberDef
*
)
md
,
doc
,
FALSE
,
FALSE
);
TextDocVisitor
*
visitor
=
new
TextDocVisitor
(
t
);
TextDocVisitor
*
visitor
=
new
TextDocVisitor
(
t
);
root
->
accept
(
visitor
);
root
->
accept
(
visitor
);
delete
visitor
;
delete
visitor
;
...
@@ -6689,3 +6755,30 @@ bool usingTreeIndex()
...
@@ -6689,3 +6755,30 @@ bool usingTreeIndex()
return
TreeView
==
"FRAME"
||
TreeView
==
"ALL"
||
TreeView
==
"YES"
;
return
TreeView
==
"FRAME"
||
TreeView
==
"ALL"
||
TreeView
==
"YES"
;
}
}
void
stackTrace
()
{
#ifdef TRACINGSUPPORT
void
*
backtraceFrames
[
128
];
int
frameCount
=
backtrace
(
backtraceFrames
,
128
);
static
char
cmd
[
40960
];
char
*
p
=
cmd
;
p
+=
sprintf
(
p
,
"/usr/bin/atos -p %d "
,
(
int
)
getpid
());
for
(
int
x
=
0
;
x
<
frameCount
;
x
++
)
{
p
+=
sprintf
(
p
,
"%p "
,
backtraceFrames
[
x
]);
}
fprintf
(
stderr
,
"========== STACKTRACE START ==============
\n
"
);
if
(
FILE
*
fp
=
popen
(
cmd
,
"r"
))
{
char
resBuf
[
512
];
while
(
size_t
len
=
fread
(
resBuf
,
1
,
sizeof
(
resBuf
),
fp
))
{
fwrite
(
resBuf
,
1
,
len
,
stderr
);
}
pclose
(
fp
);
}
fprintf
(
stderr
,
"============ STACKTRACE END ==============
\n
"
);
//fprintf(stderr,"%s\n", frameStrings[x]);
#endif
}
src/util.h
View file @
b37fae19
...
@@ -328,6 +328,7 @@ void stringToSearchIndex(const QCString &docUrlBase,const QCString &title,
...
@@ -328,6 +328,7 @@ void stringToSearchIndex(const QCString &docUrlBase,const QCString &title,
const
QCString
&
str
,
bool
priority
=
FALSE
,
const
QCString
&
str
,
bool
priority
=
FALSE
,
const
QCString
&
anchor
=
""
);
const
QCString
&
anchor
=
""
);
bool
updateLanguageMapping
(
const
QCString
&
extension
,
const
QCString
&
parser
);
SrcLangExt
getLanguageFromFileName
(
const
QCString
fileName
);
SrcLangExt
getLanguageFromFileName
(
const
QCString
fileName
);
bool
checkIfTypedef
(
Definition
*
scope
,
FileDef
*
fileScope
,
const
char
*
n
);
bool
checkIfTypedef
(
Definition
*
scope
,
FileDef
*
fileScope
,
const
char
*
n
);
...
@@ -337,7 +338,7 @@ ClassDef *newResolveTypedef(FileDef *fileScope,MemberDef *md,
...
@@ -337,7 +338,7 @@ ClassDef *newResolveTypedef(FileDef *fileScope,MemberDef *md,
QCString
*
pResolvedType
=
0
,
QCString
*
pResolvedType
=
0
,
ArgumentList
*
actTemplParams
=
0
);
ArgumentList
*
actTemplParams
=
0
);
QCString
parseCommentAsText
(
const
QString
&
doc
,
const
QCString
&
fileName
,
int
lineNr
);
QCString
parseCommentAsText
(
const
Definition
*
scope
,
const
MemberDef
*
member
,
const
QString
&
doc
,
const
QCString
&
fileName
,
int
lineNr
);
QCString
transcodeCharacterStringToUTF8
(
const
QCString
&
input
);
QCString
transcodeCharacterStringToUTF8
(
const
QCString
&
input
);
...
@@ -357,6 +358,7 @@ void writeTypeConstraints(OutputList &ol,Definition *d,ArgumentList *al);
...
@@ -357,6 +358,7 @@ void writeTypeConstraints(OutputList &ol,Definition *d,ArgumentList *al);
QCString
convertCharEntitiesToUTF8
(
const
QCString
&
s
);
QCString
convertCharEntitiesToUTF8
(
const
QCString
&
s
);
bool
usingTreeIndex
();
bool
usingTreeIndex
();
void
stackTrace
();
#endif
#endif
src/vhdldocgen.cpp
View file @
b37fae19
...
@@ -1209,7 +1209,7 @@ QCString VhdlDocGen::trTypeString(int type)
...
@@ -1209,7 +1209,7 @@ QCString VhdlDocGen::trTypeString(int type)
case
VhdlDocGen
:
:
SHAREDVARIABLE
:
return
"Shared Variable"
;
case
VhdlDocGen
:
:
SHAREDVARIABLE
:
return
"Shared Variable"
;
case
VhdlDocGen
:
:
GROUP
:
return
"Group"
;
case
VhdlDocGen
:
:
GROUP
:
return
"Group"
;
case
VhdlDocGen
:
:
VFILE
:
return
"File"
;
case
VhdlDocGen
:
:
VFILE
:
return
"File"
;
case
VhdlDocGen
:
:
COMPONENT_INST
:
return
"Component Instanti
n
ation"
;
case
VhdlDocGen
:
:
COMPONENT_INST
:
return
"Component Instantiation"
;
case
VhdlDocGen
:
:
ALIAS
:
return
"Alias"
;
case
VhdlDocGen
:
:
ALIAS
:
return
"Alias"
;
case
VhdlDocGen
:
:
CONFIG
:
return
"Configuration"
;
case
VhdlDocGen
:
:
CONFIG
:
return
"Configuration"
;
default
:
return
""
;
default
:
return
""
;
...
@@ -1926,6 +1926,34 @@ void VhdlDocGen::writeVHDLDeclaration(MemberDef* mdef,OutputList &ol,
...
@@ -1926,6 +1926,34 @@ void VhdlDocGen::writeVHDLDeclaration(MemberDef* mdef,OutputList &ol,
VhdlDocGen
::
writeProcedureProto
(
ol
,
alp
.
pointer
(),
mdef
);
VhdlDocGen
::
writeProcedureProto
(
ol
,
alp
.
pointer
(),
mdef
);
break
;
break
;
case
VhdlDocGen
:
:
USE
:
kl
=
VhdlDocGen
::
getClass
(
mdef
->
name
());
if
(
kl
&&
((
VhdlDocGen
::
VhdlClasses
)
kl
->
protection
()
==
VhdlDocGen
::
ENTITYCLASS
))
break
;
writeLink
(
mdef
,
ol
);
ol
.
insertMemberAlign
();
ol
.
docify
(
" "
);
if
(
kl
)
{
nn
=
kl
->
getOutputFileBase
();
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
docify
(
" "
);
QCString
name
=
theTranslator_vhdlType
(
VhdlDocGen
::
PACKAGE
,
TRUE
);
ol
.
startBold
();
ol
.
docify
(
name
.
data
());
name
.
resize
(
0
);
ol
.
endBold
();
name
+=
" <"
+
mdef
->
name
()
+
">"
;
ol
.
startEmphasis
();
ol
.
writeObjectLink
(
kl
->
getReference
(),
kl
->
getOutputFileBase
(),
0
,
name
.
data
());
ol
.
popGeneratorState
();
}
break
;
case
VhdlDocGen
:
:
LIBRARY
:
writeLink
(
mdef
,
ol
);
ol
.
insertMemberAlign
();
break
;
case
VhdlDocGen
:
:
GENERIC
:
case
VhdlDocGen
:
:
GENERIC
:
case
VhdlDocGen
:
:
PORT
:
case
VhdlDocGen
:
:
PORT
:
writeLink
(
mdef
,
ol
);
writeLink
(
mdef
,
ol
);
...
...
src/vhdlscanner.l
View file @
b37fae19
...
@@ -809,9 +809,9 @@ ALLID [^;()\t ]
...
@@ -809,9 +809,9 @@ ALLID [^;()\t ]
BEGIN(FindEntityName);
BEGIN(FindEntityName);
}
}
<Start>{MAPCOMPONENT}|{MAPCOMPONENT1} { // found
new mapped component aaa: bbb port map
<Start>{MAPCOMPONENT}|{MAPCOMPONENT1} { // found
component instantiation
lineCount();
//
lineCount();
QCString type;
QCString type;
QCString tt(yytext);
QCString tt(yytext);
QRegExp regg("[ \n\t:.()-]");
QRegExp regg("[ \n\t:.()-]");
...
...
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