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
0c751ba9
Commit
0c751ba9
authored
Oct 27, 2009
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.6.1-20091027
parent
1042ef3a
Changes
56
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
56 changed files
with
1050 additions
and
713 deletions
+1050
-713
INSTALL
INSTALL
+2
-2
README
README
+2
-2
doxywizard.cpp
addon/doxywizard/doxywizard.cpp
+14
-28
expert.cpp
addon/doxywizard/expert.cpp
+2
-1
inputstring.cpp
addon/doxywizard/inputstring.cpp
+7
-5
inputstring.h
addon/doxywizard/inputstring.h
+3
-1
inputstrlist.h
addon/doxywizard/inputstrlist.h
+6
-6
configure
configure
+1
-1
autolink.doc
doc/autolink.doc
+3
-2
commands.doc
doc/commands.doc
+14
-1
customize.doc
doc/customize.doc
+6
-0
language.doc
doc/language.doc
+2
-2
translator_report.txt
doc/translator_report.txt
+4
-29
Doxyfile
qtools/Doxyfile
+2
-2
qglobal.h
qtools/qglobal.h
+4
-1
classdef.cpp
src/classdef.cpp
+2
-0
cmdmapper.cpp
src/cmdmapper.cpp
+1
-0
cmdmapper.h
src/cmdmapper.h
+2
-1
code.l
src/code.l
+2
-1
commentscan.h
src/commentscan.h
+3
-2
commentscan.l
src/commentscan.l
+17
-9
config.l
src/config.l
+0
-12
config.xml
src/config.xml
+1
-1
dbusxmlscanner.cpp
src/dbusxmlscanner.cpp
+3
-1
definition.cpp
src/definition.cpp
+11
-6
docparser.cpp
src/docparser.cpp
+235
-214
docparser.h
src/docparser.h
+14
-9
docsets.cpp
src/docsets.cpp
+152
-104
docsets.h
src/docsets.h
+5
-3
doctokenizer.l
src/doctokenizer.l
+2
-2
dot.cpp
src/dot.cpp
+1
-1
doxygen.cpp
src/doxygen.cpp
+17
-29
fortrancode.l
src/fortrancode.l
+1
-1
fortranscanner.l
src/fortranscanner.l
+2
-1
ftvhelp.h
src/ftvhelp.h
+4
-3
htmldocvisitor.cpp
src/htmldocvisitor.cpp
+42
-2
htmlhelp.cpp
src/htmlhelp.cpp
+36
-16
htmlhelp.h
src/htmlhelp.h
+5
-3
index.cpp
src/index.cpp
+18
-10
index.h
src/index.h
+26
-13
memberdef.cpp
src/memberdef.cpp
+20
-71
namespacedef.cpp
src/namespacedef.cpp
+2
-0
pagedef.cpp
src/pagedef.cpp
+2
-1
pre.l
src/pre.l
+2
-1
pycode.l
src/pycode.l
+1
-1
pyscanner.l
src/pyscanner.l
+2
-1
qhp.cpp
src/qhp.cpp
+63
-35
qhp.h
src/qhp.h
+7
-5
rtfgen.cpp
src/rtfgen.cpp
+2
-2
scanner.l
src/scanner.l
+7
-2
search.js
src/search.js
+18
-18
search_js.h
src/search_js.h
+18
-18
translator_fr.h
src/translator_fr.h
+209
-8
util.cpp
src/util.cpp
+19
-21
vhdlcode.l
src/vhdlcode.l
+2
-1
vhdlscanner.l
src/vhdlscanner.l
+2
-1
No files found.
INSTALL
View file @
0c751ba9
DOXYGEN Version 1.6.1-200910
04
DOXYGEN Version 1.6.1-200910
27
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 2009)
Dimitri van Heesch (
27
October 2009)
README
View file @
0c751ba9
DOXYGEN Version 1.6.1_200910
04
DOXYGEN Version 1.6.1_200910
27
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 2009)
Dimitri van Heesch (dimitri@stack.nl) (
27
October 2009)
addon/doxywizard/doxywizard.cpp
View file @
0c751ba9
...
@@ -85,10 +85,6 @@ MainWindow::MainWindow()
...
@@ -85,10 +85,6 @@ MainWindow::MainWindow()
m_launchHtml
=
new
QPushButton
(
tr
(
"Show HTML output"
));
m_launchHtml
=
new
QPushButton
(
tr
(
"Show HTML output"
));
launchLayout
->
addWidget
(
m_launchHtml
);
launchLayout
->
addWidget
(
m_launchHtml
);
#if 0
m_launchPdf = new QPushButton(tr("Show PDF output"));
launchLayout->addWidget(m_launchPdf);
#endif
launchLayout
->
addStretch
(
1
);
launchLayout
->
addStretch
(
1
);
grid
->
addLayout
(
launchLayout
,
1
,
0
);
grid
->
addLayout
(
launchLayout
,
1
,
0
);
runTabLayout
->
addLayout
(
grid
);
runTabLayout
->
addLayout
(
grid
);
...
@@ -300,24 +296,12 @@ void MainWindow::loadSettings()
...
@@ -300,24 +296,12 @@ void MainWindow::loadSettings()
{
{
QVariant
geometry
=
m_settings
.
value
(
QString
::
fromAscii
(
"main/geometry"
),
QVariant
::
Invalid
);
QVariant
geometry
=
m_settings
.
value
(
QString
::
fromAscii
(
"main/geometry"
),
QVariant
::
Invalid
);
QVariant
state
=
m_settings
.
value
(
QString
::
fromAscii
(
"main/state"
),
QVariant
::
Invalid
);
QVariant
state
=
m_settings
.
value
(
QString
::
fromAscii
(
"main/state"
),
QVariant
::
Invalid
);
//QVariant expState = m_settings.value(QString::fromAscii("expert/state"), QVariant::Invalid);
//QVariant expState2 = m_settings.value(QString::fromAscii("expert/state2"), QVariant::Invalid);
QVariant
wizState
=
m_settings
.
value
(
QString
::
fromAscii
(
"wizard/state"
),
QVariant
::
Invalid
);
QVariant
wizState
=
m_settings
.
value
(
QString
::
fromAscii
(
"wizard/state"
),
QVariant
::
Invalid
);
QVariant
loadSettings
=
m_settings
.
value
(
QString
::
fromAscii
(
"wizard/loadsettings"
),
QVariant
::
Invalid
);
QVariant
loadSettings
=
m_settings
.
value
(
QString
::
fromAscii
(
"wizard/loadsettings"
),
QVariant
::
Invalid
);
//QVariant workingDir = m_settings.value(QString::fromAscii("main/defdir"), QVariant::Invalid);
if
(
geometry
!=
QVariant
::
Invalid
)
restoreGeometry
(
geometry
.
toByteArray
());
if
(
geometry
!=
QVariant
::
Invalid
)
restoreGeometry
(
geometry
.
toByteArray
());
if
(
state
!=
QVariant
::
Invalid
)
restoreState
(
state
.
toByteArray
());
if
(
state
!=
QVariant
::
Invalid
)
restoreState
(
state
.
toByteArray
());
//if (expState !=QVariant::Invalid) m_expert->restoreState(expState.toByteArray());
//if (expState2 !=QVariant::Invalid) m_expert->restoreInnerState(expState2.toByteArray());
if
(
wizState
!=
QVariant
::
Invalid
)
m_wizard
->
restoreState
(
wizState
.
toByteArray
());
if
(
wizState
!=
QVariant
::
Invalid
)
m_wizard
->
restoreState
(
wizState
.
toByteArray
());
//if (workingDir!=QVariant::Invalid)
//{
// QString dir = workingDir.toString();
// m_workingDir->setText(dir);
// QDir::setCurrent(dir);
// m_run->setEnabled(!dir.isEmpty());
//}
if
(
loadSettings
!=
QVariant
::
Invalid
&&
loadSettings
.
toBool
())
if
(
loadSettings
!=
QVariant
::
Invalid
&&
loadSettings
.
toBool
())
{
{
m_expert
->
loadSettings
(
&
m_settings
);
m_expert
->
loadSettings
(
&
m_settings
);
...
@@ -337,8 +321,6 @@ void MainWindow::saveSettings()
...
@@ -337,8 +321,6 @@ void MainWindow::saveSettings()
m_settings
.
setValue
(
QString
::
fromAscii
(
"main/geometry"
),
saveGeometry
());
m_settings
.
setValue
(
QString
::
fromAscii
(
"main/geometry"
),
saveGeometry
());
m_settings
.
setValue
(
QString
::
fromAscii
(
"main/state"
),
saveState
());
m_settings
.
setValue
(
QString
::
fromAscii
(
"main/state"
),
saveState
());
//m_settings.setValue(QString::fromAscii("expert/state"), m_expert->saveState());
//m_settings.setValue(QString::fromAscii("expert/state2"), m_expert->saveInnerState());
m_settings
.
setValue
(
QString
::
fromAscii
(
"wizard/state"
),
m_wizard
->
saveState
());
m_settings
.
setValue
(
QString
::
fromAscii
(
"wizard/state"
),
m_wizard
->
saveState
());
}
}
...
@@ -387,15 +369,19 @@ void MainWindow::runDoxygen()
...
@@ -387,15 +369,19 @@ void MainWindow::runDoxygen()
#if defined(Q_OS_MACX)
#if defined(Q_OS_MACX)
doxygenPath
=
qApp
->
applicationDirPath
()
+
QString
::
fromAscii
(
"/../Resources/"
);
doxygenPath
=
qApp
->
applicationDirPath
()
+
QString
::
fromAscii
(
"/../Resources/"
);
qDebug
()
<<
tr
(
"Doxygen path: "
)
<<
doxygenPath
;
qDebug
()
<<
tr
(
"Doxygen path: "
)
<<
doxygenPath
;
if
(
!
QFile
(
doxygenPath
+
QString
::
fromAscii
(
"doxygen"
)).
exists
()
)
{
if
(
!
QFile
(
doxygenPath
+
QString
::
fromAscii
(
"doxygen"
)).
exists
()
)
// No doygen binary in the resources, if there is a system doxygen binary, use that instead
{
if
(
QFile
(
QString
::
fromAscii
(
"/usr/local/bin/doxygen"
)).
exists
()
)
// No doygen binary in the resources, if there is a system doxygen binary, use that instead
doxygenPath
=
QString
::
fromAscii
(
"/usr/local/bin/"
);
if
(
QFile
(
QString
::
fromAscii
(
"/usr/local/bin/doxygen"
)).
exists
()
)
else
{
{
qDebug
()
<<
tr
(
"Can't find the doxygen command, make sure it's in your $$PATH"
);
doxygenPath
=
QString
::
fromAscii
(
"/usr/local/bin/"
);
doxygenPath
=
QString
::
fromAscii
(
""
);
}
}
else
}
{
qDebug
()
<<
tr
(
"Can't find the doxygen command, make sure it's in your $$PATH"
);
doxygenPath
=
QString
::
fromAscii
(
""
);
}
}
qDebug
()
<<
tr
(
"Getting doxygen from: "
)
<<
doxygenPath
;
qDebug
()
<<
tr
(
"Getting doxygen from: "
)
<<
doxygenPath
;
#endif
#endif
...
@@ -423,7 +409,7 @@ void MainWindow::runDoxygen()
...
@@ -423,7 +409,7 @@ void MainWindow::runDoxygen()
QTextStream
t
(
m_runProcess
);
QTextStream
t
(
m_runProcess
);
m_expert
->
writeConfig
(
t
,
false
);
m_expert
->
writeConfig
(
t
,
false
);
m_runProcess
->
closeWriteChannel
();
m_runProcess
->
closeWriteChannel
();
if
(
m_runProcess
->
state
()
==
QProcess
::
NotRunning
)
if
(
m_runProcess
->
state
()
==
QProcess
::
NotRunning
)
{
{
m_outputLog
->
append
(
QString
::
fromAscii
(
"*** Failed to run doxygen
\n
"
));
m_outputLog
->
append
(
QString
::
fromAscii
(
"*** Failed to run doxygen
\n
"
));
...
...
addon/doxywizard/expert.cpp
View file @
0c751ba9
...
@@ -158,7 +158,8 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
...
@@ -158,7 +158,8 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
child
.
attribute
(
SA
(
"id"
)),
child
.
attribute
(
SA
(
"id"
)),
child
.
attribute
(
SA
(
"defval"
)),
child
.
attribute
(
SA
(
"defval"
)),
mode
,
mode
,
child
.
attribute
(
SA
(
"docs"
))
child
.
attribute
(
SA
(
"docs"
)),
child
.
attribute
(
SA
(
"abspath"
))
);
);
m_options
.
insert
(
m_options
.
insert
(
child
.
attribute
(
SA
(
"id"
)),
child
.
attribute
(
SA
(
"id"
)),
...
...
addon/doxywizard/inputstring.cpp
View file @
0c751ba9
...
@@ -21,8 +21,10 @@
...
@@ -21,8 +21,10 @@
InputString
::
InputString
(
QGridLayout
*
layout
,
int
&
row
,
InputString
::
InputString
(
QGridLayout
*
layout
,
int
&
row
,
const
QString
&
id
,
const
QString
&
s
,
const
QString
&
id
,
const
QString
&
s
,
StringMode
m
,
const
QString
&
docs
)
StringMode
m
,
const
QString
&
docs
,
:
m_default
(
s
),
m_sm
(
m
),
m_index
(
0
),
m_docs
(
docs
),
m_id
(
id
)
const
QString
&
absPath
)
:
m_default
(
s
),
m_sm
(
m
),
m_index
(
0
),
m_docs
(
docs
),
m_id
(
id
),
m_absPath
(
absPath
==
QString
::
fromAscii
(
"1"
))
{
{
m_lab
=
new
HelpLabel
(
id
);
m_lab
=
new
HelpLabel
(
id
);
if
(
m
==
StringFixed
)
if
(
m
==
StringFixed
)
...
@@ -126,7 +128,7 @@ void InputString::browse()
...
@@ -126,7 +128,7 @@ void InputString::browse()
QDir
dir
(
path
);
QDir
dir
(
path
);
if
(
!
MainWindow
::
instance
().
configFileName
().
isEmpty
()
&&
dir
.
exists
())
if
(
!
MainWindow
::
instance
().
configFileName
().
isEmpty
()
&&
dir
.
exists
())
{
{
fileName
=
dir
.
relativeFilePath
(
fileName
);
fileName
=
m_absPath
?
fileName
:
dir
.
relativeFilePath
(
fileName
);
}
}
setValue
(
fileName
);
setValue
(
fileName
);
}
}
...
@@ -140,10 +142,10 @@ void InputString::browse()
...
@@ -140,10 +142,10 @@ void InputString::browse()
QDir
dir
(
path
);
QDir
dir
(
path
);
if
(
!
MainWindow
::
instance
().
configFileName
().
isEmpty
()
&&
dir
.
exists
())
if
(
!
MainWindow
::
instance
().
configFileName
().
isEmpty
()
&&
dir
.
exists
())
{
{
dirName
=
dir
.
relativeFilePath
(
dirName
);
dirName
=
m_absPath
?
dirName
:
dir
.
relativeFilePath
(
dirName
);
}
}
setValue
(
dirName
);
setValue
(
dirName
);
}
}
}
}
}
}
...
...
addon/doxywizard/inputstring.h
View file @
0c751ba9
...
@@ -41,7 +41,8 @@ class InputString : public QObject, public Input
...
@@ -41,7 +41,8 @@ class InputString : public QObject, public Input
InputString
(
QGridLayout
*
layout
,
int
&
row
,
InputString
(
QGridLayout
*
layout
,
int
&
row
,
const
QString
&
id
,
const
QString
&
s
,
const
QString
&
id
,
const
QString
&
s
,
StringMode
m
,
StringMode
m
,
const
QString
&
docs
);
const
QString
&
docs
,
const
QString
&
absPath
=
QString
()
);
~
InputString
();
~
InputString
();
void
addValue
(
QString
s
);
void
addValue
(
QString
s
);
void
setDefault
();
void
setDefault
();
...
@@ -83,6 +84,7 @@ class InputString : public QObject, public Input
...
@@ -83,6 +84,7 @@ class InputString : public QObject, public Input
QVariant
m_value
;
QVariant
m_value
;
QString
m_docs
;
QString
m_docs
;
QString
m_id
;
QString
m_id
;
bool
m_absPath
;
};
};
#endif
#endif
addon/doxywizard/inputstrlist.h
View file @
0c751ba9
...
@@ -33,14 +33,14 @@ class InputStrList : public QObject, public Input
...
@@ -33,14 +33,14 @@ class InputStrList : public QObject, public Input
Q_OBJECT
Q_OBJECT
public
:
public
:
enum
ListMode
{
ListString
=
0
,
enum
ListMode
{
ListString
=
0
,
ListFile
=
1
,
ListFile
=
1
,
ListDir
=
2
,
ListDir
=
2
,
ListFileDir
=
ListFile
|
ListDir
ListFileDir
=
ListFile
|
ListDir
};
};
InputStrList
(
QGridLayout
*
layout
,
int
&
row
,
InputStrList
(
QGridLayout
*
layout
,
int
&
row
,
const
QString
&
id
,
const
QStringList
&
sl
,
const
QString
&
id
,
const
QStringList
&
sl
,
ListMode
v
,
const
QString
&
docs
);
ListMode
v
,
const
QString
&
docs
);
void
setValue
(
const
QStringList
&
sl
);
void
setValue
(
const
QStringList
&
sl
);
...
...
configure
View file @
0c751ba9
...
@@ -20,7 +20,7 @@ doxygen_version_minor=6
...
@@ -20,7 +20,7 @@ doxygen_version_minor=6
doxygen_version_revision
=
1
doxygen_version_revision
=
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
=
200910
04
doxygen_version_mmn
=
200910
27
bin_dirs
=
`
echo
$PATH
|
sed
-e
"s/:/ /g"
`
bin_dirs
=
`
echo
$PATH
|
sed
-e
"s/:/ /g"
`
...
...
doc/autolink.doc
View file @
0c751ba9
...
@@ -38,11 +38,12 @@
...
@@ -38,11 +38,12 @@
\section linkclass Links to classes.
\section linkclass Links to classes.
All words in the documentation that correspond to a documented class and
All words in the documentation that correspond to a documented class and
contain at least one
upper case character will automatically be replaced by
contain at least one
non-lower case character will automatically be
a link to the page containing the
replaced by
a link to the page containing the
documentation of the class. If you want to prevent that a word
documentation of the class. If you want to prevent that a word
that corresponds to a documented class is replaced by a link you
that corresponds to a documented class is replaced by a link you
should put a \% in front of the word.
should put a \% in front of the word.
To link to an all lower case symbol, use \ref cmdref "\\ref".
\section linkfile Links to files.
\section linkfile Links to files.
...
...
doc/commands.doc
View file @
0c751ba9
...
@@ -176,6 +176,7 @@ documentation:
...
@@ -176,6 +176,7 @@ documentation:
\refitem cmdgt \\\>
\refitem cmdgt \\\>
\refitem cmdhash \\\#
\refitem cmdhash \\\#
\refitem cmdperc \\\%
\refitem cmdperc \\\%
\refitem cmdquot \\\"
\endsecreflist
\endsecreflist
The following subsections provide a list of all commands that are recognized by
The following subsections provide a list of all commands that are recognized by
...
@@ -224,6 +225,7 @@ Structural indicators
...
@@ -224,6 +225,7 @@ Structural indicators
\sa page \ref grouping "Grouping", sections \ref cmddefgroup "\\defgroup", \ref cmdingroup "\\ingroup" and
\sa page \ref grouping "Grouping", sections \ref cmddefgroup "\\defgroup", \ref cmdingroup "\\ingroup" and
\ref cmdweakgroup "\\weakgroup".
\ref cmdweakgroup "\\weakgroup".
<hr>
\section cmdcallgraph \\callgraph
\section cmdcallgraph \\callgraph
\addindex \\callgraph
\addindex \\callgraph
...
@@ -324,7 +326,6 @@ Structural indicators
...
@@ -324,7 +326,6 @@ Structural indicators
stripped from the full path before it appears in the output.
stripped from the full path before it appears in the output.
<hr>
<hr>
\section cmdenum \\enum <name>
\section cmdenum \\enum <name>
\addindex \\enum
\addindex \\enum
...
@@ -884,6 +885,7 @@ Section indicators
...
@@ -884,6 +885,7 @@ Section indicators
The \\attention command ends when a blank line or some other
The \\attention command ends when a blank line or some other
sectioning command is encountered.
sectioning command is encountered.
<hr>
\section cmdauthor \\author { list of authors }
\section cmdauthor \\author { list of authors }
\addindex \\author
\addindex \\author
...
@@ -1423,6 +1425,7 @@ void memcpy(void *dest, const void *src, size_t n);
...
@@ -1423,6 +1425,7 @@ void memcpy(void *dest, const void *src, size_t n);
sectioning command is encountered. See section \ref cmdauthor "\\author"
sectioning command is encountered. See section \ref cmdauthor "\\author"
for an example.
for an example.
<hr>
\section cmdxrefitem \\xrefitem <key> "(heading)" "(list title)" {text}
\section cmdxrefitem \\xrefitem <key> "(heading)" "(list title)" {text}
\addindex \\xrefitem
\addindex \\xrefitem
...
@@ -1465,6 +1468,7 @@ Commands to create links
...
@@ -1465,6 +1468,7 @@ Commands to create links
</h2>
</h2>
\htmlonly </center>\endhtmlonly
\htmlonly </center>\endhtmlonly
<hr>
\section cmdaddindex \\addindex (text)
\section cmdaddindex \\addindex (text)
\addindex \\addindex
\addindex \\addindex
...
@@ -1644,6 +1648,7 @@ Commands for displaying examples
...
@@ -1644,6 +1648,7 @@ Commands for displaying examples
</h2>
</h2>
\htmlonly </center>\endhtmlonly
\htmlonly </center>\endhtmlonly
<hr>
\section cmddontinclude \\dontinclude <file-name>
\section cmddontinclude \\dontinclude <file-name>
\addindex \\dontinclude
\addindex \\dontinclude
...
@@ -2453,6 +2458,7 @@ class Receiver
...
@@ -2453,6 +2458,7 @@ class Receiver
This command writes the \> character to the output. This
This command writes the \> character to the output. This
character has to be escaped because it has a special meaning in HTML.
character has to be escaped because it has a special meaning in HTML.
<hr>
\section cmdperc \\\%
\section cmdperc \\\%
\addindex \\\%
\addindex \\\%
...
@@ -2461,7 +2467,14 @@ class Receiver
...
@@ -2461,7 +2467,14 @@ class Receiver
prevent auto-linking to word that is also a documented class or struct.
prevent auto-linking to word that is also a documented class or struct.
<hr>
<hr>
\section cmdquot \\\"
\addindex \\\"
This command writes the \" character to the output. This
character has to be escaped in some cases, because it is used to
prevent auto-linking to word that is also a documented class or struct.
<hr>
\htmlonly <center> \endhtmlonly
\htmlonly <center> \endhtmlonly
<h2>
<h2>
\htmlonly --- \endhtmlonly
\htmlonly --- \endhtmlonly
...
...
doc/customize.doc
View file @
0c751ba9
...
@@ -87,6 +87,12 @@ doxygen -l
...
@@ -87,6 +87,12 @@ doxygen -l
optionally the name of the layout file can be specified, if omitted
optionally the name of the layout file can be specified, if omitted
\c DoxygenLayout.xml will be used.
\c DoxygenLayout.xml will be used.
The next step is to mention the layout file in the config file
\verbatim
LAYOUT_FILE = DoxygenLayout.xml
\endverbatim
The change the layout all you need to do is edit the layout file.
The toplevel structure of the file looks as follows:
The toplevel structure of the file looks as follows:
\verbatim
\verbatim
<doxygenlayout version="1.0">
<doxygenlayout version="1.0">
...
...
doc/language.doc
View file @
0c751ba9
...
@@ -134,7 +134,7 @@ when the translator was updated.
...
@@ -134,7 +134,7 @@ when the translator was updated.
<td>French</td>
<td>French</td>
<td>Xavier Outhier</td>
<td>Xavier Outhier</td>
<td>xouthier at yahoo dot fr</td>
<td>xouthier at yahoo dot fr</td>
<td>
1.5.4
</td>
<td>
up-to-date
</td>
</tr>
</tr>
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
<td>German</td>
<td>German</td>
...
@@ -336,7 +336,7 @@ when the translator was updated.
...
@@ -336,7 +336,7 @@ when the translator was updated.
\hline
\hline
Finnish & Antti Laine & {\tt\tiny antti.a.laine@tut.fi} & 1.6.0 \\
Finnish & Antti Laine & {\tt\tiny antti.a.laine@tut.fi} & 1.6.0 \\
\hline
\hline
French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} &
1.5.4
\\
French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} &
up-to-date
\\
\hline
\hline
German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} & 1.6.0 \\
German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} & 1.6.0 \\
\hline
\hline
...
...
doc/translator_report.txt
View file @
0c751ba9
...
@@ -10,7 +10,7 @@ Persian, Polish, Portuguese, Romanian, Russian, Serbian,
...
@@ -10,7 +10,7 @@ Persian, Polish, Portuguese, Romanian, Russian, Serbian,
SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian,
SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian,
and Vietnamese.
and Vietnamese.
Of them,
5 translators are up-to-date, 33
translators are based on
Of them,
6 translators are up-to-date, 32
translators are based on
some adapter class, and 2 are English based.
some adapter class, and 2 are English based.
----------------------------------------------------------------------
----------------------------------------------------------------------
...
@@ -22,6 +22,7 @@ still may be some details listed even for them:
...
@@ -22,6 +22,7 @@ still may be some details listed even for them:
TranslatorCzech
TranslatorCzech
TranslatorDutch
TranslatorDutch
TranslatorEnglish
TranslatorEnglish
TranslatorFrench -- The MAX_DOT_GRAPH_HEIGHT found in trLegendDocs()
TranslatorKorean
TranslatorKorean
TranslatorPolish -- Remove the obsolete methods (never used).
TranslatorPolish -- Remove the obsolete methods (never used).
...
@@ -53,7 +54,6 @@ must be implemented to become up-to-date:
...
@@ -53,7 +54,6 @@ must be implemented to become up-to-date:
TranslatorBrazilian 1.6.0 5 methods to implement (2 %)
TranslatorBrazilian 1.6.0 5 methods to implement (2 %)
TranslatorAfrikaans 1.6.0 5 methods to implement (2 %)
TranslatorAfrikaans 1.6.0 5 methods to implement (2 %)
TranslatorGreek 1.5.4 27 methods to implement (12 %)
TranslatorGreek 1.5.4 27 methods to implement (12 %)
TranslatorFrench 1.5.4 22 methods to implement (9 %)
TranslatorDanish 1.5.4 27 methods to implement (12 %)
TranslatorDanish 1.5.4 27 methods to implement (12 %)
TranslatorSlovene 1.4.6 29 methods to implement (13 %)
TranslatorSlovene 1.4.6 29 methods to implement (13 %)
TranslatorNorwegian 1.4.6 28 methods to implement (12 %)
TranslatorNorwegian 1.4.6 28 methods to implement (12 %)
...
@@ -288,35 +288,10 @@ TranslatorFinnish (TranslatorAdapter_1_6_0) 5 methods to implement (2 %)
...
@@ -288,35 +288,10 @@ TranslatorFinnish (TranslatorAdapter_1_6_0) 5 methods to implement (2 %)
virtual QCString trDirRelation(const char * name)
virtual QCString trDirRelation(const char * name)
TranslatorFrench (Translator
Adapter_1_5_4) 22 methods to implement (9 %
)
TranslatorFrench (Translator)
----------------
----------------
Implements 199 of the required methods (90 %).
Implements 221 of the required methods (100 %).
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()
TranslatorGerman (TranslatorAdapter_1_6_0) 5 methods to implement (2 %)
TranslatorGerman (TranslatorAdapter_1_6_0) 5 methods to implement (2 %)
...
...
qtools/Doxyfile
View file @
0c751ba9
...
@@ -139,9 +139,9 @@ GENERATE_CHI = NO
...
@@ -139,9 +139,9 @@ GENERATE_CHI = NO
CHM_INDEX_ENCODING =
CHM_INDEX_ENCODING =
BINARY_TOC = NO
BINARY_TOC = NO
TOC_EXPAND = NO
TOC_EXPAND = NO
GENERATE_QHP =
NO
GENERATE_QHP =
YES
QCH_FILE =
QCH_FILE =
QHP_NAMESPACE =
QHP_NAMESPACE =
com.qtools
QHP_VIRTUAL_FOLDER = doc
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_ATTRS =
QHP_CUST_FILTER_ATTRS =
...
...
qtools/qglobal.h
View file @
0c751ba9
...
@@ -86,7 +86,10 @@
...
@@ -86,7 +86,10 @@
# if !defined(MAC_OS_X_VERSION_10_5)
# if !defined(MAC_OS_X_VERSION_10_5)
# define MAC_OS_X_VERSION_10_5 MAC_OS_X_VERSION_10_4 + 1
# define MAC_OS_X_VERSION_10_5 MAC_OS_X_VERSION_10_4 + 1
# endif
# endif
# if (MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_5)
# if !defined(MAC_OS_X_VERSION_10_6)
# define MAC_OS_X_VERSION_10_6 MAC_OS_X_VERSION_10_5 + 1
# endif
# if (MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_6)
# error "This version of Mac OS X is unsupported"
# error "This version of Mac OS X is unsupported"
# endif
# endif
#elif defined(MSDOS) || defined(_MSDOS) || defined(__MSDOS__)
#elif defined(MSDOS) || defined(_MSDOS) || defined(__MSDOS__)
...
...
src/classdef.cpp
View file @
0c751ba9
...
@@ -1423,6 +1423,8 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -1423,6 +1423,8 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol
.
popGeneratorState
();
ol
.
popGeneratorState
();
}
}
Doxygen
::
indexList
.
addIndexItem
(
this
,
0
);
if
(
!
Config_getString
(
"GENERATE_TAGFILE"
).
isEmpty
())
if
(
!
Config_getString
(
"GENERATE_TAGFILE"
).
isEmpty
())
{
{
Doxygen
::
tagFile
<<
" <compound kind=
\"
"
<<
compoundTypeString
();
Doxygen
::
tagFile
<<
" <compound kind=
\"
"
<<
compoundTypeString
();
...
...
src/cmdmapper.cpp
View file @
0c751ba9
...
@@ -102,6 +102,7 @@ CommandMap cmdMap[] =
...
@@ -102,6 +102,7 @@ CommandMap cmdMap[] =
{
"$"
,
CMD_DOLLAR
},
{
"$"
,
CMD_DOLLAR
},
{
"#"
,
CMD_HASH
},
{
"#"
,
CMD_HASH
},
{
"%"
,
CMD_PERCENT
},
{
"%"
,
CMD_PERCENT
},
{
"
\"
"
,
CMD_QUOTE
},
{
"_internalref"
,
CMD_INTERNALREF
},
{
"_internalref"
,
CMD_INTERNALREF
},
{
"dot"
,
CMD_DOT
},
{
"dot"
,
CMD_DOT
},
{
"msc"
,
CMD_MSC
},
{
"msc"
,
CMD_MSC
},
...
...
src/cmdmapper.h
View file @
0c751ba9
...
@@ -112,7 +112,8 @@ enum CommandType
...
@@ -112,7 +112,8 @@ enum CommandType
CMD_INHERITDOC
=
78
,
CMD_INHERITDOC
=
78
,
CMD_TPARAM
=
79
|
SIMPLESECT_BIT
,
CMD_TPARAM
=
79
|
SIMPLESECT_BIT
,
CMD_COPYBRIEF
=
80
,
CMD_COPYBRIEF
=
80
,
CMD_COPYDETAILS
=
81
CMD_COPYDETAILS
=
81
,
CMD_QUOTE
=
82
};
};
enum
HtmlTagType
enum
HtmlTagType
...
...
src/code.l
View file @
0c751ba9
...
@@ -525,9 +525,10 @@ static void startCodeLine()
...
@@ -525,9 +525,10 @@ static void startCodeLine()
static void endFontClass();
static void endFontClass();
static void endCodeLine()
static void endCodeLine()
{
{
if (g_currentFontClass) { g_code->endFontClass(); }
endFontClass();
g_code->endCodeLine();
g_code->endCodeLine();
}
}
...
...
src/commentscan.h
View file @
0c751ba9
...
@@ -37,7 +37,8 @@ class ParserInterface;
...
@@ -37,7 +37,8 @@ class ParserInterface;
* Note that leading *'s are already stripped from the comment block.
* Note that leading *'s are already stripped from the comment block.
* @param[in] fileName The name of the file in which the comment is found.
* @param[in] fileName The name of the file in which the comment is found.
* Mainly used for producing warnings.
* Mainly used for producing warnings.
* @param[in] lineNr The line number at which the comment block was found.
* @param[in,out] lineNr The line number at which the comment block was found.
* When the function returns it will be set to the last line parsed.
* @param[in] isBrief TRUE iff this comment block represents a brief description.
* @param[in] isBrief TRUE iff this comment block represents a brief description.
* @param[in] isJavaDocStyle TRUE iff this comment block is in "JavaDoc" style.
* @param[in] isJavaDocStyle TRUE iff this comment block is in "JavaDoc" style.
* This means that it starts as a brief description until the end of
* This means that it starts as a brief description until the end of
...
@@ -62,7 +63,7 @@ bool parseCommentBlock(ParserInterface *parser,
...
@@ -62,7 +63,7 @@ bool parseCommentBlock(ParserInterface *parser,
Entry
*
curEntry
,
Entry
*
curEntry
,
const
QCString
&
comment
,
const
QCString
&
comment
,
const
QCString
&
fileName
,
const
QCString
&
fileName
,
int
lineNr
,
int
&
lineNr
,
bool
isBrief
,
bool
isBrief
,
bool
isJavaDocStyle
,
bool
isJavaDocStyle
,
bool
isInbody
,
bool
isInbody
,
...
...
src/commentscan.l
View file @
0c751ba9
...
@@ -451,12 +451,6 @@ static bool makeStructuralIndicator(Entry::Sections s)
...
@@ -451,12 +451,6 @@ static bool makeStructuralIndicator(Entry::Sections s)
{
{
if (!getDocSectionName(current->section).isEmpty())
if (!getDocSectionName(current->section).isEmpty())
{
{
//warn(yyFileName,yyLineNr,
// "Warning: found a structural command %s for a section already "
// "marked with structural command %s. Ignoring the latter command.",
// getDocSectionName(s).data(),
// getDocSectionName(current->section).data()
// );
return TRUE;
return TRUE;
}
}
else
else
...
@@ -2005,7 +1999,10 @@ static bool handlePage(const QCString &)
...
@@ -2005,7 +1999,10 @@ static bool handlePage(const QCString &)
static bool handleMainpage(const QCString &)
static bool handleMainpage(const QCString &)
{
{
bool stop=makeStructuralIndicator(Entry::MAINPAGEDOC_SEC);
bool stop=makeStructuralIndicator(Entry::MAINPAGEDOC_SEC);
if (!stop) current->name = "mainpage";
if (!stop)
{
current->name = "mainpage";
}
BEGIN( PageDocArg2 );
BEGIN( PageDocArg2 );
return stop;
return stop;
}
}
...
@@ -2013,7 +2010,10 @@ static bool handleMainpage(const QCString &)
...
@@ -2013,7 +2010,10 @@ static bool handleMainpage(const QCString &)
static bool handleFile(const QCString &)
static bool handleFile(const QCString &)
{
{
bool stop=makeStructuralIndicator(Entry::FILEDOC_SEC);
bool stop=makeStructuralIndicator(Entry::FILEDOC_SEC);
if (!stop) current->name = yyFileName;
if (!stop)
{
current->name = yyFileName;
}
BEGIN( FileDocArg1 );
BEGIN( FileDocArg1 );
return stop;
return stop;
}
}
...
@@ -2372,7 +2372,7 @@ bool parseCommentBlock(/* in */ ParserInterface *parser,
...
@@ -2372,7 +2372,7 @@ bool parseCommentBlock(/* in */ ParserInterface *parser,
/* in */ Entry *curEntry,
/* in */ Entry *curEntry,
/* in */ const QCString &comment,
/* in */ const QCString &comment,
/* in */ const QCString &fileName,
/* in */ const QCString &fileName,
/* in
*/ int
lineNr,
/* in
,out */ int &
lineNr,
/* in */ bool isBrief,
/* in */ bool isBrief,
/* in */ bool isAutoBriefOn,
/* in */ bool isAutoBriefOn,
/* in */ bool isInbody,
/* in */ bool isInbody,
...
@@ -2456,8 +2456,16 @@ bool parseCommentBlock(/* in */ ParserInterface *parser,
...
@@ -2456,8 +2456,16 @@ bool parseCommentBlock(/* in */ ParserInterface *parser,
newEntryNeeded = needNewEntry;
newEntryNeeded = needNewEntry;
// if we did not proceed during this call, it does not make
// sence to continue, since we get stuck. See bug 567346 for situations
// were this happens
if (parseMore && position==inputPosition) parseMore=FALSE;
if (parseMore) position=inputPosition; else position=0;
if (parseMore) position=inputPosition; else position=0;
lineNr = yyLineNr;
//printf("position=%d parseMore=%d\n",position,parseMore);
return parseMore;
return parseMore;
}
}
...
...
src/config.l
View file @
0c751ba9
...
@@ -1383,18 +1383,6 @@ void Config::check()
...
@@ -1383,18 +1383,6 @@ void Config::check()
Config_getBool("GENERATE_QHP")=qhp;
Config_getBool("GENERATE_QHP")=qhp;
}
}
// check QCH creation requirements
if (!Config_getString("QHG_LOCATION").isEmpty() &&
!Config_getBool("GENERATE_QHP"))
{
config_err("Warning: Specifying QHG_LOCATION requires GENERATE_QHP=YES.\n");
}
if (!Config_getString("QCH_FILE").isEmpty() &&
Config_getString("QHG_LOCATION").isEmpty())
{
config_err("Warning: Specifying QCH_FILE requires QHG_LOCATION to be set.\n");
}
if (Config_getBool("OPTIMIZE_OUTPUT_JAVA") && Config_getBool("INLINE_INFO"))
if (Config_getBool("OPTIMIZE_OUTPUT_JAVA") && Config_getBool("INLINE_INFO"))
{
{
// don't show inline info for Java output, since Java has no inline
// don't show inline info for Java output, since Java has no inline
...
...
src/config.xml
View file @
0c751ba9
...
@@ -816,7 +816,7 @@ If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
...
@@ -816,7 +816,7 @@ If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
be used to specify the location (absolute path including file name) of
be used to specify the location (absolute path including file name) of
the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
the HTML help compiler on the generated index.hhp.
the HTML help compiler on the generated index.hhp.
'
defval=
''
depends=
'GENERATE_HTMLHELP'
/>
'
defval=
''
depends=
'GENERATE_HTMLHELP'
abspath=
'1'
/>
<option
type=
'bool'
id=
'GENERATE_CHI'
docs=
'
<option
type=
'bool'
id=
'GENERATE_CHI'
docs=
'
If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
controls if a separate .chi index file is generated (YES) or that
controls if a separate .chi index file is generated (YES) or that
...
...
src/dbusxmlscanner.cpp
View file @
0c751ba9
...
@@ -478,10 +478,12 @@ public:
...
@@ -478,10 +478,12 @@ public:
bool
needs_entry
(
false
);
bool
needs_entry
(
false
);
bool
brief
(
false
);
bool
brief
(
false
);
Protection
prot
(
Public
);
Protection
prot
(
Public
);
int
lineNr
=
lineNumber
();
while
(
parseCommentBlock
(
m_parser
,
while
(
parseCommentBlock
(
m_parser
,
m_currentEntry
,
m_currentEntry
,
text
,
m_fileName
.
utf8
().
data
(),
lineNumber
(),
text
,
m_fileName
.
utf8
().
data
(),
lineNr
,
brief
,
m_currentComment
->
isJavaStyle
,
brief
,
m_currentComment
->
isJavaStyle
,
false
,
false
,
prot
,
prot
,
...
...
src/definition.cpp
View file @
0c751ba9
...
@@ -198,7 +198,7 @@ static bool matchExcludedSymbols(const char *name)
...
@@ -198,7 +198,7 @@ static bool matchExcludedSymbols(const char *name)
void
Definition
::
addToMap
(
const
char
*
name
,
Definition
*
d
)
void
Definition
::
addToMap
(
const
char
*
name
,
Definition
*
d
)
{
{
static
bool
vhdlOpt
=
Config_getBool
(
"OPTIMIZE_OUTPUT_VHDL"
);
bool
vhdlOpt
=
Config_getBool
(
"OPTIMIZE_OUTPUT_VHDL"
);
QCString
symbolName
=
name
;
QCString
symbolName
=
name
;
int
index
=
computeQualifiedIndex
(
symbolName
);
int
index
=
computeQualifiedIndex
(
symbolName
);
if
(
!
vhdlOpt
&&
index
!=-
1
)
symbolName
=
symbolName
.
mid
(
index
+
2
);
if
(
!
vhdlOpt
&&
index
!=-
1
)
symbolName
=
symbolName
.
mid
(
index
+
2
);
...
@@ -383,8 +383,8 @@ bool Definition::_docsAlreadyAdded(const QCString &doc)
...
@@ -383,8 +383,8 @@ bool Definition::_docsAlreadyAdded(const QCString &doc)
}
}
void
Definition
::
_setDocumentation
(
const
char
*
d
,
const
char
*
docFile
,
int
docLine
,
void
Definition
::
_setDocumentation
(
const
char
*
d
,
const
char
*
docFile
,
int
docLine
,
bool
stripWhiteSpace
,
bool
atTop
)
bool
stripWhiteSpace
,
bool
atTop
)
{
{
if
(
d
==
0
)
return
;
if
(
d
==
0
)
return
;
//printf("Definition::setDocumentation(%s,%s,%d,%d)\n",d,docFile,docLine,stripWhiteSpace);
//printf("Definition::setDocumentation(%s,%s,%d,%d)\n",d,docFile,docLine,stripWhiteSpace);
QCString
doc
=
d
;
QCString
doc
=
d
;
...
@@ -405,21 +405,26 @@ void Definition::_setDocumentation(const char *d,const char *docFile,int docLine
...
@@ -405,21 +405,26 @@ void Definition::_setDocumentation(const char *d,const char *docFile,int docLine
}
}
if
(
m_impl
->
details
->
doc
.
isEmpty
())
// fresh detailed description
if
(
m_impl
->
details
->
doc
.
isEmpty
())
// fresh detailed description
{
{
m_impl
->
details
->
doc
=
doc
;
m_impl
->
details
->
doc
=
doc
;
}
}
else
if
(
atTop
)
// another detailed description, append it to the start
else
if
(
atTop
)
// another detailed description, append it to the start
{
{
m_impl
->
details
->
doc
=
doc
+
"
\n\n
"
+
m_impl
->
details
->
doc
;
m_impl
->
details
->
doc
=
doc
+
"
\n\n
"
+
m_impl
->
details
->
doc
;
}
}
else
// another detailed description, append it to the end
else
// another detailed description, append it to the end
{
{
m_impl
->
details
->
doc
+=
"
\n\n
"
+
doc
;
m_impl
->
details
->
doc
+=
"
\n\n
"
+
doc
;
}
}
if
(
docLine
!=-
1
)
// store location if valid
if
(
docLine
!=-
1
)
// store location if valid
{
{
m_impl
->
details
->
file
=
docFile
;
m_impl
->
details
->
file
=
docFile
;
m_impl
->
details
->
line
=
docLine
;
m_impl
->
details
->
line
=
docLine
;
}
}
else
{
m_impl
->
details
->
file
=
docFile
;
m_impl
->
details
->
line
=
1
;
}
}
}
}
}
...
...
src/docparser.cpp
View file @
0c751ba9
This diff is collapsed.
Click to expand it.
src/docparser.h
View file @
0c751ba9
...
@@ -324,10 +324,10 @@ class DocStyleChange : public DocNode
...
@@ -324,10 +324,10 @@ class DocStyleChange : public DocNode
class
DocSymbol
:
public
DocNode
class
DocSymbol
:
public
DocNode
{
{
public
:
public
:
enum
SymType
{
Unknown
=
0
,
BSlash
,
At
,
Less
,
Greater
,
Amp
,
Dollar
,
Hash
,
Percent
,
enum
SymType
{
Unknown
=
0
,
BSlash
,
At
,
Less
,
Greater
,
Amp
,
Dollar
,
Hash
,
Copy
,
Tm
,
Reg
,
Apos
,
Quot
,
Uml
,
Acute
,
Grave
,
Circ
,
Tild
e
,
Percent
,
Copy
,
Tm
,
Reg
,
Apos
,
Quot
,
Uml
,
Acut
e
,
Szlig
,
Cedil
,
Ring
,
Nbsp
,
Slash
,
Lsquo
,
Rsquo
,
Ldquo
,
Rdquo
,
Grave
,
Circ
,
Tilde
,
Szlig
,
Cedil
,
Ring
,
Nbsp
,
Slash
,
Ndash
,
Mdash
,
Aelig
,
AElig
Lsquo
,
Rsquo
,
Ldquo
,
Rdquo
,
Ndash
,
Mdash
,
Aelig
,
AElig
};
};
DocSymbol
(
DocNode
*
parent
,
SymType
s
,
char
letter
=
'\0'
)
:
DocSymbol
(
DocNode
*
parent
,
SymType
s
,
char
letter
=
'\0'
)
:
m_parent
(
parent
),
m_symbol
(
s
),
m_letter
(
letter
)
{}
m_parent
(
parent
),
m_symbol
(
s
),
m_letter
(
letter
)
{}
...
@@ -488,16 +488,21 @@ class DocFormula : public DocNode
...
@@ -488,16 +488,21 @@ class DocFormula : public DocNode
class
DocIndexEntry
:
public
DocNode
class
DocIndexEntry
:
public
DocNode
{
{
public
:
public
:
DocIndexEntry
(
DocNode
*
parent
)
:
m_parent
(
parent
)
{
}
DocIndexEntry
(
DocNode
*
parent
,
Definition
*
scope
,
MemberDef
*
md
)
:
m_parent
(
parent
),
m_scope
(
scope
),
m_member
(
md
)
{
}
Kind
kind
()
const
{
return
Kind_IndexEntry
;
}
Kind
kind
()
const
{
return
Kind_IndexEntry
;
}
int
parse
();
int
parse
();
DocNode
*
parent
()
const
{
return
m_parent
;
}
DocNode
*
parent
()
const
{
return
m_parent
;
}
void
accept
(
DocVisitor
*
v
)
{
v
->
visit
(
this
);
}
Definition
*
scope
()
const
{
return
m_scope
;
}
QString
entry
()
{
return
m_entry
;
}
MemberDef
*
member
()
const
{
return
m_member
;
}
QString
entry
()
const
{
return
m_entry
;
}
void
accept
(
DocVisitor
*
v
)
{
v
->
visit
(
this
);
}
private
:
private
:
DocNode
*
m_parent
;
DocNode
*
m_parent
;
QString
m_entry
;
QString
m_entry
;
Definition
*
m_scope
;
MemberDef
*
m_member
;
};
};
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
...
...
src/docsets.cpp
View file @
0c751ba9
...
@@ -61,7 +61,7 @@ void DocSets::initialize()
...
@@ -61,7 +61,7 @@ void DocSets::initialize()
"DOCSET_CONTENTS=$(DOCSET_NAME)/Contents
\n
"
"DOCSET_CONTENTS=$(DOCSET_NAME)/Contents
\n
"
"DOCSET_RESOURCES=$(DOCSET_CONTENTS)/Resources
\n
"
"DOCSET_RESOURCES=$(DOCSET_CONTENTS)/Resources
\n
"
"DOCSET_DOCUMENTS=$(DOCSET_RESOURCES)/Documents
\n
"
"DOCSET_DOCUMENTS=$(DOCSET_RESOURCES)/Documents
\n
"
"D
OCSET_INSTALL
=~/Library/Developer/Shared/Documentation/DocSets
\n
"
"D
ESTDIR
=~/Library/Developer/Shared/Documentation/DocSets
\n
"
"XCODE_INSTALL=$(shell xcode-select -print-path)
\n
"
"XCODE_INSTALL=$(shell xcode-select -print-path)
\n
"
"
\n
"
"
\n
"
"all: docset
\n
"
"all: docset
\n
"
...
@@ -85,11 +85,11 @@ void DocSets::initialize()
...
@@ -85,11 +85,11 @@ void DocSets::initialize()
"
\t
rm -f $(DOCSET_RESOURCES)/Tokens.xml
\n
"
"
\t
rm -f $(DOCSET_RESOURCES)/Tokens.xml
\n
"
"
\n
"
"
\n
"
"install: docset
\n
"
"install: docset
\n
"
"
\t
mkdir -p $(D
OCSET_INSTALL
)
\n
"
"
\t
mkdir -p $(D
ESTDIR
)
\n
"
"
\t
cp -R $(DOCSET_NAME) $(D
OCSET_INSTALL
)
\n
"
"
\t
cp -R $(DOCSET_NAME) $(D
ESTDIR
)
\n
"
"
\n
"
"
\n
"
"uninstall:
\n
"
"uninstall:
\n
"
"
\t
rm -rf $(D
OCSET_INSTALL
)
\n
"
"
\t
rm -rf $(D
ESTDIR)/$(DOCSET_NAME
)
\n
"
"
\n
"
"
\n
"
"always:
\n
"
;
"always:
\n
"
;
}
}
...
@@ -227,15 +227,28 @@ void DocSets::addContentsItem(bool isDir,
...
@@ -227,15 +227,28 @@ void DocSets::addContentsItem(bool isDir,
}
}
}
}
void
DocSets
::
addIndexItem
(
const
char
*
,
const
char
*
,
void
DocSets
::
addIndexItem
(
Definition
*
context
,
MemberDef
*
md
,
const
char
*
,
const
char
*
,
const
char
*
anchor
,
const
char
*
word
)
const
char
*
,
const
MemberDef
*
md
)
{
{
if
(
!
md
->
isLinkable
())
return
;
// internal symbol
(
void
)
anchor
;
(
void
)
word
;
if
(
md
==
0
||
context
==
0
)
return
;
// TODO: also index non members...
ClassDef
*
cd
=
md
->
getClassDef
();
FileDef
*
fd
=
0
;
NamespaceDef
*
nd
=
md
->
getNamespaceDef
();
ClassDef
*
cd
=
0
;
FileDef
*
fd
=
md
->
getFileDef
();
NamespaceDef
*
nd
=
0
;
if
(
md
)
{
fd
=
md
->
getFileDef
();
cd
=
md
->
getClassDef
();
nd
=
md
->
getNamespaceDef
();
if
(
!
md
->
isLinkable
())
return
;
// internal symbol
}
QCString
scope
;
QCString
type
;
QCString
decl
;
// determine language
// determine language
QCString
lang
;
QCString
lang
;
...
@@ -246,13 +259,13 @@ void DocSets::addIndexItem(const char *, const char *,
...
@@ -246,13 +259,13 @@ void DocSets::addIndexItem(const char *, const char *,
case
SrcLangExt_Cpp
:
case
SrcLangExt_Cpp
:
case
SrcLangExt_ObjC
:
case
SrcLangExt_ObjC
:
{
{
if
(
md
->
isObjCMethod
()
||
md
->
isObjCProperty
(
))
if
(
md
&&
(
md
->
isObjCMethod
()
||
md
->
isObjCProperty
()
))
lang
=
"occ"
;
// Objective C/C++
lang
=
"occ"
;
// Objective C/C++
else
if
(
fd
&&
fd
->
name
().
right
(
2
).
lower
()
==
".c"
)
else
if
(
fd
&&
fd
->
name
().
right
(
2
).
lower
()
==
".c"
)
lang
=
"c"
;
// Plain C
lang
=
"c"
;
// Plain C
else
if
(
cd
==
0
&&
nd
==
0
)
else
if
(
cd
==
0
&&
nd
==
0
)
lang
=
"c"
;
// Plain C symbol outside any class or namespace
lang
=
"c"
;
// Plain C symbol outside any class or namespace
else
else
lang
=
"cpp"
;
// C++
lang
=
"cpp"
;
// C++
}
}
break
;
break
;
...
@@ -268,107 +281,133 @@ void DocSets::addIndexItem(const char *, const char *,
...
@@ -268,107 +281,133 @@ void DocSets::addIndexItem(const char *, const char *,
case
SrcLangExt_XML
:
lang
=
"xml"
;
break
;
// DBUS XML
case
SrcLangExt_XML
:
lang
=
"xml"
;
break
;
// DBUS XML
}
}
// determine scope
if
(
md
)
QCString
scope
;
QCString
type
;
QCString
decl
;
Definition
*
d
=
0
;
if
(
fd
&&
fd
->
isLinkable
()
&&
m_scopes
.
find
(
fd
->
getOutputFileBase
())
==
0
)
{
{
writeToken
(
m_tts
,
fd
,
"file"
,
lang
,
0
,
0
,
0
);
if
(
!
md
->
isLinkable
())
return
;
// internal symbol
m_scopes
.
append
(
fd
->
getOutputFileBase
(),(
void
*
)
0x8
);
if
(
context
==
0
)
{
if
(
md
->
getGroupDef
())
context
=
md
->
getGroupDef
();
else
if
(
md
->
getFileDef
())
context
=
md
->
getFileDef
();
if
(
context
==
0
)
return
;
// should not happen
switch
(
md
->
memberType
())
{
case
MemberDef
:
:
Define
:
type
=
"macro"
;
break
;
case
MemberDef
:
:
Function
:
if
(
cd
&&
(
cd
->
compoundType
()
==
ClassDef
::
Interface
||
cd
->
compoundType
()
==
ClassDef
::
Class
))
{
if
(
md
->
isStatic
())
type
=
"clm"
;
// class member
else
type
=
"instm"
;
// instance member
}
else
if
(
cd
&&
cd
->
compoundType
()
==
ClassDef
::
Protocol
)
{
if
(
md
->
isStatic
())
type
=
"intfcm"
;
// interface class member
else
type
=
"intfm"
;
// interface member
}
else
type
=
"func"
;
break
;
case
MemberDef
:
:
Variable
:
type
=
"data"
;
break
;
case
MemberDef
:
:
Typedef
:
type
=
"tdef"
;
break
;
case
MemberDef
:
:
Enumeration
:
type
=
"enum"
;
break
;
case
MemberDef
:
:
EnumValue
:
type
=
"econst"
;
break
;
//case MemberDef::Prototype:
// type="prototype"; break;
case
MemberDef
:
:
Signal
:
type
=
"signal"
;
break
;
case
MemberDef
:
:
Slot
:
type
=
"slot"
;
break
;
case
MemberDef
:
:
Friend
:
type
=
"ffunc"
;
break
;
case
MemberDef
:
:
DCOP
:
type
=
"dcop"
;
break
;
case
MemberDef
:
:
Property
:
if
(
cd
&&
cd
->
compoundType
()
==
ClassDef
::
Protocol
)
type
=
"intfp"
;
// interface property
else
type
=
"instp"
;
// instance property
break
;
case
MemberDef
:
:
Event
:
type
=
"event"
;
break
;
}
writeToken
(
m_tts
,
md
,
type
,
lang
,
scope
,
md
->
anchor
());
}
}
}
if
(
cd
)
else
if
(
context
&&
context
->
isLinkable
())
{
{
scope
=
cd
->
qualifiedName
();
if
(
fd
==
0
&&
context
->
definitionType
()
==
Definition
::
TypeFile
)
if
(
cd
->
isTemplate
())
{
type
=
"tmplt"
;
fd
=
(
FileDef
*
)
context
;
else
if
(
cd
->
compoundType
()
==
ClassDef
::
Protocol
)
}
if
(
cd
==
0
&&
context
->
definitionType
()
==
Definition
::
TypeClass
)
{
cd
=
(
ClassDef
*
)
context
;
}
if
(
nd
==
0
&&
context
->
definitionType
()
==
Definition
::
TypeNamespace
)
{
{
type
=
"intf"
;
nd
=
(
NamespaceDef
*
)
context
;
if
(
scope
.
right
(
2
)
==
"-p"
)
scope
=
scope
.
left
(
scope
.
length
()
-
2
);
}
}
else
if
(
cd
->
compoundType
()
==
ClassDef
::
Interface
)
if
(
fd
)
type
=
"cl"
;
else
if
(
cd
->
compoundType
()
==
ClassDef
::
Category
)
type
=
"cat"
;
else
type
=
"cl"
;
d
=
cd
;
IncludeInfo
*
ii
=
cd
->
includeInfo
();
if
(
ii
)
{
{
decl
=
ii
->
includeName
;
type
=
"file"
;
if
(
decl
.
isEmpty
())
}
else
if
(
cd
)
{
scope
=
cd
->
qualifiedName
();
if
(
cd
->
isTemplate
())
{
{
decl
=
ii
->
local
;
type
=
"tmplt"
;
}
}
}
else
if
(
cd
->
compoundType
()
==
ClassDef
::
Protocol
)
}
else
if
(
nd
)
{
scope
=
nd
->
name
();
type
=
"ns"
;
d
=
cd
;
}
if
(
d
&&
d
->
isLinkable
()
&&
m_scopes
.
find
(
d
->
getOutputFileBase
())
==
0
)
{
writeToken
(
m_tts
,
d
,
type
,
lang
,
0
,
0
,
decl
);
m_scopes
.
append
(
d
->
getOutputFileBase
(),(
void
*
)
0x8
);
}
switch
(
md
->
memberType
())
{
case
MemberDef
:
:
Define
:
type
=
"macro"
;
break
;
case
MemberDef
:
:
Function
:
if
(
cd
&&
(
cd
->
compoundType
()
==
ClassDef
::
Interface
||
cd
->
compoundType
()
==
ClassDef
::
Class
)
)
{
{
if
(
md
->
isStatic
())
type
=
"intf"
;
type
=
"clm"
;
if
(
scope
.
right
(
2
)
==
"-p"
)
scope
=
scope
.
left
(
scope
.
length
()
-
2
);
else
type
=
"instm"
;
}
}
else
if
(
cd
&&
cd
->
compoundType
()
==
ClassDef
::
Protocol
)
else
if
(
cd
->
compoundType
()
==
ClassDef
::
Interface
)
{
{
if
(
md
->
isStatic
())
type
=
"cl"
;
type
=
"intfcm"
;
}
else
else
if
(
cd
->
compoundType
()
==
ClassDef
::
Category
)
type
=
"intfm"
;
{
type
=
"cat"
;
}
}
else
else
type
=
"func"
;
{
break
;
type
=
"cl"
;
case
MemberDef
:
:
Variable
:
}
type
=
"data"
;
break
;
IncludeInfo
*
ii
=
cd
->
includeInfo
();
case
MemberDef
:
:
Typedef
:
if
(
ii
)
type
=
"tdef"
;
break
;
{
case
MemberDef
:
:
Enumeration
:
decl
=
ii
->
includeName
;
type
=
"enum"
;
break
;
if
(
decl
.
isEmpty
())
case
MemberDef
:
:
EnumValue
:
{
type
=
"econst"
;
break
;
decl
=
ii
->
local
;
//case MemberDef::Prototype:
}
// type="prototype"; break;
}
case
MemberDef
:
:
Signal
:
}
type
=
"signal"
;
break
;
else
if
(
nd
)
case
MemberDef
:
:
Slot
:
{
type
=
"slot"
;
break
;
scope
=
nd
->
name
();
case
MemberDef
:
:
Friend
:
type
=
"ns"
;
type
=
"ffunc"
;
break
;
}
case
MemberDef
:
:
DCOP
:
if
(
m_scopes
.
find
(
context
->
getOutputFileBase
())
==
0
)
type
=
"dcop"
;
break
;
{
case
MemberDef
:
:
Property
:
writeToken
(
m_tts
,
context
,
type
,
lang
,
0
,
0
,
decl
);
if
(
cd
&&
cd
->
compoundType
()
==
ClassDef
::
Protocol
)
m_scopes
.
append
(
context
->
getOutputFileBase
(),(
void
*
)
0x8
);
type
=
"intfp"
;
}
else
type
=
"instp"
;
break
;
case
MemberDef
:
:
Event
:
type
=
"event"
;
break
;
}
}
writeToken
(
m_tts
,
md
,
type
,
lang
,
scope
,
md
->
anchor
());
}
}
void
DocSets
::
writeToken
(
QTextStream
&
t
,
void
DocSets
::
writeToken
(
QTextStream
&
t
,
...
@@ -384,9 +423,18 @@ void DocSets::writeToken(QTextStream &t,
...
@@ -384,9 +423,18 @@ void DocSets::writeToken(QTextStream &t,
QString
name
=
d
->
name
();
QString
name
=
d
->
name
();
if
(
name
.
right
(
2
)
==
"-p"
)
name
=
name
.
left
(
name
.
length
()
-
2
);
if
(
name
.
right
(
2
)
==
"-p"
)
name
=
name
.
left
(
name
.
length
()
-
2
);
t
<<
" <Name>"
<<
convertToXML
(
name
)
<<
"</Name>"
<<
endl
;
t
<<
" <Name>"
<<
convertToXML
(
name
)
<<
"</Name>"
<<
endl
;
t
<<
" <APILanguage>"
<<
lang
<<
"</APILanguage>"
<<
endl
;
if
(
!
lang
.
isEmpty
())
t
<<
" <Type>"
<<
type
<<
"</Type>"
<<
endl
;
{
t
<<
" <Scope>"
<<
convertToXML
(
scope
)
<<
"</Scope>"
<<
endl
;
t
<<
" <APILanguage>"
<<
lang
<<
"</APILanguage>"
<<
endl
;
}
if
(
!
type
.
isEmpty
())
{
t
<<
" <Type>"
<<
type
<<
"</Type>"
<<
endl
;
}
if
(
scope
)
{
t
<<
" <Scope>"
<<
convertToXML
(
scope
)
<<
"</Scope>"
<<
endl
;
}
t
<<
" </TokenIdentifier>"
<<
endl
;
t
<<
" </TokenIdentifier>"
<<
endl
;
t
<<
" <Path>"
<<
d
->
getOutputFileBase
()
t
<<
" <Path>"
<<
d
->
getOutputFileBase
()
<<
Doxygen
::
htmlFileExtension
<<
"</Path>"
<<
endl
;
<<
Doxygen
::
htmlFileExtension
<<
"</Path>"
<<
endl
;
...
@@ -397,7 +445,7 @@ void DocSets::writeToken(QTextStream &t,
...
@@ -397,7 +445,7 @@ void DocSets::writeToken(QTextStream &t,
QCString
tooltip
=
d
->
briefDescriptionAsTooltip
();
QCString
tooltip
=
d
->
briefDescriptionAsTooltip
();
if
(
!
tooltip
.
isEmpty
())
if
(
!
tooltip
.
isEmpty
())
{
{
t
<<
" <Abstract>"
<<
tooltip
<<
"</Abstract>"
<<
endl
;
t
<<
" <Abstract>"
<<
convertToXML
(
tooltip
)
<<
"</Abstract>"
<<
endl
;
}
}
if
(
decl
)
if
(
decl
)
{
{
...
...
src/docsets.h
View file @
0c751ba9
...
@@ -46,9 +46,11 @@ class DocSets : public IndexIntf
...
@@ -46,9 +46,11 @@ class DocSets : public IndexIntf
const
char
*
file
=
0
,
const
char
*
file
=
0
,
const
char
*
anchor
=
0
const
char
*
anchor
=
0
);
);
void
addIndexItem
(
const
char
*
level1
,
const
char
*
level2
,
//void addIndexItem(const char *level1, const char *level2,
const
char
*
contRef
,
const
char
*
memRef
,
// const char *contRef, const char *memRef,
const
char
*
anchor
,
const
MemberDef
*
md
);
// const char *anchor,const MemberDef *md);
void
addIndexItem
(
Definition
*
context
,
MemberDef
*
md
,
const
char
*
anchor
,
const
char
*
word
);
void
addIndexFile
(
const
char
*
name
);
void
addIndexFile
(
const
char
*
name
);
void
addImageFile
(
const
char
*
)
{}
void
addImageFile
(
const
char
*
)
{}
void
addStyleSheetFile
(
const
char
*
)
{}
void
addStyleSheetFile
(
const
char
*
)
{}
...
...
src/doctokenizer.l
View file @
0c751ba9
...
@@ -305,7 +305,7 @@ FILEMASK ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|{HFILEMASK}
...
@@ -305,7 +305,7 @@ FILEMASK ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|{HFILEMASK}
LINKMASK [^ \t\n\r\\@<&${}]+("("[^\n)]*")")?({BLANK}*("const"|"volatile"){BLANK}+)?
LINKMASK [^ \t\n\r\\@<&${}]+("("[^\n)]*")")?({BLANK}*("const"|"volatile"){BLANK}+)?
VERBATIM "verbatim"{BLANK}*
VERBATIM "verbatim"{BLANK}*
SPCMD1 {CMD}([a-z_A-Z0-9]+|{VERBATIM})
SPCMD1 {CMD}([a-z_A-Z0-9]+|{VERBATIM})
SPCMD2 {CMD}[\\@<>&$#%~]
SPCMD2 {CMD}[\\@<>&$#%~
"
]
SPCMD3 {CMD}form#[0-9]+
SPCMD3 {CMD}form#[0-9]+
INOUT "in"|"out"|("in"{BLANK}*","{BLANK}*"out")|("out"{BLANK}*","{BLANK}*"in")
INOUT "in"|"out"|("in"{BLANK}*","{BLANK}*"out")|("out"{BLANK}*","{BLANK}*"in")
PARAMIO {CMD}param{BLANK}*"["{BLANK}*{INOUT}{BLANK}*"]"
PARAMIO {CMD}param{BLANK}*"["{BLANK}*{INOUT}{BLANK}*"]"
...
@@ -924,7 +924,7 @@ REFWORD ("#"|"::")?({ID}{TEMPLPART}?("."|"#"|"::"|"-"|"/"))*({ID}(":")?){FUNCA
...
@@ -924,7 +924,7 @@ REFWORD ("#"|"::")?({ID}{TEMPLPART}?("."|"#"|"::"|"-"|"/"))*({ID}(":")?){FUNCA
<*>\n {
<*>\n {
warn(g_fileName,yylineno,"Error: Unexpected new line character");
warn(g_fileName,yylineno,"Error: Unexpected new line character");
}
}
<*>[\\@<>&$#%~
]
{ /* unescaped special character */
<*>[\\@<>&$#%~
"]
{ /* unescaped special character */
//warn(g_fileName,yylineno,"Warning: Unexpected character `%s', assuming command \\%s was meant.",yytext,yytext);
//warn(g_fileName,yylineno,"Warning: Unexpected character `%s', assuming command \\%s was meant.",yytext,yytext);
g_token->name = yytext;
g_token->name = yytext;
return TK_COMMAND;
return TK_COMMAND;
...
...
src/dot.cpp
View file @
0c751ba9
...
@@ -1173,7 +1173,7 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) const
...
@@ -1173,7 +1173,7 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) const
checkDotResult
(
absImgName
);
checkDotResult
(
absImgName
);
if
(
Config_getBool
(
"DOT_CLEANUP"
))
d
.
remove
(
dotName
);
if
(
Config_getBool
(
"DOT_CLEANUP"
))
d
.
remove
(
dotName
);
}
}
Doxygen
::
indexList
.
addImageFile
(
absI
mgName
);
Doxygen
::
indexList
.
addImageFile
(
i
mgName
);
// write image and map in a table row
// write image and map in a table row
QCString
mapLabel
=
escapeCharsInString
(
n
->
m_label
,
FALSE
);
QCString
mapLabel
=
escapeCharsInString
(
n
->
m_label
,
FALSE
);
out
<<
"<tr><td><img src=
\"
"
<<
imgName
<<
"
\"
border=
\"
0
\"
alt=
\"\"
usemap=
\"
#"
out
<<
"<tr><td><img src=
\"
"
<<
imgName
<<
"
\"
border=
\"
0
\"
alt=
\"\"
usemap=
\"
#"
...
...
src/doxygen.cpp
View file @
0c751ba9
...
@@ -6926,17 +6926,17 @@ static void computeMemberRelations()
...
@@ -6926,17 +6926,17 @@ static void computeMemberRelations()
{
{
ClassDef
*
bmcd
=
bmd
->
getClassDef
();
ClassDef
*
bmcd
=
bmd
->
getClassDef
();
//printf("Check relation between `%s'::`%s' (%p) and `%s'::`%s' (%p)\n",
//printf("Check relation between `%s'::`%s' (%p) and `%s'::`%s' (%p)\n",
//
mcd->name().data(),md->name().data(),md,
// mcd->name().data(),md->name().data(),md,
// bmcd->name().data(),bmd->name().data(),bmd
// bmcd->name().data(),bmd->name().data(),bmd
// );
// );
if
(
md
!=
bmd
&&
bmcd
&&
mcd
&&
bmcd
!=
mcd
&&
mcd
->
isBaseClass
(
bmcd
,
TRUE
))
if
(
md
!=
bmd
&&
bmcd
&&
mcd
&&
bmcd
!=
mcd
&&
mcd
->
isBaseClass
(
bmcd
,
TRUE
))
{
{
//printf(" Base argList=`%s'\n Super argList=`%s'\n",
// argListToString(bmd->argumentList()).data(),
// argListToString(md->argumentList()).data()
// );
LockingPtr
<
ArgumentList
>
bmdAl
=
bmd
->
argumentList
();
LockingPtr
<
ArgumentList
>
bmdAl
=
bmd
->
argumentList
();
LockingPtr
<
ArgumentList
>
mdAl
=
md
->
argumentList
();
LockingPtr
<
ArgumentList
>
mdAl
=
md
->
argumentList
();
//printf(" Base argList=`%s'\n Super argList=`%s'\n",
// argListToString(bmdAl.pointer()).data(),
// argListToString(mdAl.pointer()).data()
// );
if
(
if
(
matchArguments2
(
bmd
->
getOuterScope
(),
bmd
->
getFileDef
(),
bmdAl
.
pointer
(),
matchArguments2
(
bmd
->
getOuterScope
(),
bmd
->
getFileDef
(),
bmdAl
.
pointer
(),
md
->
getOuterScope
(),
md
->
getFileDef
(),
mdAl
.
pointer
(),
md
->
getOuterScope
(),
md
->
getFileDef
(),
mdAl
.
pointer
(),
...
@@ -10167,13 +10167,17 @@ void generateOutput()
...
@@ -10167,13 +10167,17 @@ void generateOutput()
{
{
g_outputList
->
add
(
new
HtmlGenerator
);
g_outputList
->
add
(
new
HtmlGenerator
);
HtmlGenerator
::
init
();
HtmlGenerator
::
init
();
if
(
Config_getBool
(
"GENERATE_HTMLHELP"
))
Doxygen
::
indexList
.
addIndex
(
new
HtmlHelp
);
if
(
Config_getBool
(
"GENERATE_QHP"
))
Doxygen
::
indexList
.
addIndex
(
new
Qhp
);
#if 0
#if 0
if (Config_getBool("GENERATE_INDEXLOG")) Doxygen::indexList.addIndex(new IndexLog);
if (Config_getBool("GENERATE_INDEXLOG")) Doxygen::indexList.addIndex(new IndexLog);
#endif
#endif
if
(
Config_getBool
(
"GENERATE_TREEVIEW"
))
Doxygen
::
indexList
.
addIndex
(
new
FTVHelp
);
bool
generateHtmlHelp
=
Config_getBool
(
"GENERATE_HTMLHELP"
);
if
(
Config_getBool
(
"GENERATE_DOCSET"
))
Doxygen
::
indexList
.
addIndex
(
new
DocSets
);
bool
generateQhp
=
Config_getBool
(
"GENERATE_QHP"
);
bool
generateTreeView
=
Config_getBool
(
"GENERATE_TREEVIEW"
);
bool
generateDocSet
=
Config_getBool
(
"GENERATE_DOCSET"
);
if
(
generateHtmlHelp
)
Doxygen
::
indexList
.
addIndex
(
new
HtmlHelp
);
if
(
generateQhp
)
Doxygen
::
indexList
.
addIndex
(
new
Qhp
);
if
(
generateTreeView
)
Doxygen
::
indexList
.
addIndex
(
new
FTVHelp
);
if
(
generateDocSet
)
Doxygen
::
indexList
.
addIndex
(
new
DocSets
);
Doxygen
::
indexList
.
initialize
();
Doxygen
::
indexList
.
initialize
();
Doxygen
::
indexList
.
addImageFile
(
"tab_r.gif"
);
Doxygen
::
indexList
.
addImageFile
(
"tab_r.gif"
);
Doxygen
::
indexList
.
addImageFile
(
"tab_l.gif"
);
Doxygen
::
indexList
.
addImageFile
(
"tab_l.gif"
);
...
@@ -10258,6 +10262,10 @@ void generateOutput()
...
@@ -10258,6 +10262,10 @@ void generateOutput()
if
(
Config_getBool
(
"SEARCHENGINE"
))
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
{
writeSearchIndex
();
writeSearchIndex
();
Doxygen
::
indexList
.
addImageFile
(
"search/close.png"
);
Doxygen
::
indexList
.
addImageFile
(
"search/search.png"
);
Doxygen
::
indexList
.
addStyleSheetFile
(
"search/search.css"
);
Doxygen
::
indexList
.
addStyleSheetFile
(
"search/search.js"
);
}
}
//statistics();
//statistics();
...
@@ -10407,26 +10415,6 @@ void generateOutput()
...
@@ -10407,26 +10415,6 @@ void generateOutput()
}
}
QDir
::
setCurrent
(
oldDir
);
QDir
::
setCurrent
(
oldDir
);
}
}
#if 0
if ( Config_getBool("GENERATE_HTMLHELP") &&
!Config_getString("DOXYGEN2QTHELP_LOC").isEmpty() &&
!Config_getString("QTHELP_CONFIG").isEmpty())
{
msg("Running doxygen2qthelp...\n");
const QCString qtHelpFile = Config_getString("QTHELP_FILE");
const QCString args = QCString().sprintf("--config=%s index.hhp%s%s",
Config_getString("QTHELP_CONFIG").data(),
(qtHelpFile.isEmpty() ? "" : " "), (qtHelpFile.isEmpty() ? "" : qtHelpFile.data()));
const QString oldDir = QDir::currentDirPath();
QDir::setCurrent(Config_getString("HTML_OUTPUT"));
if (portable_system(Config_getString("DOXYGEN2QTHELP_LOC"), args.data(), FALSE))
{
err("Error: failed to run doxygen2qthelp on index.hhp\n");
}
QDir::setCurrent(oldDir);
}
#endif
if
(
Config_getBool
(
"GENERATE_HTML"
)
&&
if
(
Config_getBool
(
"GENERATE_HTML"
)
&&
Config_getBool
(
"GENERATE_QHP"
)
&&
Config_getBool
(
"GENERATE_QHP"
)
&&
!
Config_getString
(
"QHG_LOCATION"
).
isEmpty
())
!
Config_getString
(
"QHG_LOCATION"
).
isEmpty
())
...
...
src/fortrancode.l
View file @
0c751ba9
...
@@ -263,7 +263,7 @@ static void startCodeLine()
...
@@ -263,7 +263,7 @@ static void startCodeLine()
static void endFontClass();
static void endFontClass();
static void endCodeLine()
static void endCodeLine()
{
{
if (g_currentFontClass) { g_code->endFontClass(); }
endFontClass();
g_code->endCodeLine();
g_code->endCodeLine();
}
}
...
...
src/fortranscanner.l
View file @
0c751ba9
...
@@ -1602,12 +1602,13 @@ static void handleCommentBlock(const QCString &doc,bool brief)
...
@@ -1602,12 +1602,13 @@ static void handleCommentBlock(const QCString &doc,bool brief)
int position=0;
int position=0;
if (docBlockInBody && hideInBodyDocs) return;
if (docBlockInBody && hideInBodyDocs) return;
//fprintf(stderr,"call parseCommentBlock [%s]\n",doc.data());
//fprintf(stderr,"call parseCommentBlock [%s]\n",doc.data());
int lineNr = brief ? current->briefLine : current->docLine;
while (parseCommentBlock(
while (parseCommentBlock(
g_thisParser,
g_thisParser,
docBlockInBody ? last_entry : current,
docBlockInBody ? last_entry : current,
doc, // text
doc, // text
yyFileName, // file
yyFileName, // file
brief ? current->briefLine : current->docLine, // line of block start
lineNr,
docBlockInBody ? FALSE : brief,
docBlockInBody ? FALSE : brief,
docBlockInBody ? FALSE : docBlockJavaStyle,
docBlockInBody ? FALSE : docBlockJavaStyle,
docBlockInBody,
docBlockInBody,
...
...
src/ftvhelp.h
View file @
0c751ba9
...
@@ -82,9 +82,10 @@ class FTVHelp : public IndexIntf
...
@@ -82,9 +82,10 @@ class FTVHelp : public IndexIntf
const
char
*
ref
,
const
char
*
ref
,
const
char
*
file
,
const
char
*
file
,
const
char
*
anchor
);
const
char
*
anchor
);
void
addIndexItem
(
const
char
*
,
const
char
*
,
//void addIndexItem(const char *, const char *,
const
char
*
,
const
char
*
,
// const char *, const char *,
const
char
*
,
const
MemberDef
*
)
{}
// const char *, const MemberDef *) {}
void
addIndexItem
(
Definition
*
,
MemberDef
*
,
const
char
*
,
const
char
*
)
{}
void
addIndexFile
(
const
char
*
)
{}
void
addIndexFile
(
const
char
*
)
{}
void
addImageFile
(
const
char
*
)
{}
void
addImageFile
(
const
char
*
)
{}
void
addStyleSheetFile
(
const
char
*
)
{}
void
addStyleSheetFile
(
const
char
*
)
{}
...
...
src/htmldocvisitor.cpp
View file @
0c751ba9
...
@@ -34,6 +34,34 @@
...
@@ -34,6 +34,34 @@
static
const
int
NUM_HTML_LIST_TYPES
=
4
;
static
const
int
NUM_HTML_LIST_TYPES
=
4
;
static
const
char
types
[][
NUM_HTML_LIST_TYPES
]
=
{
"1"
,
"a"
,
"i"
,
"A"
};
static
const
char
types
[][
NUM_HTML_LIST_TYPES
]
=
{
"1"
,
"a"
,
"i"
,
"A"
};
static
QCString
convertIndexWordToAnchor
(
const
QString
&
word
)
{
static
char
hex
[]
=
"0123456789abcdef"
;
uint
i
;
QCString
result
;
for
(
i
=
0
;
i
<
word
.
length
();
i
++
)
{
int
c
=
word
.
at
(
i
);
if
(
isId
(
c
))
{
result
+=
c
;
}
else
if
(
isspace
(
c
))
{
result
+=
"_"
;
}
else
{
char
cs
[
3
];
cs
[
0
]
=
hex
[
c
>>
4
];
cs
[
1
]
=
hex
[
c
&
0xf
];
cs
[
2
]
=
0
;
result
+=
cs
;
}
}
return
result
;
}
static
bool
mustBeOutsideParagraph
(
DocNode
*
n
)
static
bool
mustBeOutsideParagraph
(
DocNode
*
n
)
{
{
switch
(
n
->
kind
())
switch
(
n
->
kind
())
...
@@ -293,7 +321,7 @@ void HtmlDocVisitor::visit(DocVerbatim *s)
...
@@ -293,7 +321,7 @@ void HtmlDocVisitor::visit(DocVerbatim *s)
case
DocVerbatim
:
:
XmlOnly
:
case
DocVerbatim
:
:
XmlOnly
:
/* nothing */
/* nothing */
break
;
break
;
case
DocVerbatim
:
:
Dot
:
case
DocVerbatim
:
:
Dot
:
{
{
static
int
dotindex
=
1
;
static
int
dotindex
=
1
;
...
@@ -470,8 +498,20 @@ void HtmlDocVisitor::visit(DocFormula *f)
...
@@ -470,8 +498,20 @@ void HtmlDocVisitor::visit(DocFormula *f)
}
}
}
}
void
HtmlDocVisitor
::
visit
(
DocIndexEntry
*
)
void
HtmlDocVisitor
::
visit
(
DocIndexEntry
*
e
)
{
{
QCString
anchor
=
convertIndexWordToAnchor
(
e
->
entry
());
if
(
e
->
member
())
{
anchor
.
prepend
(
e
->
member
()
->
anchor
()
+
"_"
);
}
m_t
<<
"<a name=
\"
"
<<
anchor
<<
"
\"
></a>"
;
//printf("*** DocIndexEntry: word='%s' scope='%s' member='%s'\n",
// e->entry().data(),
// e->scope() ? e->scope()->name().data() : "<null>",
// e->member() ? e->member()->name().data() : "<null>"
// );
Doxygen
::
indexList
.
addIndexItem
(
e
->
scope
(),
e
->
member
(),
anchor
,
e
->
entry
());
}
}
void
HtmlDocVisitor
::
visit
(
DocSimpleSectSep
*
)
void
HtmlDocVisitor
::
visit
(
DocSimpleSectSep
*
)
...
...
src/htmlhelp.cpp
View file @
0c751ba9
...
@@ -302,8 +302,13 @@ static QDict<QCString> s_languageDict;
...
@@ -302,8 +302,13 @@ static QDict<QCString> s_languageDict;
void
HtmlHelp
::
initialize
()
void
HtmlHelp
::
initialize
()
{
{
const
char
*
str
=
Config_getString
(
"CHM_INDEX_ENCODING"
);
const
char
*
str
=
Config_getString
(
"CHM_INDEX_ENCODING"
);
if
(
!
str
)
str
=
"Windows-1250"
;
if
(
!
str
)
str
=
"CP1250"
;
// use safe and likely default
m_fromUtf8
=
portable_iconv_open
(
str
,
"UTF-8"
);
m_fromUtf8
=
portable_iconv_open
(
str
,
"UTF-8"
);
if
(
m_fromUtf8
==
(
void
*
)(
-
1
))
{
err
(
"Error: unsupported character conversion for CHM_INDEX_ENCODING: '%s'->'UTF-8'
\n
"
,
str
);
exit
(
1
);
}
/* open the contents file */
/* open the contents file */
QCString
fName
=
Config_getString
(
"HTML_OUTPUT"
)
+
"/index.hhc"
;
QCString
fName
=
Config_getString
(
"HTML_OUTPUT"
)
+
"/index.hhc"
;
...
@@ -639,21 +644,36 @@ void HtmlHelp::addContentsItem(bool isDir,
...
@@ -639,21 +644,36 @@ void HtmlHelp::addContentsItem(bool isDir,
cts
<<
"</OBJECT>
\n
"
;
cts
<<
"</OBJECT>
\n
"
;
}
}
/*! Add an list item to the index file.
* \param level1 the main index of the item.
void
HtmlHelp
::
addIndexItem
(
Definition
*
context
,
MemberDef
*
md
,
* \param level2 the sub index of the item.
const
char
*
anc
,
const
char
*
word
)
* \param contRef the output file refering to the container.
* \param memRef the output file containing to the member documentation.
* \param anchor the anchor of the item.
* \param md the member definition corresponding to this item.
* \sa HtmlHelpIndex
*/
void
HtmlHelp
::
addIndexItem
(
const
char
*
level1
,
const
char
*
level2
,
const
char
*
contRef
,
const
char
*
memRef
,
const
char
*
anchor
,
const
MemberDef
*
md
)
{
{
(
void
)
md
;
if
(
md
)
index
->
addItem
(
level1
,
level2
,
contRef
,
anchor
,
TRUE
,
FALSE
);
{
index
->
addItem
(
level2
,
level1
,
memRef
,
anchor
,
TRUE
,
TRUE
);
static
bool
separateMemberPages
=
Config_getBool
(
"SEPARATE_MEMBER_PAGES"
);
if
(
context
==
0
)
// global member
{
if
(
md
->
getGroupDef
())
context
=
md
->
getGroupDef
();
else
if
(
md
->
getFileDef
())
context
=
md
->
getFileDef
();
}
if
(
context
==
0
)
return
;
// should not happen
QCString
cfname
=
md
->
getOutputFileBase
();
QCString
cfiname
=
context
->
getOutputFileBase
();
QCString
level1
=
context
->
name
();
QCString
level2
=
md
->
name
();
QCString
contRef
=
separateMemberPages
?
cfname
:
cfiname
;
QCString
memRef
=
cfname
;
QCString
anchor
=
anc
;
index
->
addItem
(
level1
,
level2
,
contRef
,
anchor
,
TRUE
,
FALSE
);
index
->
addItem
(
level2
,
level1
,
memRef
,
anchor
,
TRUE
,
TRUE
);
}
else
if
(
context
)
{
QCString
level1
=
word
?
QCString
(
word
)
:
context
->
name
();
index
->
addItem
(
level1
,
0
,
context
->
getOutputFileBase
(),
anc
,
TRUE
,
FALSE
);
}
}
}
src/htmlhelp.h
View file @
0c751ba9
...
@@ -74,9 +74,11 @@ class HtmlHelp : public IndexIntf
...
@@ -74,9 +74,11 @@ class HtmlHelp : public IndexIntf
const
char
*
ref
=
0
,
const
char
*
ref
=
0
,
const
char
*
file
=
0
,
const
char
*
file
=
0
,
const
char
*
anchor
=
0
);
const
char
*
anchor
=
0
);
void
addIndexItem
(
const
char
*
level1
,
const
char
*
level2
,
//void addIndexItem(const char *level1, const char *level2,
const
char
*
contRef
,
const
char
*
memRef
,
// const char *contRef, const char *memRef,
const
char
*
anchor
,
const
MemberDef
*
md
);
// const char *anchor,const MemberDef *md);
void
addIndexItem
(
Definition
*
context
,
MemberDef
*
md
,
const
char
*
anchor
,
const
char
*
word
);
void
addIndexFile
(
const
char
*
name
);
void
addIndexFile
(
const
char
*
name
);
void
addImageFile
(
const
char
*
)
{}
void
addImageFile
(
const
char
*
)
{}
void
addStyleSheetFile
(
const
char
*
)
{}
void
addStyleSheetFile
(
const
char
*
)
{}
...
...
src/index.cpp
View file @
0c751ba9
...
@@ -131,7 +131,7 @@ class MemberIndexList : public QList<MemberDef>
...
@@ -131,7 +131,7 @@ class MemberIndexList : public QList<MemberDef>
}
}
};
};
#define MEMBER_INDEX_ENTRIES
128
#define MEMBER_INDEX_ENTRIES
256
static
MemberIndexList
g_memberIndexLetterUsed
[
CMHL_Total
][
MEMBER_INDEX_ENTRIES
];
static
MemberIndexList
g_memberIndexLetterUsed
[
CMHL_Total
][
MEMBER_INDEX_ENTRIES
];
static
MemberIndexList
g_fileIndexLetterUsed
[
FMHL_Total
][
MEMBER_INDEX_ENTRIES
];
static
MemberIndexList
g_fileIndexLetterUsed
[
FMHL_Total
][
MEMBER_INDEX_ENTRIES
];
...
@@ -1573,7 +1573,8 @@ void addClassMemberNameToIndex(MemberDef *md)
...
@@ -1573,7 +1573,8 @@ void addClassMemberNameToIndex(MemberDef *md)
{
{
QCString
n
=
md
->
name
();
QCString
n
=
md
->
name
();
int
index
=
getPrefixIndex
(
n
);
int
index
=
getPrefixIndex
(
n
);
int
letter
=
tolower
(
n
.
at
(
index
))
&
0x7f
;
int
charCode
=
n
.
at
(
index
);
int
letter
=
charCode
<
128
?
tolower
(
charCode
)
:
charCode
;
if
(
!
n
.
isEmpty
())
if
(
!
n
.
isEmpty
())
{
{
bool
isFriendToHide
=
hideFriendCompounds
&&
bool
isFriendToHide
=
hideFriendCompounds
&&
...
@@ -1653,7 +1654,8 @@ void addNamespaceMemberNameToIndex(MemberDef *md)
...
@@ -1653,7 +1654,8 @@ void addNamespaceMemberNameToIndex(MemberDef *md)
{
{
QCString
n
=
md
->
name
();
QCString
n
=
md
->
name
();
int
index
=
getPrefixIndex
(
n
);
int
index
=
getPrefixIndex
(
n
);
int
letter
=
tolower
(
n
.
at
(
index
));
int
charCode
=
n
.
at
(
index
);
int
letter
=
charCode
<
128
?
tolower
(
charCode
)
:
charCode
;
if
(
!
n
.
isEmpty
())
if
(
!
n
.
isEmpty
())
{
{
g_namespaceIndexLetterUsed
[
NMHL_All
][
letter
].
append
(
md
);
g_namespaceIndexLetterUsed
[
NMHL_All
][
letter
].
append
(
md
);
...
@@ -1711,7 +1713,8 @@ void addFileMemberNameToIndex(MemberDef *md)
...
@@ -1711,7 +1713,8 @@ void addFileMemberNameToIndex(MemberDef *md)
{
{
QCString
n
=
md
->
name
();
QCString
n
=
md
->
name
();
int
index
=
getPrefixIndex
(
n
);
int
index
=
getPrefixIndex
(
n
);
int
letter
=
tolower
(
n
.
at
(
index
));
int
charCode
=
n
.
at
(
index
);
int
letter
=
charCode
<
128
?
tolower
(
charCode
)
:
charCode
;
if
(
!
n
.
isEmpty
())
if
(
!
n
.
isEmpty
())
{
{
g_fileIndexLetterUsed
[
FMHL_All
][
letter
].
append
(
md
);
g_fileIndexLetterUsed
[
FMHL_All
][
letter
].
append
(
md
);
...
@@ -2237,7 +2240,8 @@ static void addMemberToSearchIndex(
...
@@ -2237,7 +2240,8 @@ static void addMemberToSearchIndex(
cd
->
templateMaster
()
==
0
)
cd
->
templateMaster
()
==
0
)
{
{
QCString
n
=
md
->
name
();
QCString
n
=
md
->
name
();
int
letter
=
tolower
(
n
.
at
(
0
))
&
0x7f
;
int
charCode
=
n
.
at
(
0
);
int
letter
=
charCode
<
128
?
tolower
(
charCode
)
:
charCode
;
if
(
!
n
.
isEmpty
())
if
(
!
n
.
isEmpty
())
{
{
bool
isFriendToHide
=
hideFriendCompounds
&&
bool
isFriendToHide
=
hideFriendCompounds
&&
...
@@ -2299,7 +2303,8 @@ static void addMemberToSearchIndex(
...
@@ -2299,7 +2303,8 @@ static void addMemberToSearchIndex(
)
)
{
{
QCString
n
=
md
->
name
();
QCString
n
=
md
->
name
();
int
letter
=
tolower
(
n
.
at
(
0
))
&
0x7f
;
int
charCode
=
n
.
at
(
0
);
int
letter
=
charCode
<
128
?
tolower
(
charCode
)
:
charCode
;
if
(
!
n
.
isEmpty
())
if
(
!
n
.
isEmpty
())
{
{
symbols
[
SEARCH_INDEX_ALL
][
letter
].
append
(
md
);
symbols
[
SEARCH_INDEX_ALL
][
letter
].
append
(
md
);
...
@@ -2412,7 +2417,8 @@ void writeSearchIndex()
...
@@ -2412,7 +2417,8 @@ void writeSearchIndex()
ClassDef
*
cd
;
ClassDef
*
cd
;
for
(;(
cd
=
cli
.
current
());
++
cli
)
for
(;(
cd
=
cli
.
current
());
++
cli
)
{
{
int
letter
=
tolower
(
cd
->
localName
().
at
(
0
));
int
charCode
=
cd
->
localName
().
at
(
0
);
int
letter
=
charCode
<
128
?
tolower
(
charCode
)
:
charCode
;
if
(
cd
->
isLinkable
()
&&
isId
(
letter
))
if
(
cd
->
isLinkable
()
&&
isId
(
letter
))
{
{
g_searchIndexSymbols
[
SEARCH_INDEX_ALL
][
letter
].
append
(
cd
);
g_searchIndexSymbols
[
SEARCH_INDEX_ALL
][
letter
].
append
(
cd
);
...
@@ -2425,7 +2431,8 @@ void writeSearchIndex()
...
@@ -2425,7 +2431,8 @@ void writeSearchIndex()
NamespaceDef
*
nd
;
NamespaceDef
*
nd
;
for
(;(
nd
=
nli
.
current
());
++
nli
)
for
(;(
nd
=
nli
.
current
());
++
nli
)
{
{
int
letter
=
tolower
(
nd
->
name
().
at
(
0
));
int
charCode
=
nd
->
name
().
at
(
0
);
int
letter
=
charCode
<
128
?
tolower
(
charCode
)
:
charCode
;
if
(
nd
->
isLinkable
()
&&
isId
(
letter
))
if
(
nd
->
isLinkable
()
&&
isId
(
letter
))
{
{
g_searchIndexSymbols
[
SEARCH_INDEX_ALL
][
letter
].
append
(
nd
);
g_searchIndexSymbols
[
SEARCH_INDEX_ALL
][
letter
].
append
(
nd
);
...
@@ -2442,7 +2449,8 @@ void writeSearchIndex()
...
@@ -2442,7 +2449,8 @@ void writeSearchIndex()
FileDef
*
fd
;
FileDef
*
fd
;
for
(;(
fd
=
fni
.
current
());
++
fni
)
for
(;(
fd
=
fni
.
current
());
++
fni
)
{
{
int
letter
=
tolower
(
fd
->
name
().
at
(
0
));
int
charCode
=
fd
->
name
().
at
(
0
);
int
letter
=
charCode
<
128
?
tolower
(
charCode
)
:
charCode
;
if
(
fd
->
isLinkable
()
&&
isId
(
letter
))
if
(
fd
->
isLinkable
()
&&
isId
(
letter
))
{
{
g_searchIndexSymbols
[
SEARCH_INDEX_ALL
][
letter
].
append
(
fd
);
g_searchIndexSymbols
[
SEARCH_INDEX_ALL
][
letter
].
append
(
fd
);
...
@@ -2772,7 +2780,7 @@ void writeSearchIndex()
...
@@ -2772,7 +2780,7 @@ void writeSearchIndex()
{
{
if
(
!
first
)
t
<<
","
<<
endl
;
if
(
!
first
)
t
<<
","
<<
endl
;
t
<<
" "
<<
j
<<
":
\"
"
;
t
<<
" "
<<
j
<<
":
\"
"
;
for
(
p
=
32
;
p
<
MEMBER_INDEX_ENTRIES
;
p
++
)
for
(
p
=
0
;
p
<
MEMBER_INDEX_ENTRIES
;
p
++
)
{
{
t
<<
(
g_searchIndexSymbols
[
i
][
p
].
count
()
>
0
?
"1"
:
"0"
);
t
<<
(
g_searchIndexSymbols
[
i
][
p
].
count
()
>
0
?
"1"
:
"0"
);
}
}
...
...
src/index.h
View file @
0c751ba9
...
@@ -22,11 +22,12 @@
...
@@ -22,11 +22,12 @@
#include <qfile.h>
#include <qfile.h>
#include <qlist.h>
#include <qlist.h>
class
Definition
;
class
MemberDef
;
class
MemberDef
;
class
OutputList
;
class
OutputList
;
class
QTextStream
;
class
QTextStream
;
/** \brief Abstract interface for index generators. */
class
IndexIntf
class
IndexIntf
{
{
public
:
public
:
...
@@ -37,44 +38,56 @@ class IndexIntf
...
@@ -37,44 +38,56 @@ class IndexIntf
virtual
void
decContentsDepth
()
=
0
;
virtual
void
decContentsDepth
()
=
0
;
virtual
void
addContentsItem
(
bool
isDir
,
const
char
*
name
,
const
char
*
ref
=
0
,
virtual
void
addContentsItem
(
bool
isDir
,
const
char
*
name
,
const
char
*
ref
=
0
,
const
char
*
file
=
0
,
const
char
*
anchor
=
0
)
=
0
;
const
char
*
file
=
0
,
const
char
*
anchor
=
0
)
=
0
;
virtual
void
addIndexItem
(
const
char
*
level1
,
const
char
*
level2
,
const
char
*
contRef
,
virtual
void
addIndexItem
(
Definition
*
context
,
MemberDef
*
md
,
const
char
*
memRef
,
const
char
*
anchor
,
const
MemberDef
*
m
d
)
=
0
;
const
char
*
anchor
,
const
char
*
wor
d
)
=
0
;
virtual
void
addIndexFile
(
const
char
*
name
)
=
0
;
virtual
void
addIndexFile
(
const
char
*
name
)
=
0
;
virtual
void
addImageFile
(
const
char
*
name
)
=
0
;
virtual
void
addImageFile
(
const
char
*
name
)
=
0
;
virtual
void
addStyleSheetFile
(
const
char
*
name
)
=
0
;
virtual
void
addStyleSheetFile
(
const
char
*
name
)
=
0
;
};
};
/** \brief A list of index interfaces.
*
* This class itself implements all methods of IndexIntf and
* just forwards the calls to all items in the list.
*/
class
IndexList
:
public
IndexIntf
class
IndexList
:
public
IndexIntf
{
{
private
:
private
:
QList
<
IndexIntf
>
m_intfs
;
QList
<
IndexIntf
>
m_intfs
;
// --- foreach implementations for various number of arguments
void
foreach
(
void
(
IndexIntf
::*
methodPtr
)())
void
foreach
(
void
(
IndexIntf
::*
methodPtr
)())
{
{
QListIterator
<
IndexIntf
>
li
(
m_intfs
);
QListIterator
<
IndexIntf
>
li
(
m_intfs
);
for
(
li
.
toFirst
();
li
.
current
();
++
li
)
(
li
.
current
()
->*
methodPtr
)();
for
(
li
.
toFirst
();
li
.
current
();
++
li
)
(
li
.
current
()
->*
methodPtr
)();
}
}
template
<
typename
A1
>
template
<
typename
A1
>
void
foreach
(
void
(
IndexIntf
::*
methodPtr
)(
A1
),
A1
a1
)
void
foreach
(
void
(
IndexIntf
::*
methodPtr
)(
A1
),
A1
a1
)
{
{
QListIterator
<
IndexIntf
>
li
(
m_intfs
);
QListIterator
<
IndexIntf
>
li
(
m_intfs
);
for
(
li
.
toFirst
();
li
.
current
();
++
li
)
(
li
.
current
()
->*
methodPtr
)(
a1
);
for
(
li
.
toFirst
();
li
.
current
();
++
li
)
(
li
.
current
()
->*
methodPtr
)(
a1
);
}
}
template
<
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
>
void
foreach
(
void
(
IndexIntf
::*
methodPtr
)(
A1
,
A2
,
A3
,
A4
,
A5
),
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
)
template
<
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
>
void
foreach
(
void
(
IndexIntf
::*
methodPtr
)(
A1
,
A2
,
A3
,
A4
),
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
)
{
{
QListIterator
<
IndexIntf
>
li
(
m_intfs
);
QListIterator
<
IndexIntf
>
li
(
m_intfs
);
for
(
li
.
toFirst
();
li
.
current
();
++
li
)
(
li
.
current
()
->*
methodPtr
)(
a1
,
a2
,
a3
,
a4
,
a5
);
for
(
li
.
toFirst
();
li
.
current
();
++
li
)
(
li
.
current
()
->*
methodPtr
)(
a1
,
a2
,
a3
,
a4
);
}
}
template
<
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
>
void
foreach
(
void
(
IndexIntf
::*
methodPtr
)(
A1
,
A2
,
A3
,
A4
,
A5
,
A6
),
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
,
A6
a6
)
template
<
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
>
void
foreach
(
void
(
IndexIntf
::*
methodPtr
)(
A1
,
A2
,
A3
,
A4
,
A5
),
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
)
{
{
QListIterator
<
IndexIntf
>
li
(
m_intfs
);
QListIterator
<
IndexIntf
>
li
(
m_intfs
);
for
(
li
.
toFirst
();
li
.
current
();
++
li
)
(
li
.
current
()
->*
methodPtr
)(
a1
,
a2
,
a3
,
a4
,
a5
,
a6
);
for
(
li
.
toFirst
();
li
.
current
();
++
li
)
(
li
.
current
()
->*
methodPtr
)(
a1
,
a2
,
a3
,
a4
,
a5
);
}
}
public
:
public
:
/** Creates a list of indexes */
IndexList
()
{
m_intfs
.
setAutoDelete
(
TRUE
);
}
IndexList
()
{
m_intfs
.
setAutoDelete
(
TRUE
);
}
/** Add an index generator to the list */
void
addIndex
(
IndexIntf
*
intf
)
void
addIndex
(
IndexIntf
*
intf
)
{
m_intfs
.
append
(
intf
);
}
{
m_intfs
.
append
(
intf
);
}
...
@@ -91,10 +104,10 @@ class IndexList : public IndexIntf
...
@@ -91,10 +104,10 @@ class IndexList : public IndexIntf
const
char
*
file
=
0
,
const
char
*
anchor
=
0
)
const
char
*
file
=
0
,
const
char
*
anchor
=
0
)
{
foreach
<
bool
,
const
char
*
,
const
char
*
,
const
char
*
,
const
char
*>
{
foreach
<
bool
,
const
char
*
,
const
char
*
,
const
char
*
,
const
char
*>
(
&
IndexIntf
::
addContentsItem
,
isDir
,
name
,
ref
,
file
,
anchor
);
}
(
&
IndexIntf
::
addContentsItem
,
isDir
,
name
,
ref
,
file
,
anchor
);
}
void
addIndexItem
(
const
char
*
level1
,
const
char
*
level2
,
const
char
*
contRef
,
void
addIndexItem
(
Definition
*
context
,
MemberDef
*
md
,
const
char
*
memRef
,
const
char
*
anchor
,
const
MemberDef
*
md
)
const
char
*
anchor
=
0
,
const
char
*
word
=
0
)
{
foreach
<
const
char
*
,
const
char
*
,
const
char
*
,
const
char
*
,
const
char
*
,
const
MemberDef
*>
{
foreach
<
Definition
*
,
MemberDef
*>
(
&
IndexIntf
::
addIndexItem
,
level1
,
level2
,
contRef
,
memRef
,
anchor
,
m
d
);
}
(
&
IndexIntf
::
addIndexItem
,
context
,
md
,
anchor
,
wor
d
);
}
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
)
void
addImageFile
(
const
char
*
name
)
...
...
src/memberdef.cpp
View file @
0c751ba9
...
@@ -1402,16 +1402,17 @@ void MemberDef::writeDeclaration(OutputList &ol,
...
@@ -1402,16 +1402,17 @@ void MemberDef::writeDeclaration(OutputList &ol,
}
}
else
// index member
else
// index member
{
{
static
bool
separateMemPages
=
Config_getBool
(
"SEPARATE_MEMBER_PAGES"
);
//static bool separateMemPages = Config_getBool("SEPARATE_MEMBER_PAGES");
QCString
cfname
=
getOutputFileBase
();
//QCString cfname = getOutputFileBase();
QCString
cfiname
=
d
->
getOutputFileBase
();
//QCString cfiname = d->getOutputFileBase();
Doxygen
::
indexList
.
addIndexItem
(
//Doxygen::indexList.addIndexItem(
cname
,
// level1
// cname, // level1
name
(),
// level2
// name(), // level2
separateMemPages
?
cfname
:
cfiname
,
// contRef
// separateMemPages ? cfname : cfiname, // contRef
cfname
,
// memRef
// cfname, // memRef
anchor
(),
// anchor
// anchor(), // anchor
this
);
// memberdef
// this); // memberdef
Doxygen
::
indexList
.
addIndexItem
(
d
,
this
);
}
}
// *** write arguments
// *** write arguments
...
@@ -1642,7 +1643,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -1642,7 +1643,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
bool
hasParameterList
=
FALSE
;
bool
hasParameterList
=
FALSE
;
bool
inFile
=
container
->
definitionType
()
==
Definition
::
TypeFile
;
bool
inFile
=
container
->
definitionType
()
==
Definition
::
TypeFile
;
bool
hasDocs
=
isDetailedSectionVisible
(
inGroup
,
inFile
);
bool
hasDocs
=
isDetailedSectionVisible
(
inGroup
,
inFile
);
static
bool
separateMemPages
=
Config_getBool
(
"SEPARATE_MEMBER_PAGES"
);
static
bool
optVhdl
=
Config_getBool
(
"OPTIMIZE_OUTPUT_VHDL"
);
static
bool
optVhdl
=
Config_getBool
(
"OPTIMIZE_OUTPUT_VHDL"
);
//printf("MemberDef::writeDocumentation(): name=`%s' hasDocs=`%d' containerType=%d inGroup=%d\n",
//printf("MemberDef::writeDocumentation(): name=`%s' hasDocs=`%d' containerType=%d inGroup=%d\n",
// name().data(),hasDocs,container->definitionType(),inGroup);
// name().data(),hasDocs,container->definitionType(),inGroup);
...
@@ -1672,22 +1672,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -1672,22 +1672,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
QCString
cfname
=
getOutputFileBase
();
QCString
cfname
=
getOutputFileBase
();
QCString
cfiname
=
container
->
getOutputFileBase
();
QCString
cfiname
=
container
->
getOutputFileBase
();
// the next part is moved to declaration
//if (isEnumerate() && name().at(0)=='@')
//{
// // don't add to index
//}
//else
//{
// Doxygen::indexList.addIndexItem(
// ciname, // level1
// name(), // level2
// separateMemPages ? cfname : cfiname, // contRef
// cfname, // memRef
// memAnchor, // anchor
// this); // memberdef
//}
// get member name
// get member name
QCString
doxyName
=
name
();
QCString
doxyName
=
name
();
// prepend scope if there is any. TODO: make this optional for C only docs
// prepend scope if there is any. TODO: make this optional for C only docs
...
@@ -2073,35 +2057,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -2073,35 +2057,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
FALSE
// isExample
FALSE
// isExample
);
);
#if 0 // old, now obsolete way to add parameter documentation
//printf("***** argumentList is documented\n");
ol.startParamList(BaseOutputDocInterface::Param,theTranslator->trParameters()+": ");
ol.writeDescItem();
ol.startDescTable();
ArgumentListIterator ali(*docArgList);
Argument *a;
for (ali.toFirst();(a=ali.current());++ali)
{
if (a->hasDocumentation())
{
ol.startDescTableTitle();
ol.docify(a->name);
ol.endDescTableTitle();
QCString doc = a->docs+"\n";
ol.startDescTableData();
ol.parseDoc(docFile(),docLine(),
getOuterScope()?getOuterScope():container,
this, // memberDef
a->docs+"\n", // docStr
TRUE, // indexWords
FALSE // isExample
);
ol.endDescTableData();
}
}
ol.endDescTable();
ol.endParamList();
#endif
}
}
// For enum, we also write the documented enum values
// For enum, we also write the documented enum values
...
@@ -2127,21 +2082,15 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -2127,21 +2082,15 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
ol
.
addIndexItem
(
fmd
->
name
(),
cname
);
ol
.
addIndexItem
(
fmd
->
name
(),
cname
);
ol
.
addIndexItem
(
cname
,
fmd
->
name
());
ol
.
addIndexItem
(
cname
,
fmd
->
name
());
//if (hasHtmlHelp)
//Doxygen::indexList.addIndexItem(
//{
// ciname, // level1
// htmlHelp->addIndexItem(ciname, // level1
// fmd->name(), // level2
// fmd->name(), // level2
// separateMemPages ? cfname : cfiname, // contRef
// separateMemPages ? cfname : cfiname, // contRef
// cfname, // memRef
// cfname, // memRef
// fmd->anchor(), // anchor
// fmd->anchor()); // anchor
// fmd); // memberdef
//}
Doxygen
::
indexList
.
addIndexItem
(
container
,
fmd
);
Doxygen
::
indexList
.
addIndexItem
(
ciname
,
// level1
fmd
->
name
(),
// level2
separateMemPages
?
cfname
:
cfiname
,
// contRef
cfname
,
// memRef
fmd
->
anchor
(),
// anchor
fmd
);
// memberdef
//ol.writeListItem();
//ol.writeListItem();
ol
.
startDescTableTitle
();
// this enables emphasis!
ol
.
startDescTableTitle
();
// this enables emphasis!
ol
.
startDoxyAnchor
(
cfname
,
cname
,
fmd
->
anchor
(),
fmd
->
name
(),
fmd
->
argsString
());
ol
.
startDoxyAnchor
(
cfname
,
cname
,
fmd
->
anchor
(),
fmd
->
name
(),
fmd
->
argsString
());
...
...
src/namespacedef.cpp
View file @
0c751ba9
...
@@ -415,6 +415,8 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -415,6 +415,8 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
Doxygen
::
tagFile
<<
" <filename>"
<<
convertToXML
(
getOutputFileBase
())
<<
Doxygen
::
htmlFileExtension
<<
"</filename>"
<<
endl
;
Doxygen
::
tagFile
<<
" <filename>"
<<
convertToXML
(
getOutputFileBase
())
<<
Doxygen
::
htmlFileExtension
<<
"</filename>"
<<
endl
;
}
}
Doxygen
::
indexList
.
addIndexItem
(
this
,
0
);
//---------------------------------------- start flexible part -------------------------------
//---------------------------------------- start flexible part -------------------------------
QListIterator
<
LayoutDocEntry
>
eli
(
QListIterator
<
LayoutDocEntry
>
eli
(
...
...
src/pagedef.cpp
View file @
0c751ba9
...
@@ -160,7 +160,8 @@ void PageDef::writeDocumentation(OutputList &ol)
...
@@ -160,7 +160,8 @@ void PageDef::writeDocumentation(OutputList &ol)
void
PageDef
::
writePageDocumentation
(
OutputList
&
ol
)
void
PageDef
::
writePageDocumentation
(
OutputList
&
ol
)
{
{
ol
.
startTextBlock
();
ol
.
startTextBlock
();
ol
.
parseDoc
(
docFile
(),
// fileName
ol
.
parseDoc
(
docFile
(),
// fileName
docLine
(),
// startLine
docLine
(),
// startLine
this
,
// context
this
,
// context
0
,
// memberdef
0
,
// memberdef
...
...
src/pre.l
View file @
0c751ba9
...
@@ -512,7 +512,7 @@ static bool replaceFunctionMacro(const QCString &expr,QCString *rest,int pos,int
...
@@ -512,7 +512,7 @@ static bool replaceFunctionMacro(const QCString &expr,QCString *rest,int pos,int
len=0;
len=0;
result.resize(0);
result.resize(0);
int cc;
int cc;
while ((cc=getCurrentChar(expr,rest,j))!=EOF &&
cc==' '
)
while ((cc=getCurrentChar(expr,rest,j))!=EOF &&
isspace(cc)
)
{
{
len++;
len++;
getNextChar(expr,rest,j);
getNextChar(expr,rest,j);
...
@@ -772,6 +772,7 @@ static int getNextId(const QCString &expr,int p,int *l)
...
@@ -772,6 +772,7 @@ static int getNextId(const QCString &expr,int p,int *l)
c=expr.at(p);
c=expr.at(p);
p++;
p++;
}
}
if (p<(int)expr.length()) ++p; // skip closing quote
}
}
else if (c=='/') // skip C Comment
else if (c=='/') // skip C Comment
{
{
...
...
src/pycode.l
View file @
0c751ba9
...
@@ -402,7 +402,7 @@ static void codify(const char* text)
...
@@ -402,7 +402,7 @@ static void codify(const char* text)
static void endCodeLine()
static void endCodeLine()
{
{
if (g_currentFontClass) { g_code->endFontClass(); }
endFontClass();
g_code->endCodeLine();
g_code->endCodeLine();
}
}
...
...
src/pyscanner.l
View file @
0c751ba9
...
@@ -304,12 +304,13 @@ static void handleCommentBlock(const QCString &doc,bool brief)
...
@@ -304,12 +304,13 @@ static void handleCommentBlock(const QCString &doc,bool brief)
int position = 0;
int position = 0;
bool needsEntry;
bool needsEntry;
int lineNr = brief ? current->briefLine : current->docLine;
while (parseCommentBlock(
while (parseCommentBlock(
g_thisParser,
g_thisParser,
(docBlockInBody && previous) ? previous : current,
(docBlockInBody && previous) ? previous : current,
doc, // text
doc, // text
yyFileName, // file
yyFileName, // file
brief ? current->briefLine : current->docLine, // line of block start
lineNr,
docBlockInBody ? FALSE : brief,
docBlockInBody ? FALSE : brief,
docBlockJavaStyle, // javadoc style // or FALSE,
docBlockJavaStyle, // javadoc style // or FALSE,
docBlockInBody,
docBlockInBody,
...
...
src/qhp.cpp
View file @
0c751ba9
...
@@ -18,6 +18,9 @@
...
@@ -18,6 +18,9 @@
#include "qhpxmlwriter.h"
#include "qhpxmlwriter.h"
#include "message.h"
#include "message.h"
#include "config.h"
#include "config.h"
#include "memberdef.h"
#include "groupdef.h"
#include "filedef.h"
#include <qstringlist.h>
#include <qstringlist.h>
#include <string.h>
#include <string.h>
...
@@ -132,7 +135,7 @@ void Qhp::finalize()
...
@@ -132,7 +135,7 @@ void Qhp::finalize()
m_toc
.
close
(
"toc"
);
m_toc
.
close
(
"toc"
);
m_doc
.
insert
(
m_toc
);
m_doc
.
insert
(
m_toc
);
// Finish index
// Finish index
m_index
.
close
(
"keywords"
);
m_index
.
close
(
"keywords"
);
m_doc
.
insert
(
m_index
);
m_doc
.
insert
(
m_index
);
...
@@ -184,65 +187,90 @@ void Qhp::addContentsItem(bool /*isDir*/, const char * name,
...
@@ -184,65 +187,90 @@ void Qhp::addContentsItem(bool /*isDir*/, const char * name,
}
}
}
}
void
Qhp
::
addIndexItem
(
const
char
*
level1
,
const
char
*
level2
,
void
Qhp
::
addIndexItem
(
Definition
*
context
,
MemberDef
*
md
,
const
char
*
contRef
,
const
char
*
/*memRef*/
,
const
char
*
anc
,
const
char
*
word
)
const
char
*
anchor
,
const
MemberDef
*
/*md*/
)
{
{
QCString
ref
;
(
void
)
anc
;
if
((
m_prevIdName
!=
level1
)
||
(
m_prevIdRef
!=
contRef
))
(
void
)
word
;
{
m_prevIdName
=
level1
;
m_prevIdRef
=
contRef
;
ref
=
makeFileName
(
contRef
);
if
(
md
)
// member
{
static
bool
separateMemberPages
=
Config_getBool
(
"SEPARATE_MEMBER_PAGES"
);
if
(
context
==
0
)
// global member
{
if
(
md
->
getGroupDef
())
context
=
md
->
getGroupDef
();
else
if
(
md
->
getFileDef
())
context
=
md
->
getFileDef
();
}
if
(
context
==
0
)
return
;
// should not happen
QCString
cfname
=
md
->
getOutputFileBase
();
QCString
cfiname
=
context
->
getOutputFileBase
();
QCString
level1
=
context
->
name
();
QCString
level2
=
word
?
QCString
(
word
)
:
md
->
name
();
QCString
contRef
=
separateMemberPages
?
cfname
:
cfiname
;
QCString
anchor
=
anc
;
QCString
ref
;
// <keyword name="foo" id="MyApplication::foo" ref="doc.html#foo"/>
ref
=
makeRef
(
contRef
,
anchor
);
QCString
id
=
level1
+
"::"
+
level2
;
const
char
*
attributes
[]
=
const
char
*
attributes
[]
=
{
"name"
,
level1
,
{
"name"
,
level2
,
"id"
,
id
,
"ref"
,
ref
,
0
};
m_index
.
openClose
(
"keyword"
,
attributes
);
}
else
if
(
context
)
// container
{
// <keyword name="Foo" id="Foo" ref="doc.html"/>
QCString
contRef
=
context
->
getOutputFileBase
();
QCString
level1
=
word
?
QCString
(
word
)
:
context
->
name
();
QCString
ref
;
if
(
anc
)
{
ref
=
makeRef
(
contRef
,
anc
);
}
else
{
ref
=
makeFileName
(
contRef
);
}
const
char
*
attributes
[]
=
{
"name"
,
level1
,
"id"
,
level1
,
"id"
,
level1
,
"ref"
,
ref
,
"ref"
,
ref
,
0
0
};
};
m_index
.
openClose
(
"keyword"
,
attributes
);
m_index
.
openClose
(
"keyword"
,
attributes
);
}
}
/*
<keyword name="foo" id="MyApplication::foo" ref="doc.html#foo"/>
*/
ref
=
makeRef
(
contRef
,
anchor
);
QCString
id
(
level1
);
id
+=
"::"
;
id
+=
level2
;
const
char
*
attributes
[]
=
{
"name"
,
level2
,
"id"
,
id
,
"ref"
,
ref
,
0
};
m_index
.
openClose
(
"keyword"
,
attributes
);
}
}
void
void
Qhp
::
addIndexFile
(
const
char
*
name
)
Qhp
::
addIndexFile
(
const
char
*
name
)
{
{
addFile
(
name
);
addFile
(
name
);
}
}
/*static*/
QCString
QCString
Qhp
::
getQhpFileName
()
Qhp
::
getQhpFileName
()
{
{
return
"index.qhp"
;
return
"index.qhp"
;
}
}
/*static*/
QCString
QCString
Qhp
::
getFullProjectName
()
Qhp
::
getFullProjectName
()
{
{
QCString
const
projectName
=
Config_getString
(
"PROJECT_NAME"
);
QCString
projectName
=
Config_getString
(
"PROJECT_NAME"
);
QCString
const
versionText
=
Config_getString
(
"PROJECT_NUMBER"
);
QCString
versionText
=
Config_getString
(
"PROJECT_NUMBER"
);
if
(
projectName
.
isEmpty
())
projectName
=
"Root"
;
return
projectName
+
(
versionText
.
isEmpty
()
return
projectName
+
(
versionText
.
isEmpty
()
?
QCString
(
""
)
?
QCString
(
""
)
:
QCString
(
" "
)
+
versionText
);
:
QCString
(
" "
)
+
versionText
);
}
}
void
void
Qhp
::
handlePrevSection
()
Qhp
::
handlePrevSection
()
{
{
/*
/*
<toc>
<toc>
...
...
src/qhp.h
View file @
0c751ba9
...
@@ -33,9 +33,11 @@ class Qhp : public IndexIntf
...
@@ -33,9 +33,11 @@ class Qhp : public IndexIntf
void
decContentsDepth
();
void
decContentsDepth
();
void
addContentsItem
(
bool
isDir
,
const
char
*
name
,
const
char
*
ref
,
void
addContentsItem
(
bool
isDir
,
const
char
*
name
,
const
char
*
ref
,
const
char
*
file
,
const
char
*
anchor
);
const
char
*
file
,
const
char
*
anchor
);
void
addIndexItem
(
const
char
*
level1
,
const
char
*
level2
,
//void addIndexItem(const char * level1, const char * level2,
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
addIndexItem
(
Definition
*
context
,
MemberDef
*
md
,
const
char
*
anchor
,
const
char
*
word
);
void
addIndexFile
(
const
char
*
name
);
void
addIndexFile
(
const
char
*
name
);
void
addImageFile
(
const
char
*
name
);
void
addImageFile
(
const
char
*
name
);
void
addStyleSheetFile
(
const
char
*
name
);
void
addStyleSheetFile
(
const
char
*
name
);
...
@@ -62,8 +64,8 @@ class Qhp : public IndexIntf
...
@@ -62,8 +64,8 @@ class Qhp : public IndexIntf
int
m_prevSectionLevel
;
int
m_prevSectionLevel
;
int
m_sectionLevel
;
int
m_sectionLevel
;
QCString
m_prevIdName
;
//
QCString m_prevIdName;
QCString
m_prevIdRef
;
//
QCString m_prevIdRef;
};
};
#endif // DOXYGEN_QHP_H
#endif // DOXYGEN_QHP_H
...
...
src/rtfgen.cpp
View file @
0c751ba9
...
@@ -39,8 +39,8 @@
...
@@ -39,8 +39,8 @@
#include "dirdef.h"
#include "dirdef.h"
#include "vhdldocgen.h"
#include "vhdldocgen.h"
#define DBG_RTF(x) x;
//
#define DBG_RTF(x) x;
//
#define DBG_RTF(x)
#define DBG_RTF(x)
static
QCString
dateToRTFDateString
()
static
QCString
dateToRTFDateString
()
{
{
...
...
src/scanner.l
View file @
0c751ba9
...
@@ -772,6 +772,10 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
...
@@ -772,6 +772,10 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
<FindMembersPHP>"<?"("php"?) { // PHP code start
<FindMembersPHP>"<?"("php"?) { // PHP code start
BEGIN( FindMembers );
BEGIN( FindMembers );
}
}
<FindMembersPHP>"<script"{BN}+"language"{BN}*"="{BN}*['"]?"php"['"]?{BN}*">" { // PHP code start
lineCount() ;
BEGIN( FindMembers );
}
<FindMembersPHP>[^\n<]+ { // Non-PHP code text, ignore
<FindMembersPHP>[^\n<]+ { // Non-PHP code text, ignore
}
}
<FindMembersPHP>\n { // Non-PHP code text, ignore
<FindMembersPHP>\n { // Non-PHP code text, ignore
...
@@ -779,7 +783,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
...
@@ -779,7 +783,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
}
<FindMembersPHP>. { // Non-PHP code text, ignore
<FindMembersPHP>. { // Non-PHP code text, ignore
}
}
<FindMembers>"?>"
{ // PHP code end
<FindMembers>"?>"
|"</script>"
{ // PHP code end
if (insidePHP)
if (insidePHP)
BEGIN( FindMembersPHP );
BEGIN( FindMembersPHP );
else
else
...
@@ -5368,12 +5372,13 @@ static void handleCommentBlock(const QCString &doc,bool brief)
...
@@ -5368,12 +5372,13 @@ static void handleCommentBlock(const QCString &doc,bool brief)
bool needsEntry=FALSE;
bool needsEntry=FALSE;
if (docBlockInBody && hideInBodyDocs) return;
if (docBlockInBody && hideInBodyDocs) return;
//printf("parseCommentBlock [%s]\n",doc.data());
//printf("parseCommentBlock [%s]\n",doc.data());
int lineNr = brief ? current->briefLine : current->docLine; // line of block start
while (parseCommentBlock(
while (parseCommentBlock(
g_thisParser,
g_thisParser,
docBlockInBody && previous ? previous : current,
docBlockInBody && previous ? previous : current,
doc, // text
doc, // text
yyFileName, // file
yyFileName, // file
brief ? current->briefLine : current->docLine,
// line of block start
lineNr,
// line of block start
docBlockInBody ? FALSE : brief,
docBlockInBody ? FALSE : brief,
docBlockInBody ? FALSE : docBlockAutoBrief,
docBlockInBody ? FALSE : docBlockAutoBrief,
docBlockInBody,
docBlockInBody,
...
...
src/search.js
View file @
0c751ba9
...
@@ -238,10 +238,10 @@ function SearchBox(name, resultsPath, inFrame, label)
...
@@ -238,10 +238,10 @@ function SearchBox(name, resultsPath, inFrame, label)
if
(
child
.
className
==
'SelectItem'
)
if
(
child
.
className
==
'SelectItem'
)
{
{
var
node
=
child
.
firstChild
;
var
node
=
child
.
firstChild
;
if
(
j
==
id
)
if
(
j
==
id
)
{
{
node
.
innerHTML
=
'•'
;
node
.
innerHTML
=
'•'
;
}
}
else
else
{
{
node
.
innerHTML
=
' '
;
node
.
innerHTML
=
' '
;
...
@@ -324,7 +324,7 @@ function SearchBox(name, resultsPath, inFrame, label)
...
@@ -324,7 +324,7 @@ function SearchBox(name, resultsPath, inFrame, label)
var
resultsPageWithSearch
;
var
resultsPageWithSearch
;
var
hasResultsPage
;
var
hasResultsPage
;
if
(
indexSectionsWithContent
[
this
.
searchIndex
].
charAt
(
code
-
32
)
==
'1'
)
if
(
indexSectionsWithContent
[
this
.
searchIndex
].
charAt
(
code
)
==
'1'
)
{
{
resultsPage
=
this
.
resultsPath
+
'/'
+
indexSectionNames
[
this
.
searchIndex
]
+
'_'
+
hexCode
+
'.html'
;
resultsPage
=
this
.
resultsPath
+
'/'
+
indexSectionNames
[
this
.
searchIndex
]
+
'_'
+
hexCode
+
'.html'
;
resultsPageWithSearch
=
resultsPage
+
'?'
+
escape
(
searchValue
);
resultsPageWithSearch
=
resultsPage
+
'?'
+
escape
(
searchValue
);
...
@@ -453,20 +453,20 @@ function SearchResults(name)
...
@@ -453,20 +453,20 @@ function SearchResults(name)
if
(
element
)
if
(
element
)
{
{
if
(
element
.
style
.
display
==
'block'
)
if
(
element
.
style
.
display
==
'block'
)
{
{
element
.
style
.
display
=
'none'
;
element
.
style
.
display
=
'none'
;
}
}
else
else
{
{
element
.
style
.
display
=
'block'
;
element
.
style
.
display
=
'block'
;
}
}
}
}
}
}
// Searches for the passed string. If there is no parameter,
// Searches for the passed string. If there is no parameter,
// it takes it from the URL query.
// it takes it from the URL query.
//
//
// Always returns true, since other documents may try to call it
// Always returns true, since other documents may try to call it
// and that may or may not be possible.
// and that may or may not be possible.
this
.
Search
=
function
(
search
)
this
.
Search
=
function
(
search
)
{
{
...
@@ -501,20 +501,20 @@ function SearchResults(name)
...
@@ -501,20 +501,20 @@ function SearchResults(name)
matches
++
;
matches
++
;
}
}
else
else
{
{
row
.
style
.
display
=
'none'
;
row
.
style
.
display
=
'none'
;
}
}
}
}
i
++
;
i
++
;
}
}
document
.
getElementById
(
"Searching"
).
style
.
display
=
'none'
;
document
.
getElementById
(
"Searching"
).
style
.
display
=
'none'
;
if
(
matches
==
0
)
// no results
if
(
matches
==
0
)
// no results
{
{
document
.
getElementById
(
"NoMatches"
).
style
.
display
=
'block'
;
document
.
getElementById
(
"NoMatches"
).
style
.
display
=
'block'
;
}
}
else
// at least one result
else
// at least one result
{
{
document
.
getElementById
(
"NoMatches"
).
style
.
display
=
'none'
;
document
.
getElementById
(
"NoMatches"
).
style
.
display
=
'none'
;
}
}
this
.
lastMatchCount
=
matches
;
this
.
lastMatchCount
=
matches
;
return
true
;
return
true
;
...
@@ -606,9 +606,9 @@ function SearchResults(name)
...
@@ -606,9 +606,9 @@ function SearchResults(name)
while
(
1
)
// search for last child
while
(
1
)
// search for last child
{
{
tmpElem
=
document
.
getElementById
(
'Item'
+
newIndex
+
'_c'
+
n
);
tmpElem
=
document
.
getElementById
(
'Item'
+
newIndex
+
'_c'
+
n
);
if
(
tmpElem
)
if
(
tmpElem
)
{
{
focusItem
=
tmpElem
;
focusItem
=
tmpElem
;
}
}
else
// found it!
else
// found it!
{
{
...
...
src/search_js.h
View file @
0c751ba9
...
@@ -238,10 +238,10 @@
...
@@ -238,10 +238,10 @@
" if (child.className=='SelectItem')
\n
"
" if (child.className=='SelectItem')
\n
"
" {
\n
"
" {
\n
"
" var node = child.firstChild;
\n
"
" var node = child.firstChild;
\n
"
"
if (j==id)
\n
"
"
if (j==id)
\n
"
"
{
\n
"
"
{
\n
"
" node.innerHTML='•';
\n
"
" node.innerHTML='•';
\n
"
" }
\n
"
" }
\n
"
" else
\n
"
" else
\n
"
" {
\n
"
" {
\n
"
" node.innerHTML=' ';
\n
"
" node.innerHTML=' ';
\n
"
...
@@ -324,7 +324,7 @@
...
@@ -324,7 +324,7 @@
" var resultsPageWithSearch;
\n
"
" var resultsPageWithSearch;
\n
"
" var hasResultsPage;
\n
"
" var hasResultsPage;
\n
"
"
\n
"
"
\n
"
" if (indexSectionsWithContent[this.searchIndex].charAt(code
-32
) == '1')
\n
"
" if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1')
\n
"
" {
\n
"
" {
\n
"
" resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
\n
"
" resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
\n
"
" resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
\n
"
" resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
\n
"
...
@@ -453,20 +453,20 @@
...
@@ -453,20 +453,20 @@
" if (element)
\n
"
" if (element)
\n
"
" {
\n
"
" {
\n
"
" if (element.style.display == 'block')
\n
"
" if (element.style.display == 'block')
\n
"
" {
\n
"
" {
\n
"
" element.style.display = 'none';
\n
"
" element.style.display = 'none';
\n
"
" }
\n
"
" }
\n
"
" else
\n
"
" else
\n
"
" {
\n
"
" {
\n
"
" element.style.display = 'block';
\n
"
" element.style.display = 'block';
\n
"
" }
\n
"
" }
\n
"
" }
\n
"
" }
\n
"
" }
\n
"
" }
\n
"
"
\n
"
"
\n
"
" // Searches for the passed string. If there is no parameter,
\n
"
" // Searches for the passed string. If there is no parameter,
\n
"
" // it takes it from the URL query.
\n
"
" // it takes it from the URL query.
\n
"
" //
\n
"
" //
\n
"
" // Always returns true, since other documents may try to call it
\n
"
" // Always returns true, since other documents may try to call it
\n
"
" // and that may or may not be possible.
\n
"
" // and that may or may not be possible.
\n
"
" this.Search = function(search)
\n
"
" this.Search = function(search)
\n
"
" {
\n
"
" {
\n
"
...
@@ -501,20 +501,20 @@
...
@@ -501,20 +501,20 @@
" matches++;
\n
"
" matches++;
\n
"
" }
\n
"
" }
\n
"
" else
\n
"
" else
\n
"
" {
\n
"
" {
\n
"
" row.style.display = 'none';
\n
"
" row.style.display = 'none';
\n
"
" }
\n
"
" }
\n
"
" }
\n
"
" }
\n
"
" i++;
\n
"
" i++;
\n
"
" }
\n
"
" }
\n
"
" document.getElementById(
\"
Searching
\"
).style.display='none';
\n
"
" document.getElementById(
\"
Searching
\"
).style.display='none';
\n
"
" if (matches == 0) // no results
\n
"
" if (matches == 0) // no results
\n
"
" {
\n
"
" {
\n
"
" document.getElementById(
\"
NoMatches
\"
).style.display='block';
\n
"
" document.getElementById(
\"
NoMatches
\"
).style.display='block';
\n
"
" }
\n
"
" }
\n
"
" else // at least one result
\n
"
" else // at least one result
\n
"
" {
\n
"
" {
\n
"
" document.getElementById(
\"
NoMatches
\"
).style.display='none';
\n
"
" document.getElementById(
\"
NoMatches
\"
).style.display='none';
\n
"
" }
\n
"
" }
\n
"
" this.lastMatchCount = matches;
\n
"
" this.lastMatchCount = matches;
\n
"
" return true;
\n
"
" return true;
\n
"
...
@@ -606,9 +606,9 @@
...
@@ -606,9 +606,9 @@
" while (1) // search for last child
\n
"
" while (1) // search for last child
\n
"
" {
\n
"
" {
\n
"
" tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
\n
"
" tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
\n
"
" if (tmpElem)
\n
"
" if (tmpElem)
\n
"
" {
\n
"
" {
\n
"
" focusItem = tmpElem;
\n
"
" focusItem = tmpElem;
\n
"
" }
\n
"
" }
\n
"
" else // found it!
\n
"
" else // found it!
\n
"
" {
\n
"
" {
\n
"
...
...
src/translator_fr.h
View file @
0c751ba9
This diff is collapsed.
Click to expand it.
src/util.cpp
View file @
0c751ba9
...
@@ -3136,13 +3136,10 @@ static QCString getCanonicalTypeForIdentifier(
...
@@ -3136,13 +3136,10 @@ static QCString getCanonicalTypeForIdentifier(
//printf(" mtype=%s\n",mType?mType->name().data():"<none>");
//printf(" mtype=%s\n",mType?mType->name().data():"<none>");
if
(
cd
&&
cd
==
d
)
if
(
cd
)
// resolves to a known class type
{
if
(
tSpec
)
*
tSpec
=
""
;
return
""
;
}
else
if
(
cd
)
// resolves to a known class type
{
{
if
(
cd
==
d
&&
tSpec
)
*
tSpec
=
""
;
if
(
mType
&&
mType
->
isTypedef
())
// but via a typedef
if
(
mType
&&
mType
->
isTypedef
())
// but via a typedef
{
{
result
=
resolvedType
;
result
=
resolvedType
;
...
@@ -3248,7 +3245,8 @@ static QCString extractCanonicalType(Definition *d,FileDef *fs,QCString type)
...
@@ -3248,7 +3245,8 @@ static QCString extractCanonicalType(Definition *d,FileDef *fs,QCString type)
{
{
canType
+=
ct
;
canType
+=
ct
;
}
}
//printf(" word=%s templSpec=%s canType=%s\n",word.data(),templSpec.data(),canType.data());
//printf(" word=%s templSpec=%s canType=%s ct=%s\n",
// word.data(),templSpec.data(),canType.data(),ct.data());
if
(
!
templSpec
.
isEmpty
())
// if we didn't use up the templSpec already
if
(
!
templSpec
.
isEmpty
())
// if we didn't use up the templSpec already
// (i.e. type is not a template specialization)
// (i.e. type is not a template specialization)
// then resolve any identifiers inside.
// then resolve any identifiers inside.
...
@@ -4095,16 +4093,14 @@ static bool getScopeDefs(const char *docScope,const char *scope,
...
@@ -4095,16 +4093,14 @@ static bool getScopeDefs(const char *docScope,const char *scope,
return
FALSE
;
return
FALSE
;
}
}
//static bool isLowerCase(QCString &s)
static
bool
isLowerCase
(
QCString
&
s
)
//{
{
// char *p=s.data();
char
*
p
=
s
.
data
();
// if (p==0) return TRUE;
if
(
p
==
0
)
return
TRUE
;
// int c;
int
c
;
// while ((c=*p++)) if (!islower(c)) return FALSE;
while
((
c
=*
p
++
))
if
(
!
islower
(
c
))
return
FALSE
;
// return TRUE;
return
TRUE
;
//}
}
/*! Returns an object to reference to given its name and context
/*! Returns an object to reference to given its name and context
* @post return value TRUE implies *resContext!=0 or *resMember!=0
* @post return value TRUE implies *resContext!=0 or *resMember!=0
...
@@ -4136,10 +4132,12 @@ bool resolveRef(/* in */ const char *scName,
...
@@ -4136,10 +4132,12 @@ bool resolveRef(/* in */ const char *scName,
ClassDef
*
cd
=
0
;
ClassDef
*
cd
=
0
;
NamespaceDef
*
nd
=
0
;
NamespaceDef
*
nd
=
0
;
//if (!inSeeBlock && scopePos==-1 && isLowerCase(tsName))
// the following if() was commented out for releases in the range
//{ // link to lower case only name => do not try to autolink
// 1.5.2 to 1.6.1, but has been restored as a result of bug report 594787.
// return FALSE;
if
(
!
inSeeBlock
&&
scopePos
==-
1
&&
isLowerCase
(
tsName
))
//}
{
// link to lower case only name => do not try to autolink
return
FALSE
;
}
//printf("scName=%s fullName=%s\n",scName,fullName.data());
//printf("scName=%s fullName=%s\n",scName,fullName.data());
...
...
src/vhdlcode.l
View file @
0c751ba9
...
@@ -237,9 +237,10 @@ static void startCodeLine()
...
@@ -237,9 +237,10 @@ static void startCodeLine()
}
}
}
}
static void endFontClass();
static void endCodeLine()
static void endCodeLine()
{
{
if (g_currentFontClass) { g_code->endFontClass(); }
endFontClass();
g_code->endCodeLine();
g_code->endCodeLine();
}
}
...
...
src/vhdlscanner.l
View file @
0c751ba9
...
@@ -1704,6 +1704,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
...
@@ -1704,6 +1704,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
int position=0;
int position=0;
bool needsEntry=FALSE;
bool needsEntry=FALSE;
Protection protection=Public;
Protection protection=Public;
int lineNr = iDocLine;
if (brief)
if (brief)
current->briefLine = iDocLine;
current->briefLine = iDocLine;
else
else
...
@@ -1715,7 +1716,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
...
@@ -1715,7 +1716,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
current,
current,
doc, // text
doc, // text
yyFileName, // file
yyFileName, // file
iDocLine,
// line of block start
lineNr,
// line of block start
brief,
brief,
docBlockAutoBrief,
docBlockAutoBrief,
FALSE,
FALSE,
...
...
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