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
bb18b811
Commit
bb18b811
authored
Aug 12, 2004
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.3.8-20040812
parent
6e8975ab
Changes
37
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
858 additions
and
1539 deletions
+858
-1539
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
Makefile.in
doc/Makefile.in
+1
-1
config.doc
doc/config.doc
+5
-3
language.doc
doc/language.doc
+13
-13
maintainers.txt
doc/maintainers.txt
+6
-5
translator.py
doc/translator.py
+18
-3
translator_report.txt
doc/translator_report.txt
+407
-959
trouble.doc
doc/trouble.doc
+2
-0
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+3
-1
commentcnv.l
src/commentcnv.l
+7
-2
config.l
src/config.l
+3
-1
definition.cpp
src/definition.cpp
+1
-4
docparser.cpp
src/docparser.cpp
+5
-3
doctokenizer.l
src/doctokenizer.l
+2
-1
doxygen.cpp
src/doxygen.cpp
+259
-265
filedef.cpp
src/filedef.cpp
+1
-1
groupdef.cpp
src/groupdef.cpp
+9
-2
htmldocvisitor.cpp
src/htmldocvisitor.cpp
+3
-4
htmlgen.cpp
src/htmlgen.cpp
+17
-15
htmlgen.h
src/htmlgen.h
+5
-2
mandocvisitor.cpp
src/mandocvisitor.cpp
+4
-0
memberdef.cpp
src/memberdef.cpp
+12
-9
memberdef.h
src/memberdef.h
+14
-11
memberlist.cpp
src/memberlist.cpp
+2
-2
namespacedef.cpp
src/namespacedef.cpp
+2
-3
pre.l
src/pre.l
+2
-1
rtfgen.cpp
src/rtfgen.cpp
+2
-2
scanner.l
src/scanner.l
+14
-2
search.php
src/search.php
+4
-4
search_php.h
src/search_php.h
+4
-4
searchindex.cpp
src/searchindex.cpp
+5
-3
translator_adapter.h
src/translator_adapter.h
+1
-200
util.cpp
src/util.cpp
+17
-6
util.h
src/util.h
+2
-1
No files found.
INSTALL
View file @
bb18b811
DOXYGEN Version 1.3.8-200408
03
DOXYGEN Version 1.3.8-200408
12
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 (
03
August 2004)
Dimitri van Heesch (
12
August 2004)
README
View file @
bb18b811
DOXYGEN Version 1.3.8_200408
03
DOXYGEN Version 1.3.8_200408
12
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) (
03
August 2004)
Dimitri van Heesch (dimitri@stack.nl) (
12
August 2004)
VERSION
View file @
bb18b811
1.3.8-200408
03
1.3.8-200408
12
doc/Makefile.in
View file @
bb18b811
...
@@ -26,7 +26,7 @@ all: language FORCE
...
@@ -26,7 +26,7 @@ all: language FORCE
@
epstopdf doxygen_logo.eps
--outfile
=
../latex/doxygen_logo.pdf
@
epstopdf doxygen_logo.eps
--outfile
=
../latex/doxygen_logo.pdf
clean
:
clean
:
rm
-rf
../html ../latex
*
.bak
translator_report.txt
rm
-rf
../html ../latex
*
.bak
language
:
language.doc
language
:
language.doc
...
...
doc/config.doc
View file @
bb18b811
...
@@ -932,7 +932,7 @@ function's detailed documentation block.
...
@@ -932,7 +932,7 @@ function's detailed documentation block.
<dt>\c HTML_FOOTER <dd>
<dt>\c HTML_FOOTER <dd>
\addindex HTML_FOOTER
\addindex HTML_FOOTER
The \c HTML_FOOTER tag can be used to specify a user-defined HTML footer for
The \c HTML_FOOTER tag can be used to specify a user-defined HTML footer for
each generated HTML page. To get valid HTML the
head
er file should contain
each generated HTML page. To get valid HTML the
foot
er file should contain
at least a \c \</BODY\> and a \c \</HTML\> tag. A minimal example:
at least a \c \</BODY\> and a \c \</HTML\> tag. A minimal example:
\verbatim
\verbatim
</BODY>
</BODY>
...
@@ -940,7 +940,7 @@ function's detailed documentation block.
...
@@ -940,7 +940,7 @@ function's detailed documentation block.
\endverbatim
\endverbatim
If the tag is left blank doxygen will generate a standard footer.
If the tag is left blank doxygen will generate a standard footer.
The following commands have a special meaning inside the
head
er:
The following commands have a special meaning inside the
foot
er:
<code>\$title</code>, <code>\$datetime</code>, <code>\$date</code>,
<code>\$title</code>, <code>\$datetime</code>, <code>\$date</code>,
<code>\$doxygenversion</code>, <code>\$projectname</code>,
<code>\$doxygenversion</code>, <code>\$projectname</code>,
<code>\$projectnumber</code>.
<code>\$projectnumber</code>.
...
@@ -1412,7 +1412,9 @@ EXTRA_PACKAGES = times
...
@@ -1412,7 +1412,9 @@ EXTRA_PACKAGES = times
are defined before the preprocessor is started (similar to the -D option of
are defined before the preprocessor is started (similar to the -D option of
gcc). The argument of the tag is a list of macros of the form:
gcc). The argument of the tag is a list of macros of the form:
<code>name</code> or <code>name=definition</code> (no spaces).
<code>name</code> or <code>name=definition</code> (no spaces).
If the definition and the "=" are omitted, "=1" is assumed.
If the definition and the "=" are omitted, "=1" is assumed. To prevent
a macro definition from being undefined via #undef or recursively expanded
use the := operator instead of the = operator.
\anchor cfg_expand_as_defined
\anchor cfg_expand_as_defined
<dt>\c EXPAND_AS_DEFINED <dd>
<dt>\c EXPAND_AS_DEFINED <dd>
...
...
doc/language.doc
View file @
bb18b811
...
@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other
...
@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other
than English (the default). The output language is chosen through the
than English (the default). The output language is chosen through the
configuration file (with default name and known as Doxyfile).
configuration file (with default name and known as Doxyfile).
Currently (version 1.3.8), 30 languages
Currently (version 1.3.8
-20040803
), 30 languages
are supported (sorted alphabetically):
are supported (sorted alphabetically):
Afrikaans, Brazilian Portuguese, Catalan, Chinese, Chinese
Afrikaans, Brazilian Portuguese, Catalan, Chinese, Chinese
Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French,
Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French,
...
@@ -95,8 +95,8 @@ when the translator was updated.
...
@@ -95,8 +95,8 @@ when the translator was updated.
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
<td>Danish</td>
<td>Danish</td>
<td>Erik Søe Sørensen</td>
<td>Erik Søe Sørensen</td>
<td>erik
at mail dot nu
</td>
<td>erik
soe+doxygen at daimi dot au dot dk
</td>
<td>
1.3.8
</td>
<td>
up-to-date
</td>
</tr>
</tr>
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
<td>Dutch</td>
<td>Dutch</td>
...
@@ -113,7 +113,7 @@ when the translator was updated.
...
@@ -113,7 +113,7 @@ when the translator was updated.
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
<td>Finnish</td>
<td>Finnish</td>
<td>Olli Korhonen</td>
<td>Olli Korhonen</td>
<td>
Olli.Korhonen at ccc dot fi
</td>
<td>
olli.korhonen lost at cyberspace
</td>
<td>obsolete</td>
<td>obsolete</td>
</tr>
</tr>
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
...
@@ -137,7 +137,7 @@ when the translator was updated.
...
@@ -137,7 +137,7 @@ when the translator was updated.
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
<td>Hungarian</td>
<td>Hungarian</td>
<td>Földvári György<br>Ákos Kiss</td>
<td>Földvári György<br>Ákos Kiss</td>
<td>foldvari
at diatronltd dot com
<br>akiss at users dot sourceforge dot net</td>
<td>foldvari
lost at cyberspace
<br>akiss at users dot sourceforge dot net</td>
<td>1.3.8</td>
<td>1.3.8</td>
</tr>
</tr>
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
...
@@ -220,8 +220,8 @@ when the translator was updated.
...
@@ -220,8 +220,8 @@ when the translator was updated.
</tr>
</tr>
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
<td>Slovene</td>
<td>Slovene</td>
<td>Matja
z Ostrovers
nik</td>
<td>Matja
ž Ostroverš
nik</td>
<td>matjaz.ostroversnik at z
rs-tk
dot si</td>
<td>matjaz.ostroversnik at z
tm
dot si</td>
<td>1.2.16</td>
<td>1.2.16</td>
</tr>
</tr>
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
...
@@ -239,7 +239,7 @@ when the translator was updated.
...
@@ -239,7 +239,7 @@ when the translator was updated.
<tr bgcolor="#ffffff">
<tr bgcolor="#ffffff">
<td>Ukrainian</td>
<td>Ukrainian</td>
<td>Olexij Tkatchenko</td>
<td>Olexij Tkatchenko</td>
<td>olexij.tkatchenko at
gmx
dot de</td>
<td>olexij.tkatchenko at
parcs
dot de</td>
<td>1.2.11</td>
<td>1.2.11</td>
</tr>
</tr>
<!-- table content end -->
<!-- table content end -->
...
@@ -273,13 +273,13 @@ when the translator was updated.
...
@@ -273,13 +273,13 @@ when the translator was updated.
\hline
\hline
Czech & Petr P\v{r}ikryl & {\tt\tiny prikrylp@skil.cz} & up-to-date \\
Czech & Petr P\v{r}ikryl & {\tt\tiny prikrylp@skil.cz} & up-to-date \\
\hline
\hline
Danish & Erik S\o{}e S\o{}rensen & {\tt\tiny erik
@mail.nu} & 1.3.8
\\
Danish & Erik S\o{}e S\o{}rensen & {\tt\tiny erik
soe+doxygen@daimi.au.dk} & up-to-date
\\
\hline
\hline
Dutch & Dimitri van Heesch & {\tt\tiny dimitri@stack.nl} & up-to-date \\
Dutch & Dimitri van Heesch & {\tt\tiny dimitri@stack.nl} & up-to-date \\
\hline
\hline
English & Dimitri van Heesch & {\tt\tiny dimitri@stack.nl} & up-to-date \\
English & Dimitri van Heesch & {\tt\tiny dimitri@stack.nl} & up-to-date \\
\hline
\hline
Finnish & Olli Korhonen & {\tt\tiny
Olli.Korhonen@ccc.fi
} & obsolete \\
Finnish & Olli Korhonen & {\tt\tiny
olli.korhonen lost@cyberspace
} & obsolete \\
\hline
\hline
French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.3.8 \\
French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.3.8 \\
\hline
\hline
...
@@ -287,7 +287,7 @@ when the translator was updated.
...
@@ -287,7 +287,7 @@ when the translator was updated.
\hline
\hline
Greek & Harry Kalogirou & {\tt\tiny harkal@rainbow.cs.unipi.gr} & 1.2.11 \\
Greek & Harry Kalogirou & {\tt\tiny harkal@rainbow.cs.unipi.gr} & 1.2.11 \\
\hline
\hline
Hungarian & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt\tiny foldvari
@diatronltd.com
} & 1.3.8 \\
Hungarian & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt\tiny foldvari
lost@cyberspace
} & 1.3.8 \\
~ & \'{A}kos Kiss & {\tt\tiny akiss@users.sourceforge.net} & ~ \\
~ & \'{A}kos Kiss & {\tt\tiny akiss@users.sourceforge.net} & ~ \\
\hline
\hline
Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\
Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\
...
@@ -322,13 +322,13 @@ when the translator was updated.
...
@@ -322,13 +322,13 @@ when the translator was updated.
\hline
\hline
Slovak & Stanislav Kudl\'{a}\v{c} & {\tt\tiny skudlac@pobox.sk} & 1.2.18 \\
Slovak & Stanislav Kudl\'{a}\v{c} & {\tt\tiny skudlac@pobox.sk} & 1.2.18 \\
\hline
\hline
Slovene & Matja
z Ostroversnik & {\tt\tiny matjaz.ostroversnik@zrs-tk
.si} & 1.2.16 \\
Slovene & Matja
\v{z} Ostrover\v{s}nik & {\tt\tiny matjaz.ostroversnik@ztm
.si} & 1.2.16 \\
\hline
\hline
Spanish & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & 1.3.8 \\
Spanish & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & 1.3.8 \\
\hline
\hline
Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.3.8 \\
Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.3.8 \\
\hline
\hline
Ukrainian & Olexij Tkatchenko & {\tt\tiny olexij.tkatchenko@
gmx
.de} & 1.2.11 \\
Ukrainian & Olexij Tkatchenko & {\tt\tiny olexij.tkatchenko@
parcs
.de} & 1.2.11 \\
\hline
\hline
\end{tabular}
\end{tabular}
\endlatexonly
\endlatexonly
...
...
doc/maintainers.txt
View file @
bb18b811
...
@@ -33,7 +33,7 @@ TranslatorCzech
...
@@ -33,7 +33,7 @@ TranslatorCzech
Petr Přikryl: prikrylp@skil.cz
Petr Přikryl: prikrylp@skil.cz
TranslatorDanish
TranslatorDanish
Erik Søe Sørensen: erik
@mail.nu
Erik Søe Sørensen: erik
soe+doxygen@daimi.au.dk
TranslatorDutch
TranslatorDutch
Dimitri van Heesch: dimitri@stack.nl
Dimitri van Heesch: dimitri@stack.nl
...
@@ -42,7 +42,7 @@ TranslatorEnglish
...
@@ -42,7 +42,7 @@ TranslatorEnglish
Dimitri van Heesch: dimitri@stack.nl
Dimitri van Heesch: dimitri@stack.nl
TranslatorFinnish
TranslatorFinnish
Olli Korhonen:
Olli.Korhonen@ccc.fi
Olli Korhonen:
olli.korhonen lost@cyberspace
TranslatorFrench
TranslatorFrench
Xavier Outhier: xouthier@yahoo.fr
Xavier Outhier: xouthier@yahoo.fr
...
@@ -54,7 +54,7 @@ TranslatorGreek
...
@@ -54,7 +54,7 @@ TranslatorGreek
Harry Kalogirou: harkal@rainbow.cs.unipi.gr
Harry Kalogirou: harkal@rainbow.cs.unipi.gr
TranslatorHungarian
TranslatorHungarian
Földvári György: foldvari
@diatronltd.com
Földvári György: foldvari
lost@cyberspace
Ákos Kiss: akiss@users.sourceforge.net
Ákos Kiss: akiss@users.sourceforge.net
TranslatorItalian
TranslatorItalian
...
@@ -97,7 +97,7 @@ TranslatorSlovak
...
@@ -97,7 +97,7 @@ TranslatorSlovak
Stanislav Kudláč: skudlac@pobox.sk
Stanislav Kudláč: skudlac@pobox.sk
TranslatorSlovene
TranslatorSlovene
Matja
z Ostroversnik: matjaz.ostroversnik@zrs-tk
.si
Matja
ž Ostroveršnik: matjaz.ostroversnik@ztm
.si
TranslatorSpanish
TranslatorSpanish
Francisco Oltra Thennet: foltra@puc.cl
Francisco Oltra Thennet: foltra@puc.cl
...
@@ -106,5 +106,6 @@ TranslatorSwedish
...
@@ -106,5 +106,6 @@ TranslatorSwedish
Mikael Hallin: mikaelhallin@yahoo.se
Mikael Hallin: mikaelhallin@yahoo.se
TranslatorUkrainian
TranslatorUkrainian
Olexij Tkatchenko: olexij.tkatchenko@gmx.de
Olexij Tkatchenko: olexij.tkatchenko@parcs.de
doc/translator.py
View file @
bb18b811
...
@@ -41,7 +41,8 @@
...
@@ -41,7 +41,8 @@
- Plural not used for reporting a single missing method.
- Plural not used for reporting a single missing method.
- Removal of not used translator adapters is suggested only
- Removal of not used translator adapters is suggested only
when the report is not restricted to selected languages
when the report is not restricted to selected languages
explicitly via script arguments
explicitly via script arguments.
2004/07/26 - Better reporting of not-needed adapters.
"""
"""
from
__future__
import
generators
from
__future__
import
generators
...
@@ -1440,10 +1441,24 @@ class TrManager:
...
@@ -1440,10 +1441,24 @@ class TrManager:
# i.e. all languages were checked against the needed translator
# i.e. all languages were checked against the needed translator
# adapters.
# adapters.
if
not
self
.
script_argLst
:
if
not
self
.
script_argLst
:
to_remove
=
{}
for
version
,
adaptClassId
in
self
.
adaptMethodsDic
.
values
():
for
version
,
adaptClassId
in
self
.
adaptMethodsDic
.
values
():
if
version
<
adaptMinVersion
:
if
version
<
adaptMinVersion
:
f
.
write
(
'
\n
Note: The
%
s class '
%
adaptClassId
)
to_remove
[
adaptClassId
]
=
True
f
.
write
(
'is not used and can be removed.
\n
'
)
if
to_remove
:
lst
=
to_remove
.
keys
()
lst
.
sort
()
plural
=
len
(
lst
)
>
1
note
=
'Note: The adapter class'
if
plural
:
note
+=
'es'
note
+=
' '
+
', '
.
join
(
lst
)
if
not
plural
:
note
+=
' is'
else
:
note
+=
' are'
note
+=
' not used and can be removed.'
f
.
write
(
'
\n
'
+
fill
(
note
)
+
'
\n
'
)
# Write the list of the English-based classes.
# Write the list of the English-based classes.
if
self
.
EnBasedIdLst
:
if
self
.
EnBasedIdLst
:
...
...
doc/translator_report.txt
View file @
bb18b811
This diff is collapsed.
Click to expand it.
doc/trouble.doc
View file @
bb18b811
...
@@ -71,6 +71,8 @@
...
@@ -71,6 +71,8 @@
<li>Version 1.8.6 of dot (and maybe earlier versions too) do not
<li>Version 1.8.6 of dot (and maybe earlier versions too) do not
generate proper map files, causing the graphs that doxygen generates
generate proper map files, causing the graphs that doxygen generates
not to be properly clickable.
not to be properly clickable.
<li>PHP only: Doxygen requires that all PHP statements (i.e. code) is
wrapped in a functions/methods, otherwise you may run into parse problems.
</ul>
</ul>
...
...
packages/rpm/doxygen.spec
View file @
bb18b811
Summary: A documentation system for C/C++.
Summary: A documentation system for C/C++.
Name: doxygen
Name: doxygen
Version: 1.3.8_200408
03
Version: 1.3.8_200408
12
Release: 1
Release: 1
Epoch: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
...
...
src/classdef.cpp
View file @
bb18b811
...
@@ -955,7 +955,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -955,7 +955,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
if
(
Config_getBool
(
"SEARCHENGINE"
))
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
addWord
(
localName
()
.
lower
()
);
Doxygen
::
searchIndex
->
addWord
(
localName
());
}
}
ol
.
startTextBlock
();
ol
.
startTextBlock
();
...
@@ -2823,6 +2823,8 @@ QCString ClassDef::className() const
...
@@ -2823,6 +2823,8 @@ QCString ClassDef::className() const
void
ClassDef
::
addListReferences
()
void
ClassDef
::
addListReferences
()
{
{
if
(
!
isLinkableInProject
())
return
;
//printf("ClassDef(%s)::addListReferences()\n",name().data());
addRefItem
(
xrefListItems
(),
addRefItem
(
xrefListItems
(),
theTranslator
->
trClass
(
TRUE
,
TRUE
),
theTranslator
->
trClass
(
TRUE
,
TRUE
),
getOutputFileBase
(),
displayName
()
getOutputFileBase
(),
displayName
()
...
...
src/commentcnv.l
View file @
bb18b811
...
@@ -243,12 +243,16 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'"))
...
@@ -243,12 +243,16 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'"))
g_readLineCtx=YY_START;
g_readLineCtx=YY_START;
BEGIN(ReadLine);
BEGIN(ReadLine);
}
}
<SComment>^[ \t]*"//!"/.*\n {
<SComment>^[ \t]*"//!" | // just //!
<SComment>^[ \t]*"//!<"/.*\n | // or //!< something
<SComment>^[ \t]*"//!"[^<]/.*\n { // or //!something
replaceComment(0);
replaceComment(0);
g_readLineCtx=YY_START;
g_readLineCtx=YY_START;
BEGIN(ReadLine);
BEGIN(ReadLine);
}
}
<SComment>\n[ \t]*"//!"/.*\n {
<SComment>\n[ \t]*"//!" |
<SComment>\n[ \t]*"//!<"/.*\n |
<SComment>\n[ \t]*"//!"[^<]/.*\n {
replaceComment(1);
replaceComment(1);
g_readLineCtx=YY_START;
g_readLineCtx=YY_START;
BEGIN(ReadLine);
BEGIN(ReadLine);
...
@@ -297,6 +301,7 @@ void replaceComment(int offset)
...
@@ -297,6 +301,7 @@ void replaceComment(int offset)
}
}
else
else
{
{
//printf("replaceComment(%s)\n",yytext);
int i=computeIndent(&yytext[offset]);
int i=computeIndent(&yytext[offset]);
if (i==g_blockHeadCol)
if (i==g_blockHeadCol)
{
{
...
...
src/config.l
View file @
bb18b811
...
@@ -2521,7 +2521,9 @@ void Config::create()
...
@@ -2521,7 +2521,9 @@ void Config::create()
"are defined before the preprocessor is started (similar to the -D option of \n"
"are defined before the preprocessor is started (similar to the -D option of \n"
"gcc). The argument of the tag is a list of macros of the form: name \n"
"gcc). The argument of the tag is a list of macros of the form: name \n"
"or name=definition (no spaces). If the definition and the = are \n"
"or name=definition (no spaces). If the definition and the = are \n"
"omitted =1 is assumed. \n"
"omitted =1 is assumed. To prevent a macro definition from being \n"
"undefined via #undef or recursively expanded use the := operator \n"
"instead of the = operator.\n"
);
);
cl->addDependency("ENABLE_PREPROCESSING");
cl->addDependency("ENABLE_PREPROCESSING");
cl = addList(
cl = addList(
...
...
src/definition.cpp
View file @
bb18b811
...
@@ -363,6 +363,7 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
...
@@ -363,6 +363,7 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
QCString
lineStr
,
anchorStr
;
QCString
lineStr
,
anchorStr
;
lineStr
.
sprintf
(
"%d"
,
m_startBodyLine
);
lineStr
.
sprintf
(
"%d"
,
m_startBodyLine
);
anchorStr
.
sprintf
(
"l%05d"
,
m_startBodyLine
);
anchorStr
.
sprintf
(
"l%05d"
,
m_startBodyLine
);
ol
.
newParagraph
();
if
(
lineMarkerPos
<
fileMarkerPos
)
// line marker before file marker
if
(
lineMarkerPos
<
fileMarkerPos
)
// line marker before file marker
{
{
// write text left from linePos marker
// write text left from linePos marker
...
@@ -432,10 +433,6 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
...
@@ -432,10 +433,6 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
{
{
err
(
"Error: translation error: invalid markers in trDefinedInSourceFile()
\n
"
);
err
(
"Error: translation error: invalid markers in trDefinedInSourceFile()
\n
"
);
}
}
ol
.
disableAllBut
(
OutputGenerator
::
RTF
);
ol
.
newParagraph
();
ol
.
enableAll
();
}
}
ol
.
popGeneratorState
();
ol
.
popGeneratorState
();
}
}
...
...
src/docparser.cpp
View file @
bb18b811
...
@@ -441,7 +441,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
...
@@ -441,7 +441,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
//printf("findDocsForMemberOrCompound(%s)\n",commandName);
//printf("findDocsForMemberOrCompound(%s)\n",commandName);
*
pDoc
=
""
;
*
pDoc
=
""
;
*
pDef
=
0
;
*
pDef
=
0
;
QString
cmdArg
=
commandName
;
QString
cmdArg
=
substitute
(
commandName
,
"#"
,
"::"
)
;
int
l
=
cmdArg
.
length
();
int
l
=
cmdArg
.
length
();
if
(
l
==
0
)
return
FALSE
;
if
(
l
==
0
)
return
FALSE
;
...
@@ -1236,7 +1236,7 @@ DocWord::DocWord(DocNode *parent,const QString &word) :
...
@@ -1236,7 +1236,7 @@ DocWord::DocWord(DocNode *parent,const QString &word) :
//printf("new word %s url=%s\n",word.data(),g_searchUrl.data());
//printf("new word %s url=%s\n",word.data(),g_searchUrl.data());
if
(
!
g_searchUrl
.
isEmpty
())
if
(
!
g_searchUrl
.
isEmpty
())
{
{
Doxygen
::
searchIndex
->
addWord
(
word
.
lower
()
);
Doxygen
::
searchIndex
->
addWord
(
word
);
}
}
}
}
...
@@ -1251,7 +1251,7 @@ DocLinkedWord::DocLinkedWord(DocNode *parent,const QString &word,
...
@@ -1251,7 +1251,7 @@ DocLinkedWord::DocLinkedWord(DocNode *parent,const QString &word,
//printf("new word %s url=%s\n",word.data(),g_searchUrl.data());
//printf("new word %s url=%s\n",word.data(),g_searchUrl.data());
if
(
!
g_searchUrl
.
isEmpty
())
if
(
!
g_searchUrl
.
isEmpty
())
{
{
Doxygen
::
searchIndex
->
addWord
(
word
.
lower
()
);
Doxygen
::
searchIndex
->
addWord
(
word
);
}
}
}
}
...
@@ -1517,6 +1517,8 @@ bool DocXRefItem::parse()
...
@@ -1517,6 +1517,8 @@ bool DocXRefItem::parse()
m_file
=
refList
->
listName
();
m_file
=
refList
->
listName
();
m_anchor
=
item
->
listAnchor
;
m_anchor
=
item
->
listAnchor
;
m_title
=
refList
->
sectionTitle
();
m_title
=
refList
->
sectionTitle
();
//printf("DocXRefItem: file=%s anchor=%s title=%s\n",
// m_file.data(),m_anchor.data(),m_title.data());
if
(
!
item
->
text
.
isEmpty
())
if
(
!
item
->
text
.
isEmpty
())
{
{
...
...
src/doctokenizer.l
View file @
bb18b811
...
@@ -283,7 +283,8 @@ URLCHAR [a-z_A-Z0-9\!\~\:\;\'\$\?\@\&\%\#\.\-\+\/\=]
...
@@ -283,7 +283,8 @@ URLCHAR [a-z_A-Z0-9\!\~\:\;\'\$\?\@\&\%\#\.\-\+\/\=]
URLMASK (([a-z_A-Z][^\>\"\n]*{URLCHAR})|({URLCHAR}+))([({]{URLCHAR}*[)}])?
URLMASK (([a-z_A-Z][^\>\"\n]*{URLCHAR})|({URLCHAR}+))([({]{URLCHAR}*[)}])?
FILESCHAR [a-z_A-Z0-9\\:\\\/\-\+]
FILESCHAR [a-z_A-Z0-9\\:\\\/\-\+]
FILEECHAR [a-z_A-Z0-9\-\+]
FILEECHAR [a-z_A-Z0-9\-\+]
FILEMASK {FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*
HFILEMASK ("."{FILESCHAR}*{FILEECHAR}+)*
FILEMASK ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|{HFILEMASK}
LINKMASK [^ \t\n\r\\@<&${}]+("("[^\n)]*")")?({BLANK}*("const"|"volatile"))?
LINKMASK [^ \t\n\r\\@<&${}]+("("[^\n)]*")")?({BLANK}*("const"|"volatile"))?
SPCMD1 {CMD}[a-z_A-Z0-9]+
SPCMD1 {CMD}[a-z_A-Z0-9]+
SPCMD2 {CMD}[\\@<>&$#%~]
SPCMD2 {CMD}[\\@<>&$#%~]
...
...
src/doxygen.cpp
View file @
bb18b811
...
@@ -1903,15 +1903,6 @@ static void buildVarList(Entry *root)
...
@@ -1903,15 +1903,6 @@ static void buildVarList(Entry *root)
}
}
p
=
p
->
parent
;
p
=
p
->
parent
;
}
}
// scope annonymous scope name at the end to determine the scope
// where we can put this variable
//while ((i=scope.findRev("::"))!=-1 && (int)scope.length()>i+2 &&
// scope.at(i+2)=='@'
// )
//{
// scope=scope.left(i);
//}
MemberDef
::
MemberType
mtype
;
MemberDef
::
MemberType
mtype
;
QCString
type
=
root
->
type
.
stripWhiteSpace
();
QCString
type
=
root
->
type
.
stripWhiteSpace
();
...
@@ -4340,6 +4331,7 @@ static void findMember(Entry *root,
...
@@ -4340,6 +4331,7 @@ static void findMember(Entry *root,
QCString
funcArgs
;
QCString
funcArgs
;
QCString
funcTempList
;
QCString
funcTempList
;
QCString
exceptions
;
QCString
exceptions
;
QCString
funcSpec
;
bool
isRelated
=
FALSE
;
bool
isRelated
=
FALSE
;
bool
isFriend
=
FALSE
;
bool
isFriend
=
FALSE
;
bool
done
;
bool
done
;
...
@@ -4449,7 +4441,7 @@ static void findMember(Entry *root,
...
@@ -4449,7 +4441,7 @@ static void findMember(Entry *root,
}
}
}
}
scopeName
=
stripTemplateSpecifiersFromScope
(
scopeName
=
stripTemplateSpecifiersFromScope
(
removeRedundantWhiteSpace
(
scopeName
),
FALSE
);
removeRedundantWhiteSpace
(
scopeName
),
FALSE
,
&
funcSpec
);
// split scope into a namespace and a class part
// split scope into a namespace and a class part
extractNamespaceName
(
scopeName
,
className
,
namespaceName
,
TRUE
);
extractNamespaceName
(
scopeName
,
className
,
namespaceName
,
TRUE
);
...
@@ -4482,8 +4474,15 @@ static void findMember(Entry *root,
...
@@ -4482,8 +4474,15 @@ static void findMember(Entry *root,
if
(
cd
)
if
(
cd
)
{
{
if
(
root
->
tArgLists
)
root
->
tArgLists
->
first
();
if
(
root
->
tArgLists
)
root
->
tArgLists
->
first
();
if
(
funcSpec
.
isEmpty
())
{
tempScopeName
=
cd
->
qualifiedNameWithTemplateParameters
(
root
->
tArgLists
);
tempScopeName
=
cd
->
qualifiedNameWithTemplateParameters
(
root
->
tArgLists
);
}
}
else
{
tempScopeName
=
scopeName
+
funcSpec
;
}
}
//printf("scopeName=%s cd=%p root->tArgLists=%p result=%s\n",
//printf("scopeName=%s cd=%p root->tArgLists=%p result=%s\n",
// scopeName.data(),cd,root->tArgLists,tempScopeName.data());
// scopeName.data(),cd,root->tArgLists,tempScopeName.data());
...
@@ -4551,6 +4550,7 @@ static void findMember(Entry *root,
...
@@ -4551,6 +4550,7 @@ static void findMember(Entry *root,
" namespaceName=`%s'
\n
"
" namespaceName=`%s'
\n
"
" className=`%s`
\n
"
" className=`%s`
\n
"
" funcType=`%s'
\n
"
" funcType=`%s'
\n
"
" funcSpec=`%s'
\n
"
" funcName=`%s'
\n
"
" funcName=`%s'
\n
"
" funcArgs=`%s'
\n
"
" funcArgs=`%s'
\n
"
" funcTempList=`%s'
\n
"
" funcTempList=`%s'
\n
"
...
@@ -4561,7 +4561,7 @@ static void findMember(Entry *root,
...
@@ -4561,7 +4561,7 @@ static void findMember(Entry *root,
" isFriend=%d
\n
"
" isFriend=%d
\n
"
" isFunc=%d
\n\n
"
,
" isFunc=%d
\n\n
"
,
namespaceName
.
data
(),
className
.
data
(),
namespaceName
.
data
(),
className
.
data
(),
funcType
.
data
(),
funcName
.
data
(),
funcArgs
.
data
(),
funcTempList
.
data
(),
funcType
.
data
(),
func
Spec
.
data
(),
func
Name
.
data
(),
funcArgs
.
data
(),
funcTempList
.
data
(),
funcDecl
.
data
(),
root
->
relates
.
data
(),
exceptions
.
data
(),
isRelated
,
isFriend
,
funcDecl
.
data
(),
root
->
relates
.
data
(),
exceptions
.
data
(),
isRelated
,
isFriend
,
isFunc
isFunc
);
);
...
@@ -4588,6 +4588,8 @@ static void findMember(Entry *root,
...
@@ -4588,6 +4588,8 @@ static void findMember(Entry *root,
Debug
::
print
(
Debug
::
FindMembers
,
0
,
Debug
::
print
(
Debug
::
FindMembers
,
0
,
"2. member name exists (%d members with this name)
\n
"
,
mn
->
count
());
"2. member name exists (%d members with this name)
\n
"
,
mn
->
count
());
if
(
!
className
.
isEmpty
())
// class name is valid
if
(
!
className
.
isEmpty
())
// class name is valid
{
if
(
funcSpec
.
isEmpty
())
// not a member specialization
{
{
int
count
=
0
;
int
count
=
0
;
MemberNameIterator
mni
(
*
mn
);
MemberNameIterator
mni
(
*
mn
);
...
@@ -4846,6 +4848,42 @@ static void findMember(Entry *root,
...
@@ -4846,6 +4848,42 @@ static void findMember(Entry *root,
}
}
}
}
}
}
else
// member specialization
{
MemberDef
::
MemberType
mtype
=
MemberDef
::
Function
;
ArgumentList
*
tArgList
=
new
ArgumentList
;
// getTemplateArgumentsFromName(cd->name()+"::"+funcName,root->tArgLists);
MemberDef
*
md
=
new
MemberDef
(
root
->
fileName
,
root
->
startLine
,
funcType
,
funcName
,
funcArgs
,
exceptions
,
root
->
protection
,
root
->
virt
,
root
->
stat
,
FALSE
,
mtype
,
tArgList
,
root
->
argList
);
//printf("new specialized member %s args=`%s'\n",md->name().data(),funcArgs.data());
if
(
root
->
tagInfo
)
{
md
->
setAnchor
(
root
->
tagInfo
->
anchor
);
md
->
setReference
(
root
->
tagInfo
->
tagName
);
}
md
->
setMemberClass
(
cd
);
md
->
setTemplateSpecialization
(
TRUE
);
md
->
setDefinition
(
funcDecl
);
md
->
enableCallGraph
(
root
->
callGraph
);
md
->
setDocumentation
(
root
->
doc
,
root
->
docFile
,
root
->
docLine
);
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
md
->
setDocsForDefinition
(
!
root
->
proto
);
md
->
setPrototype
(
root
->
proto
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
md
->
setBodySegment
(
root
->
bodyLine
,
root
->
endBodyLine
);
bool
ambig
;
FileDef
*
fd
=
findFileDef
(
Doxygen
::
inputNameDict
,
root
->
fileName
,
ambig
);
md
->
setBodyDef
(
fd
);
md
->
setMemberSpecifiers
(
root
->
memSpec
);
md
->
setMemberGroupId
(
root
->
mGrpId
);
mn
->
append
(
md
);
cd
->
insertMember
(
md
);
md
->
setRefItems
(
root
->
sli
);
}
}
else
if
(
overloaded
)
// check if the function belongs to only one class
else
if
(
overloaded
)
// check if the function belongs to only one class
{
{
// for unique overloaded member we allow the class to be
// for unique overloaded member we allow the class to be
...
@@ -6683,7 +6721,7 @@ static void generateExampleDocs()
...
@@ -6683,7 +6721,7 @@ static void generateExampleDocs()
pd
->
docLine
(),
// startLine
pd
->
docLine
(),
// startLine
pd
,
// context
pd
,
// context
0
,
// memberDef
0
,
// memberDef
pd
->
documentation
()
+
"
\n\\
include "
+
pd
->
name
(),
// docs
pd
->
documentation
()
+
"
\n\
n\
\
include "
+
pd
->
name
(),
// docs
TRUE
,
// index words
TRUE
,
// index words
TRUE
,
// is example
TRUE
,
// is example
pd
->
name
()
pd
->
name
()
...
@@ -7073,7 +7111,7 @@ static void copyAndFilterFile(const char *fileName,BufStr &dest)
...
@@ -7073,7 +7111,7 @@ static void copyAndFilterFile(const char *fileName,BufStr &dest)
}
}
else
else
{
{
QCString
cmd
=
filterName
+
"
"
+
fileName
;
QCString
cmd
=
filterName
+
"
\"
"
+
fileName
+
"
\"
"
;
FILE
*
f
=
popen
(
cmd
,
"r"
);
FILE
*
f
=
popen
(
cmd
,
"r"
);
if
(
!
f
)
if
(
!
f
)
{
{
...
@@ -7214,7 +7252,7 @@ static int readDir(QFileInfo *fi,
...
@@ -7214,7 +7252,7 @@ static int readDir(QFileInfo *fi,
)
)
{
{
QDir
dir
((
const
char
*
)
fi
->
absFilePath
());
QDir
dir
((
const
char
*
)
fi
->
absFilePath
());
dir
.
setFilter
(
QDir
::
Files
|
QDir
::
Dirs
);
dir
.
setFilter
(
QDir
::
Files
|
QDir
::
Dirs
|
QDir
::
Hidden
);
int
totalSize
=
0
;
int
totalSize
=
0
;
//printf("readDir `%s'\n",fi->absFilePath().data());
//printf("readDir `%s'\n",fi->absFilePath().data());
//printf("killDict=%p count=%d\n",killDict,killDict->count());
//printf("killDict=%p count=%d\n",killDict,killDict->count());
...
@@ -7837,41 +7875,6 @@ void readConfiguration(int argc, char **argv)
...
@@ -7837,41 +7875,6 @@ void readConfiguration(int argc, char **argv)
setPerlModDoxyfile
(
configFileInfo
.
absFilePath
());
setPerlModDoxyfile
(
configFileInfo
.
absFilePath
());
Doxygen
::
xrefLists
->
setAutoDelete
(
TRUE
);
Doxygen
::
xrefLists
->
setAutoDelete
(
TRUE
);
#if 0
/* init the special lists */
Doxygen::specialLists->insert("todo",
new RefList("todo",
"GENERATE_TODOLIST",
theTranslator->trTodoList(),
theTranslator->trTodo()
//,BaseOutputDocInterface::Todo
)
);
Doxygen::specialLists->insert("test",
new RefList("test",
"GENERATE_TESTLIST",
theTranslator->trTestList(),
theTranslator->trTest()
//,BaseOutputDocInterface::Test
)
);
Doxygen::specialLists->insert("bug",
new RefList("bug",
"GENERATE_BUGLIST",
theTranslator->trBugList(),
theTranslator->trBug()
//,BaseOutputDocInterface::Bug
)
);
Doxygen::specialLists->insert("deprecated",
new RefList("deprecated",
"GENERATE_DEPRECATEDLIST",
theTranslator->trDeprecatedList(),
theTranslator->trDeprecated()
//,BaseOutputDocInterface::Deprecated
)
);
#endif
}
}
...
@@ -7884,15 +7887,6 @@ void parseInput()
...
@@ -7884,15 +7887,6 @@ void parseInput()
Doxygen
::
imageNameDict
=
new
FileNameDict
(
257
);
Doxygen
::
imageNameDict
=
new
FileNameDict
(
257
);
Doxygen
::
dotFileNameDict
=
new
FileNameDict
(
257
);
Doxygen
::
dotFileNameDict
=
new
FileNameDict
(
257
);
//if (!Config_getString("DOC_URL").isEmpty())
//{
// Doxygen::tagDestinationDict.insert("_doc",new QCString(Config_getString("DOC_URL")));
//}
//if (!Config_getString("CGI_URL").isEmpty())
//{
// Doxygen::tagDestinationDict.insert("_cgi",new QCString(Config_getString("CGI_URL")+"/"+Config_getString("CGI_NAME")));
//}
/**************************************************************************
/**************************************************************************
* Initialize some global constants
* Initialize some global constants
**************************************************************************/
**************************************************************************/
...
@@ -8313,16 +8307,16 @@ void parseInput()
...
@@ -8313,16 +8307,16 @@ void parseInput()
findEnums
(
root
);
findEnums
(
root
);
findEnumDocumentation
(
root
);
findEnumDocumentation
(
root
);
msg
(
"Searching for members imported via using declarations...
\n
"
);
findUsingDeclImports
(
root
);
findUsingDeclarations
(
root
);
msg
(
"Searching for member function documentation...
\n
"
);
msg
(
"Searching for member function documentation...
\n
"
);
findObjCMethodDefinitions
(
root
);
findObjCMethodDefinitions
(
root
);
findMemberDocumentation
(
root
);
// may introduce new members !
findMemberDocumentation
(
root
);
// may introduce new members !
transferRelatedFunctionDocumentation
();
transferRelatedFunctionDocumentation
();
transferFunctionDocumentation
();
transferFunctionDocumentation
();
msg
(
"Searching for members imported via using declarations...
\n
"
);
findUsingDeclImports
(
root
);
findUsingDeclarations
(
root
);
msg
(
"Building page list...
\n
"
);
msg
(
"Building page list...
\n
"
);
buildPageList
(
root
);
buildPageList
(
root
);
...
...
src/filedef.cpp
View file @
bb18b811
...
@@ -222,7 +222,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -222,7 +222,7 @@ void FileDef::writeDocumentation(OutputList &ol)
if
(
Config_getBool
(
"SEARCHENGINE"
))
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
addWord
(
localName
()
.
lower
()
);
Doxygen
::
searchIndex
->
addWord
(
localName
());
}
}
if
(
!
Config_getString
(
"GENERATE_TAGFILE"
).
isEmpty
())
if
(
!
Config_getString
(
"GENERATE_TAGFILE"
).
isEmpty
())
...
...
src/groupdef.cpp
View file @
bb18b811
...
@@ -16,6 +16,7 @@
...
@@ -16,6 +16,7 @@
*/
*/
#include <ctype.h>
#include <ctype.h>
#include <qregexp.h>
#include "qtbc.h"
#include "qtbc.h"
#include "groupdef.h"
#include "groupdef.h"
#include "classdef.h"
#include "classdef.h"
...
@@ -457,14 +458,20 @@ void GroupDef::writeDocumentation(OutputList &ol)
...
@@ -457,14 +458,20 @@ void GroupDef::writeDocumentation(OutputList &ol)
//ol.disable(OutputGenerator::Man);
//ol.disable(OutputGenerator::Man);
startFile
(
ol
,
getOutputFileBase
(),
name
(),
title
);
startFile
(
ol
,
getOutputFileBase
(),
name
(),
title
);
startTitle
(
ol
,
getOutputFileBase
());
startTitle
(
ol
,
getOutputFileBase
());
ol
.
docify
(
title
);
ol
.
parseText
(
title
);
addGroupListToTitle
(
ol
,
this
);
addGroupListToTitle
(
ol
,
this
);
endTitle
(
ol
,
getOutputFileBase
(),
title
);
endTitle
(
ol
,
getOutputFileBase
(),
title
);
if
(
Config_getBool
(
"SEARCHENGINE"
))
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
title
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
setCurrentDoc
(
title
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
static
QRegExp
we
(
"[a-zA-Z_][a-zA-Z_0-9]*"
);
int
i
=
0
,
p
=
0
,
l
=
0
;
while
((
i
=
we
.
match
(
title
,
p
,
&
l
))
!=-
1
)
// foreach word in the title
{
Doxygen
::
searchIndex
->
addWord
(
title
.
mid
(
i
,
l
));
p
=
i
+
l
;
}
}
}
if
(
Config_getBool
(
"DETAILS_AT_TOP"
))
if
(
Config_getBool
(
"DETAILS_AT_TOP"
))
...
...
src/htmldocvisitor.cpp
View file @
bb18b811
...
@@ -26,9 +26,8 @@
...
@@ -26,9 +26,8 @@
#include "dot.h"
#include "dot.h"
#include "message.h"
#include "message.h"
#include "config.h"
#include "config.h"
#include "htmlgen.h"
#define PREFRAG_START "<div class=\"fragment\"><pre>"
#define PREFRAG_END "</pre></div>"
static
QString
htmlAttribsToString
(
const
HtmlAttribList
&
attribs
)
static
QString
htmlAttribsToString
(
const
HtmlAttribList
&
attribs
)
{
{
...
@@ -872,7 +871,7 @@ void HtmlDocVisitor::visitPost(DocParamSect *)
...
@@ -872,7 +871,7 @@ void HtmlDocVisitor::visitPost(DocParamSect *)
void
HtmlDocVisitor
::
visitPre
(
DocParamList
*
pl
)
void
HtmlDocVisitor
::
visitPre
(
DocParamList
*
pl
)
{
{
if
(
m_hide
)
return
;
if
(
m_hide
)
return
;
m_t
<<
" <tr><td>"
;
m_t
<<
" <tr><td
valign=
\"
top
\"
>"
;
if
(
pl
->
direction
()
!=
DocParamSect
::
Unspecified
)
if
(
pl
->
direction
()
!=
DocParamSect
::
Unspecified
)
{
{
m_t
<<
"<tt>["
;
m_t
<<
"<tt>["
;
...
@@ -890,7 +889,7 @@ void HtmlDocVisitor::visitPre(DocParamList *pl)
...
@@ -890,7 +889,7 @@ void HtmlDocVisitor::visitPre(DocParamList *pl)
}
}
m_t
<<
"]</tt> "
;
m_t
<<
"]</tt> "
;
}
}
m_t
<<
"</td><td valign=
top
><em>"
;
m_t
<<
"</td><td valign=
\"
top
\"
><em>"
;
QStrListIterator
li
(
pl
->
parameters
());
QStrListIterator
li
(
pl
->
parameters
());
const
char
*
s
;
const
char
*
s
;
bool
first
=
TRUE
;
bool
first
=
TRUE
;
...
...
src/htmlgen.cpp
View file @
bb18b811
...
@@ -42,12 +42,11 @@
...
@@ -42,12 +42,11 @@
#define DBG_HTML(x)
#define DBG_HTML(x)
static
const
char
*
defaultStyleSheet
=
static
const
char
*
defaultStyleSheet
=
"H1 {
\n
"
"BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
\n
"
" text-align: center;
\n
"
" font-family: Geneva, Arial, Helvetica, sans-serif;
\n
"
" font-family: Geneva, Arial, Helvetica, sans-serif;
\n
"
"}
\n
"
"}
\n
"
"H
2
{
\n
"
"H
1
{
\n
"
"
font-family: Geneva, Arial, Helvetica, sans-serif
;
\n
"
"
text-align: center
;
\n
"
"}
\n
"
"}
\n
"
"CAPTION { font-weight: bold }
\n
"
"CAPTION { font-weight: bold }
\n
"
"DIV.qindex {
\n
"
"DIV.qindex {
\n
"
...
@@ -93,10 +92,15 @@ static const char *defaultStyleSheet =
...
@@ -93,10 +92,15 @@ static const char *defaultStyleSheet =
"A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
\n
"
"A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
\n
"
"A.el { text-decoration: none; font-weight: bold }
\n
"
"A.el { text-decoration: none; font-weight: bold }
\n
"
"A.elRef { font-weight: bold }
\n
"
"A.elRef { font-weight: bold }
\n
"
"A.code { text-decoration: none; font-weight: normal; color: #1A419D}
\n
"
"A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
\n
"
"A.codeRef { font-weight: normal; color: #1A419D}
\n
"
"A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
\n
"
"A.codeRef:link { font-weight: normal; color: #0000FF}
\n
"
"A.codeRef:visited { font-weight: normal; color: #0000FF}
\n
"
"A:hover { text-decoration: none; background-color: #f2f2ff }
\n
"
"A:hover { text-decoration: none; background-color: #f2f2ff }
\n
"
"DL.el { margin-left: -1cm }
\n
"
"DL.el { margin-left: -1cm }
\n
"
".fragment {
\n
"
" font-family: monospace
\n
"
"}
\n
"
"PRE.fragment {
\n
"
"PRE.fragment {
\n
"
" border: 1px solid #CCCCCC;
\n
"
" border: 1px solid #CCCCCC;
\n
"
" background-color: #f5f5f5;
\n
"
" background-color: #f5f5f5;
\n
"
...
@@ -109,11 +113,12 @@ static const char *defaultStyleSheet =
...
@@ -109,11 +113,12 @@ static const char *defaultStyleSheet =
" padding-top: 4px;
\n
"
" padding-top: 4px;
\n
"
" padding-bottom: 4px;
\n
"
" padding-bottom: 4px;
\n
"
"}
\n
"
"}
\n
"
"DIV.fragment {
\n
"
//"DIV.fragment {\n"
" border: 1px solid #CCCCCC;
\n
"
//" font-family: monospace\n"
" background-color: #f5f5f5;
\n
"
//" border: 1px solid #CCCCCC;\n"
" padding: 6px;
\n
"
//" background-color: #f5f5f5;\n"
"}
\n
"
//" padding: 6px;\n"
//"}\n"
"DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
\n
"
"DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
\n
"
"TD.md { background-color: #F4F4FB; font-weight: bold; }
\n
"
"TD.md { background-color: #F4F4FB; font-weight: bold; }
\n
"
"TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; }
\n
"
"TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; }
\n
"
...
@@ -123,7 +128,6 @@ static const char *defaultStyleSheet =
...
@@ -123,7 +128,6 @@ static const char *defaultStyleSheet =
" margin-top: 12px;
\n
"
" margin-top: 12px;
\n
"
" margin-bottom: 6px;
\n
"
" margin-bottom: 6px;
\n
"
" font-weight: bold;
\n
"
" font-weight: bold;
\n
"
" font-family: Geneva, Arial, Helvetica, sans-serif;
\n
"
"}
\n
"
"}
\n
"
"DIV.groupText { margin-left: 16px; font-style: italic; font-size: 14px }
\n
"
"DIV.groupText { margin-left: 16px; font-style: italic; font-size: 14px }
\n
"
"BODY {
\n
"
"BODY {
\n
"
...
@@ -216,7 +220,6 @@ static const char *defaultStyleSheet =
...
@@ -216,7 +220,6 @@ static const char *defaultStyleSheet =
" border-bottom-style: none;
\n
"
" border-bottom-style: none;
\n
"
" border-left-style: none;
\n
"
" border-left-style: none;
\n
"
" background-color: #FAFAFA;
\n
"
" background-color: #FAFAFA;
\n
"
" font-family: Geneva, Arial, Helvetica, sans-serif;
\n
"
" font-size: 12px;
\n
"
" font-size: 12px;
\n
"
"}
\n
"
"}
\n
"
".memItemRight {
\n
"
".memItemRight {
\n
"
...
@@ -235,7 +238,6 @@ static const char *defaultStyleSheet =
...
@@ -235,7 +238,6 @@ static const char *defaultStyleSheet =
" border-bottom-style: none;
\n
"
" border-bottom-style: none;
\n
"
" border-left-style: none;
\n
"
" border-left-style: none;
\n
"
" background-color: #FAFAFA;
\n
"
" background-color: #FAFAFA;
\n
"
" font-family: Geneva, Arial, Helvetica, sans-serif;
\n
"
" font-size: 13px;
\n
"
" font-size: 13px;
\n
"
"}
\n
"
"}
\n
"
".search { color: #003399;
\n
"
".search { color: #003399;
\n
"
...
...
src/htmlgen.h
View file @
bb18b811
...
@@ -21,6 +21,9 @@
...
@@ -21,6 +21,9 @@
#include "qtbc.h"
#include "qtbc.h"
#include "outputgen.h"
#include "outputgen.h"
#define PREFRAG_START "<div class=\"fragment\"><pre class=\"fragment\">"
#define PREFRAG_END "</pre></div>"
class
QFile
;
class
QFile
;
class
HtmlGenerator
:
public
OutputGenerator
class
HtmlGenerator
:
public
OutputGenerator
...
@@ -112,8 +115,8 @@ class HtmlGenerator : public OutputGenerator
...
@@ -112,8 +115,8 @@ class HtmlGenerator : public OutputGenerator
void
writeRuler
()
{
t
<<
"<hr>"
;
}
void
writeRuler
()
{
t
<<
"<hr>"
;
}
void
writeAnchor
(
const
char
*
,
const
char
*
name
)
void
writeAnchor
(
const
char
*
,
const
char
*
name
)
{
t
<<
"<a name=
\"
"
<<
name
<<
"
\"
></a>"
;
}
{
t
<<
"<a name=
\"
"
<<
name
<<
"
\"
></a>"
;
}
void
startCodeFragment
()
{
t
<<
"<pre class=
\"
fragment
\"
><div>"
;
}
void
startCodeFragment
()
{
t
<<
PREFRAG_START
;
}
void
endCodeFragment
()
{
t
<<
"</div></pre>"
;
}
void
endCodeFragment
()
{
t
<<
PREFRAG_END
;
}
void
writeLineNumber
(
const
char
*
,
const
char
*
,
const
char
*
,
int
);
void
writeLineNumber
(
const
char
*
,
const
char
*
,
const
char
*
,
int
);
void
startCodeLine
()
{
col
=
0
;
}
void
startCodeLine
()
{
col
=
0
;
}
void
endCodeLine
()
{
codify
(
"
\n
"
);
}
void
endCodeLine
()
{
codify
(
"
\n
"
);
}
...
...
src/mandocvisitor.cpp
View file @
bb18b811
...
@@ -460,6 +460,7 @@ void ManDocVisitor::visitPre(DocSimpleList *)
...
@@ -460,6 +460,7 @@ void ManDocVisitor::visitPre(DocSimpleList *)
{
{
if
(
m_hide
)
return
;
if
(
m_hide
)
return
;
m_indent
+=
2
;
m_indent
+=
2
;
if
(
!
m_firstCol
)
m_t
<<
endl
;
m_t
<<
".PD 0"
<<
endl
;
m_t
<<
".PD 0"
<<
endl
;
}
}
...
@@ -507,6 +508,7 @@ void ManDocVisitor::visitPre(DocHtmlList *)
...
@@ -507,6 +508,7 @@ void ManDocVisitor::visitPre(DocHtmlList *)
{
{
if
(
m_hide
)
return
;
if
(
m_hide
)
return
;
m_indent
+=
2
;
m_indent
+=
2
;
if
(
!
m_firstCol
)
m_t
<<
endl
;
m_t
<<
".PD 0"
<<
endl
;
m_t
<<
".PD 0"
<<
endl
;
}
}
...
@@ -514,6 +516,7 @@ void ManDocVisitor::visitPost(DocHtmlList *)
...
@@ -514,6 +516,7 @@ void ManDocVisitor::visitPost(DocHtmlList *)
{
{
if
(
m_hide
)
return
;
if
(
m_hide
)
return
;
m_indent
-=
2
;
m_indent
-=
2
;
if
(
!
m_firstCol
)
m_t
<<
endl
;
m_t
<<
".PP"
<<
endl
;
m_t
<<
".PP"
<<
endl
;
}
}
...
@@ -741,6 +744,7 @@ void ManDocVisitor::visitPost(DocSecRefList *)
...
@@ -741,6 +744,7 @@ void ManDocVisitor::visitPost(DocSecRefList *)
{
{
if
(
m_hide
)
return
;
if
(
m_hide
)
return
;
m_indent
-=
2
;
m_indent
-=
2
;
if
(
!
m_firstCol
)
m_t
<<
endl
;
m_t
<<
".PP"
<<
endl
;
m_t
<<
".PP"
<<
endl
;
}
}
...
...
src/memberdef.cpp
View file @
bb18b811
...
@@ -343,6 +343,7 @@ MemberDef::MemberDef(const char *df,int dl,
...
@@ -343,6 +343,7 @@ MemberDef::MemberDef(const char *df,int dl,
section
=
0
;
section
=
0
;
groupAlias
=
0
;
groupAlias
=
0
;
explExt
=
FALSE
;
explExt
=
FALSE
;
tspec
=
FALSE
;
cachedAnonymousType
=
0
;
cachedAnonymousType
=
0
;
maxInitLines
=
Config_getInt
(
"MAX_INITIALIZER_LINES"
);
maxInitLines
=
Config_getInt
(
"MAX_INITIALIZER_LINES"
);
userInitLines
=-
1
;
userInitLines
=-
1
;
...
@@ -834,8 +835,8 @@ void MemberDef::writeDeclaration(OutputList &ol,
...
@@ -834,8 +835,8 @@ void MemberDef::writeDeclaration(OutputList &ol,
if
(
Config_getBool
(
"SEARCHENGINE"
))
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
qualifiedName
(),
getOutputFileBase
(),
anchor
());
Doxygen
::
searchIndex
->
setCurrentDoc
(
qualifiedName
(),
getOutputFileBase
(),
anchor
());
Doxygen
::
searchIndex
->
addWord
(
localName
()
.
lower
()
);
Doxygen
::
searchIndex
->
addWord
(
localName
());
Doxygen
::
searchIndex
->
addWord
(
qualifiedName
()
.
lower
()
);
Doxygen
::
searchIndex
->
addWord
(
qualifiedName
());
}
}
Definition
*
d
=
0
;
Definition
*
d
=
0
;
...
@@ -1248,7 +1249,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -1248,7 +1249,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
htmlHelp
->
addIndexItem
(
cname
,
name
(),
cfname
,
anchor
());
htmlHelp
->
addIndexItem
(
cname
,
name
(),
cfname
,
anchor
());
}
}
linkifyText
(
TextGeneratorOLImpl
(
ol
),
container
,
getBodyDef
(),
name
(),
ldef
.
left
(
i
));
linkifyText
(
TextGeneratorOLImpl
(
ol
),
container
,
getBodyDef
(),
name
(),
ldef
.
left
(
i
));
//ol+=*vmd->enumDecl();
vmd
->
writeEnumDeclaration
(
ol
,
getClassDef
(),
getNamespaceDef
(),
getFileDef
(),
getGroupDef
());
vmd
->
writeEnumDeclaration
(
ol
,
getClassDef
(),
getNamespaceDef
(),
getFileDef
(),
getGroupDef
());
linkifyText
(
TextGeneratorOLImpl
(
ol
),
container
,
getBodyDef
(),
name
(),
ldef
.
right
(
ldef
.
length
()
-
i
-
l
));
linkifyText
(
TextGeneratorOLImpl
(
ol
),
container
,
getBodyDef
(),
name
(),
ldef
.
right
(
ldef
.
length
()
-
i
-
l
));
...
@@ -1310,7 +1310,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -1310,7 +1310,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
else
// definition gets it template parameters from its class
else
// definition gets it template parameters from its class
// (since no definition was found)
// (since no definition was found)
{
{
if
(
cd
)
if
(
cd
&&
!
isTemplateSpecialization
()
)
{
{
QList
<
ArgumentList
>
tempParamLists
;
QList
<
ArgumentList
>
tempParamLists
;
cd
->
getTemplateParameterLists
(
tempParamLists
);
cd
->
getTemplateParameterLists
(
tempParamLists
);
...
@@ -1670,7 +1670,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -1670,7 +1670,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
ol
.
parseText
(
reimplFromLine
.
right
(
ol
.
parseText
(
reimplFromLine
.
right
(
reimplFromLine
.
length
()
-
markerPos
-
2
));
// text right from marker
reimplFromLine
.
length
()
-
markerPos
-
2
));
// text right from marker
ol
.
newParagraph
();
}
}
else
else
{
{
...
@@ -1751,7 +1750,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -1751,7 +1750,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
index
=
newIndex
+
matchLen
;
index
=
newIndex
+
matchLen
;
}
}
ol
.
parseText
(
reimplInLine
.
right
(
reimplInLine
.
length
()
-
index
));
ol
.
parseText
(
reimplInLine
.
right
(
reimplInLine
.
length
()
-
index
));
ol
.
newParagraph
();
}
}
}
}
// write the list of examples that use this member
// write the list of examples that use this member
...
@@ -2003,9 +2001,14 @@ void MemberDef::addListReference(Definition *)
...
@@ -2003,9 +2001,14 @@ void MemberDef::addListReference(Definition *)
}
}
}
}
}
}
//printf("*** addListReference %s todo=%d test=%d bug=%d\n",name().data(),todoId(),testId(),bugId());
if
(
xrefListItems
())
{
addRefItem
(
xrefListItems
(),
memLabel
,
addRefItem
(
xrefListItems
(),
memLabel
,
getOutputFileBase
()
+
"#"
+
anchor
(),
memName
,
argsString
());
getOutputFileBase
()
+
"#"
+
anchor
(),
memName
,
argsString
());
}
else
{
}
}
}
MemberList
*
MemberDef
::
getSectionList
(
Definition
*
d
)
const
MemberList
*
MemberDef
::
getSectionList
(
Definition
*
d
)
const
...
...
src/memberdef.h
View file @
bb18b811
...
@@ -134,6 +134,7 @@ class MemberDef : public Definition
...
@@ -134,6 +134,7 @@ class MemberDef : public Definition
bool
isWritable
()
const
{
return
(
memSpec
&
Entry
::
Writable
)
!=
0
;
}
bool
isWritable
()
const
{
return
(
memSpec
&
Entry
::
Writable
)
!=
0
;
}
bool
isImplementation
()
const
{
return
m_implOnly
;
}
bool
isImplementation
()
const
{
return
m_implOnly
;
}
bool
isExternal
()
const
{
return
explExt
;
}
bool
isExternal
()
const
{
return
explExt
;
}
bool
isTemplateSpecialization
()
const
{
return
tspec
;
}
bool
isObjCMethod
()
const
;
bool
isObjCMethod
()
const
;
bool
isConstructor
()
const
;
bool
isConstructor
()
const
;
bool
isDestructor
()
const
;
bool
isDestructor
()
const
;
...
@@ -167,6 +168,7 @@ class MemberDef : public Definition
...
@@ -167,6 +168,7 @@ class MemberDef : public Definition
void
setExplicitExternal
(
bool
b
)
{
explExt
=
b
;
}
void
setExplicitExternal
(
bool
b
)
{
explExt
=
b
;
}
void
setReadAccessor
(
const
char
*
r
)
{
read
=
r
;
}
void
setReadAccessor
(
const
char
*
r
)
{
read
=
r
;
}
void
setWriteAccessor
(
const
char
*
w
)
{
write
=
w
;
}
void
setWriteAccessor
(
const
char
*
w
)
{
write
=
w
;
}
void
setTemplateSpecialization
(
bool
b
)
{
tspec
=
b
;
}
void
makeRelated
()
{
related
=
TRUE
;
}
void
makeRelated
()
{
related
=
TRUE
;
}
...
@@ -348,6 +350,7 @@ class MemberDef : public Definition
...
@@ -348,6 +350,7 @@ class MemberDef : public Definition
GroupDef
*
group
;
// group in which this member is in
GroupDef
*
group
;
// group in which this member is in
bool
explExt
;
// member was explicitly declared external
bool
explExt
;
// member was explicitly declared external
bool
tspec
;
// member is a template specialization
ClassDef
*
cachedAnonymousType
;
// if the member has an anonymous compound
ClassDef
*
cachedAnonymousType
;
// if the member has an anonymous compound
// as its type then this is computed by
// as its type then this is computed by
...
...
src/memberlist.cpp
View file @
bb18b811
...
@@ -286,14 +286,14 @@ void MemberList::writePlainDeclarations(OutputList &ol,
...
@@ -286,14 +286,14 @@ void MemberList::writePlainDeclarations(OutputList &ol,
{
{
if
(
md
->
fromAnonymousScope
()
&&
!
md
->
anonymousDeclShown
())
if
(
md
->
fromAnonymousScope
()
&&
!
md
->
anonymousDeclShown
())
{
{
md
->
setFromAnonymousScope
(
FALSE
);
//printf("anonymous compound members\n");
//printf("anonymous compound members\n");
if
(
md
->
isBriefSectionVisible
())
if
(
md
->
isBriefSectionVisible
())
{
{
if
(
first
)
ol
.
startMemberList
(),
first
=
FALSE
;
if
(
first
)
ol
.
startMemberList
(),
first
=
FALSE
;
md
->
setFromAnonymousScope
(
FALSE
);
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
gd
,
m_inGroup
);
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
gd
,
m_inGroup
);
md
->
setFromAnonymousScope
(
TRUE
);
}
}
md
->
setFromAnonymousScope
(
TRUE
);
}
}
}
}
}
}
...
...
src/namespacedef.cpp
View file @
bb18b811
...
@@ -275,15 +275,14 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -275,15 +275,14 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
}
}
startFile
(
ol
,
getOutputFileBase
(),
name
(),
pageTitle
);
startFile
(
ol
,
getOutputFileBase
(),
name
(),
pageTitle
);
startTitle
(
ol
,
getOutputFileBase
());
startTitle
(
ol
,
getOutputFileBase
());
//ol.docify(pageTitle);
ol
.
parseText
(
pageTitle
);
//ol.parseText(pageTitle);
addGroupListToTitle
(
ol
,
this
);
addGroupListToTitle
(
ol
,
this
);
endTitle
(
ol
,
getOutputFileBase
(),
displayName
());
endTitle
(
ol
,
getOutputFileBase
(),
displayName
());
if
(
Config_getBool
(
"SEARCHENGINE"
))
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
addWord
(
localName
()
.
lower
()
);
Doxygen
::
searchIndex
->
addWord
(
localName
());
}
}
if
(
!
Config_getString
(
"GENERATE_TAGFILE"
).
isEmpty
())
if
(
!
Config_getString
(
"GENERATE_TAGFILE"
).
isEmpty
())
...
...
src/pre.l
View file @
bb18b811
...
@@ -194,7 +194,7 @@ static FILE *checkAndOpenFile(const QCString &absName)
...
@@ -194,7 +194,7 @@ static FILE *checkAndOpenFile(const QCString &absName)
QCString filterName = getFileFilter(absName);
QCString filterName = getFileFilter(absName);
if (!filterName.isEmpty())
if (!filterName.isEmpty())
{
{
QCString cmd = filterName+"
"+absName
;
QCString cmd = filterName+"
\""+absName+"\""
;
f=popen(cmd,"r");
f=popen(cmd,"r");
if (!f) err("Error: could not execute filter %s\n",cmd.data());
if (!f) err("Error: could not execute filter %s\n",cmd.data());
}
}
...
@@ -1486,6 +1486,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
...
@@ -1486,6 +1486,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
Define *def;
Define *def;
if ((def=isDefined(yytext))
if ((def=isDefined(yytext))
/*&& !def->isPredefined*/
/*&& !def->isPredefined*/
&& !def->nonRecursive
)
)
{
{
//printf("undefining %s\n",yytext);
//printf("undefining %s\n",yytext);
...
...
src/rtfgen.cpp
View file @
bb18b811
...
@@ -37,8 +37,8 @@
...
@@ -37,8 +37,8 @@
#include "rtfdocvisitor.h"
#include "rtfdocvisitor.h"
#include "docparser.h"
#include "docparser.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 @
bb18b811
...
@@ -2589,9 +2589,21 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
...
@@ -2589,9 +2589,21 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
{
{
varEntry->groups->append(new Grouping(*g));
varEntry->groups->append(new Grouping(*g));
}
}
if (current->sli) // copy special list items
{
QListIterator<ListItemInfo> li(*current->sli);
ListItemInfo *lii;
for (li.toFirst();(lii=li.current());++li)
{
varEntry->addSpecialListItem(lii->type,lii->itemId);
}
//delete current->sli;
//current->sli = 0;
}
//printf("Add: type=`%s',name=`%s',args=`%s'\n",
//printf("Add: type=`%s',name=`%s',args=`%s' brief=%s doc=%s\n",
// varEntry->type.data(),varEntry->name.data(),varEntry->args.data());
// varEntry->type.data(),varEntry->name.data(),
// varEntry->args.data(),varEntry->brief.data(),varEntry->doc.data());
current_root->addSubEntry(varEntry);
current_root->addSubEntry(varEntry);
}
}
if (*yytext==';')
if (*yytext==';')
...
...
src/search.php
View file @
bb18b811
...
@@ -284,7 +284,7 @@ function main()
...
@@ -284,7 +284,7 @@ function main()
if
(
!
in_array
(
$word
,
$foundWords
))
if
(
!
in_array
(
$word
,
$foundWords
))
{
{
$foundWords
[]
=
$word
;
$foundWords
[]
=
$word
;
search
(
$file
,
$word
,
$results
);
search
(
$file
,
strtolower
(
$word
)
,
$results
);
}
}
$word
=
strtok
(
" "
);
$word
=
strtok
(
" "
);
}
}
...
...
src/search_php.h
View file @
bb18b811
...
@@ -284,7 +284,7 @@
...
@@ -284,7 +284,7 @@
" if (!in_array($word,$foundWords))
\n
"
" if (!in_array($word,$foundWords))
\n
"
" {
\n
"
" {
\n
"
" $foundWords[]=$word;
\n
"
" $foundWords[]=$word;
\n
"
" search($file,
$word
,$results);
\n
"
" search($file,
strtolower($word)
,$results);
\n
"
" }
\n
"
" }
\n
"
" $word=strtok(
\"
\"
);
\n
"
" $word=strtok(
\"
\"
);
\n
"
" }
\n
"
" }
\n
"
...
...
src/searchindex.cpp
View file @
bb18b811
...
@@ -81,12 +81,14 @@ static int charsToIndex(const char *word)
...
@@ -81,12 +81,14 @@ static int charsToIndex(const char *word)
void
SearchIndex
::
addWord
(
const
char
*
word
)
void
SearchIndex
::
addWord
(
const
char
*
word
)
{
{
IndexWord
*
w
=
m_words
[
word
];
QString
wStr
=
QString
(
word
).
lower
();
if
(
wStr
.
isEmpty
())
return
;
IndexWord
*
w
=
m_words
[
wStr
];
if
(
w
==
0
)
if
(
w
==
0
)
{
{
int
idx
=
charsToIndex
(
w
ord
);
int
idx
=
charsToIndex
(
w
Str
);
if
(
idx
<
0
)
return
;
if
(
idx
<
0
)
return
;
w
=
new
IndexWord
(
w
ord
);
w
=
new
IndexWord
(
w
Str
);
//fprintf(stderr,"addWord(%s) at index %d\n",word,idx);
//fprintf(stderr,"addWord(%s) at index %d\n",word,idx);
m_index
[
idx
]
->
append
(
w
);
m_index
[
idx
]
->
append
(
w
);
m_words
.
insert
(
word
,
w
);
m_words
.
insert
(
word
,
w
);
...
...
src/translator_adapter.h
View file @
bb18b811
...
@@ -152,204 +152,5 @@ class TranslatorAdapter_1_2_11 : public TranslatorAdapter_1_2_13
...
@@ -152,204 +152,5 @@ class TranslatorAdapter_1_2_11 : public TranslatorAdapter_1_2_13
};
};
class
TranslatorAdapter_1_2_7
:
public
TranslatorAdapter_1_2_11
{
public
:
virtual
QCString
updateNeededMessage
()
{
return
createUpdateNeededMessage
(
idLanguage
(),
"release 1.2.7"
);
}
/*! These are the default implementations of the obsolete methods
* for introducing author/authors (possibly localized).
*/
virtual
QCString
trAuthors
()
{
return
"Author(s)"
;
}
virtual
QCString
trAuthor
()
{
return
"Author"
;
}
/*! This is the localized implementation of newer equivalent
* using the obsolete methods trAuthors() and trAuthor().
*/
virtual
QCString
trAuthor
(
bool
first_capital
,
bool
singular
)
{
if
(
first_capital
)
return
(
singular
)
?
trAuthor
()
:
trAuthors
();
// possibly localized
else
return
english
.
trAuthor
(
first_capital
,
singular
);
}
};
/*! \brief Translator adapter class for release 1.2.6
*
* Translator adapter for dealing with translator changes since
* release 1.2.6
*/
class
TranslatorAdapter_1_2_6
:
public
TranslatorAdapter_1_2_7
{
public
:
virtual
QCString
updateNeededMessage
()
{
return
createUpdateNeededMessage
(
idLanguage
(),
"release 1.2.6"
);
}
/*! Used as ansicpg for RTF file */
virtual
QCString
trRTFansicp
()
{
return
"1252"
;
}
/*! Used as ansicpg for RTF fcharset */
virtual
QCString
trRTFCharSet
()
{
return
"0"
;
}
/*! Used as header RTF general index */
virtual
QCString
trRTFGeneralIndex
()
{
return
"Index"
;
}
//////////////////////////////////////////////////////////////////
// The following methods were replaced by newer equivalent, but
// the obsolete method may be localized. Let's use the localized
// result if possible.
/*! This is the default implementation of the obsolete method
* used in the documentation of a group before the list of
* links to documented files. This is possibly localized.
*/
virtual
QCString
trFiles
()
{
return
"Files"
;
}
/*! This is the localized implementation of newer equivalent
* using the obsolete method trFiles().
*/
virtual
QCString
trFile
(
bool
first_capital
,
bool
singular
)
{
if
(
first_capital
&&
!
singular
)
return
trFiles
();
// possibly localized
else
return
english
.
trFile
(
first_capital
,
singular
);
}
/*! The latexBabelPackage() was superceeded by
* latexLanguageSupportCommand(). The default implementation
* of the obsolete method follows.
*/
virtual
QCString
latexBabelPackage
()
{
return
""
;
}
/*! Default implementation of the newer method. */
virtual
QCString
latexLanguageSupportCommand
()
{
QCString
result
(
latexBabelPackage
());
if
(
!
result
.
isEmpty
())
{
result
=
"
\\
usepackage["
+
result
;
result
+=
"]{babel}
\n
"
;
}
return
result
;
}
virtual
QCString
idLanguageCharset
()
{
return
english
.
idLanguageCharset
();
}
virtual
QCString
trClass
(
bool
first_capital
,
bool
singular
)
{
return
english
.
trClass
(
first_capital
,
singular
);
}
virtual
QCString
trNamespace
(
bool
first_capital
,
bool
singular
)
{
return
english
.
trNamespace
(
first_capital
,
singular
);
}
virtual
QCString
trGroup
(
bool
first_capital
,
bool
singular
)
{
return
english
.
trGroup
(
first_capital
,
singular
);
}
virtual
QCString
trPage
(
bool
first_capital
,
bool
singular
)
{
return
english
.
trPage
(
first_capital
,
singular
);
}
virtual
QCString
trMember
(
bool
first_capital
,
bool
singular
)
{
return
english
.
trMember
(
first_capital
,
singular
);
}
virtual
QCString
trField
(
bool
first_capital
,
bool
singular
)
{
return
english
.
trField
(
first_capital
,
singular
);
}
virtual
QCString
trGlobal
(
bool
first_capital
,
bool
singular
)
{
return
english
.
trGlobal
(
first_capital
,
singular
);
}
};
/*! \brief Translator adapter class for release 1.2.5
*
* Translator adapter for dealing with translator changes since
* release 1.2.5
*/
class
TranslatorAdapter_1_2_5
:
public
TranslatorAdapter_1_2_6
{
public
:
virtual
QCString
updateNeededMessage
()
{
return
createUpdateNeededMessage
(
idLanguage
(),
"release 1.2.5"
);
}
virtual
QCString
trBug
()
{
return
english
.
trBug
();
}
virtual
QCString
trBugList
()
{
return
english
.
trBugList
();
}
};
/*! \brief Translator adapter class for release 1.2.4
*
* Translator adapter for dealing with translator changes since
* release 1.2.4
*/
class
TranslatorAdapter_1_2_4
:
public
TranslatorAdapter_1_2_5
{
public
:
virtual
QCString
updateNeededMessage
()
{
return
createUpdateNeededMessage
(
idLanguage
(),
"release 1.2.4"
);
}
virtual
QCString
trInterfaces
()
{
return
english
.
trInterfaces
();
}
virtual
QCString
trClasses
()
{
return
english
.
trClasses
();
}
virtual
QCString
trPackage
(
const
char
*
name
)
{
return
english
.
trPackage
(
name
);
}
virtual
QCString
trPackageList
()
{
return
english
.
trPackageList
();
}
virtual
QCString
trPackageListDescription
()
{
return
english
.
trPackageListDescription
();
}
virtual
QCString
trPackages
()
{
return
english
.
trPackages
();
}
virtual
QCString
trPackageDocumentation
()
{
return
english
.
trPackageDocumentation
();
}
virtual
QCString
trDefineValue
()
{
return
english
.
trDefineValue
();
}
};
/*! \brief Translator adapter class for release 1.2.2
*
* Translator adapter for dealing with translator changes since
* release 1.2.2
*/
class
TranslatorAdapter_1_2_2
:
public
TranslatorAdapter_1_2_4
{
public
:
virtual
QCString
updateNeededMessage
()
{
return
createUpdateNeededMessage
(
idLanguage
(),
"release 1.2.2"
);
}
virtual
QCString
trProperties
()
{
return
english
.
trProperties
();
}
virtual
QCString
trPropertyDocumentation
()
{
return
english
.
trPropertyDocumentation
();
}
};
#endif
#endif
src/util.cpp
View file @
bb18b811
...
@@ -2012,6 +2012,7 @@ void trimBaseClassScope(BaseClassList *bcl,QCString &s,int level=0)
...
@@ -2012,6 +2012,7 @@ void trimBaseClassScope(BaseClassList *bcl,QCString &s,int level=0)
}
}
}
}
#if 0
/*! if either t1 or t2 contains a namespace scope, then remove that
/*! if either t1 or t2 contains a namespace scope, then remove that
* scope. If neither or both have a namespace scope, t1 and t2 remain
* scope. If neither or both have a namespace scope, t1 and t2 remain
* unchanged.
* unchanged.
...
@@ -2086,6 +2087,7 @@ static void trimNamespaceScope(QCString &t1,QCString &t2,const QCString &nsName)
...
@@ -2086,6 +2087,7 @@ static void trimNamespaceScope(QCString &t1,QCString &t2,const QCString &nsName)
p2 = QMAX(i2-2,0);
p2 = QMAX(i2-2,0);
}
}
}
}
#endif
/*! According to the C++ spec and Ivan Vecerina:
/*! According to the C++ spec and Ivan Vecerina:
...
@@ -2227,7 +2229,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
...
@@ -2227,7 +2229,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
//srcAType=stripTemplateSpecifiersFromScope(srcAType,FALSE);
//srcAType=stripTemplateSpecifiersFromScope(srcAType,FALSE);
//dstAType=stripTemplateSpecifiersFromScope(dstAType,FALSE);
//dstAType=stripTemplateSpecifiersFromScope(dstAType,FALSE);
//printf("srcA=%s
:%s dstA=%s:
%s\n",srcAType.data(),srcA->name.data(),
//printf("srcA=%s
|%s dstA=%s|
%s\n",srcAType.data(),srcA->name.data(),
// dstAType.data(),dstA->name.data());
// dstAType.data(),dstA->name.data());
if
(
srcA
->
array
!=
dstA
->
array
)
// nomatch for char[] against char
if
(
srcA
->
array
!=
dstA
->
array
)
// nomatch for char[] against char
...
@@ -2240,7 +2242,9 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
...
@@ -2240,7 +2242,9 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
// remove a namespace scope that is only in one type
// remove a namespace scope that is only in one type
// (assuming a using statement was used)
// (assuming a using statement was used)
trimNamespaceScope
(
srcAType
,
dstAType
,
namespaceName
);
//printf("Trimming %s<->%s: %s\n",srcAType.data(),dstAType.data(),namespaceName.data());
//trimNamespaceScope(srcAType,dstAType,namespaceName);
//printf("After Trimming %s<->%s\n",srcAType.data(),dstAType.data());
//QCString srcScope;
//QCString srcScope;
//QCString dstScope;
//QCString dstScope;
...
@@ -2268,6 +2272,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
...
@@ -2268,6 +2272,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
srcAType
=
trimScope
(
namespaceName
,
srcAType
);
srcAType
=
trimScope
(
namespaceName
,
srcAType
);
dstAType
=
trimScope
(
namespaceName
,
dstAType
);
dstAType
=
trimScope
(
namespaceName
,
dstAType
);
}
}
//printf("#usingNamespace=%d\n",usingNamespaces->count());
if
(
usingNamespaces
&&
usingNamespaces
->
count
()
>
0
)
if
(
usingNamespaces
&&
usingNamespaces
->
count
()
>
0
)
{
{
NamespaceSDict
::
Iterator
nli
(
*
usingNamespaces
);
NamespaceSDict
::
Iterator
nli
(
*
usingNamespaces
);
...
@@ -2278,6 +2283,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
...
@@ -2278,6 +2283,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
dstAType
=
trimScope
(
nd
->
name
(),
dstAType
);
dstAType
=
trimScope
(
nd
->
name
(),
dstAType
);
}
}
}
}
//printf("#usingClasses=%d\n",usingClasses->count());
if
(
usingClasses
&&
usingClasses
->
count
()
>
0
)
if
(
usingClasses
&&
usingClasses
->
count
()
>
0
)
{
{
SDict
<
Definition
>::
Iterator
cli
(
*
usingClasses
);
SDict
<
Definition
>::
Iterator
cli
(
*
usingClasses
);
...
@@ -2289,7 +2295,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
...
@@ -2289,7 +2295,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
}
}
}
}
//printf("2. srcA=%s
:%s dstA=%s:
%s\n",srcAType.data(),srcA->name.data(),
//printf("2. srcA=%s
|%s dstA=%s|
%s\n",srcAType.data(),srcA->name.data(),
// dstAType.data(),dstA->name.data());
// dstAType.data(),dstA->name.data());
if
(
!
srcA
->
name
.
isEmpty
()
&&
!
dstA
->
type
.
isEmpty
()
&&
if
(
!
srcA
->
name
.
isEmpty
()
&&
!
dstA
->
type
.
isEmpty
()
&&
...
@@ -4200,7 +4206,8 @@ QList<ArgumentList> *copyArgumentLists(const QList<ArgumentList> *srcLists)
...
@@ -4200,7 +4206,8 @@ QList<ArgumentList> *copyArgumentLists(const QList<ArgumentList> *srcLists)
* strip both unless A<T> or B<S> are specialized template classes.
* strip both unless A<T> or B<S> are specialized template classes.
*/
*/
QCString
stripTemplateSpecifiersFromScope
(
const
QCString
&
fullName
,
QCString
stripTemplateSpecifiersFromScope
(
const
QCString
&
fullName
,
bool
parentOnly
)
bool
parentOnly
,
QCString
*
pLastScopeStripped
)
{
{
QCString
result
;
QCString
result
;
int
p
=
0
;
int
p
=
0
;
...
@@ -4237,6 +4244,10 @@ QCString stripTemplateSpecifiersFromScope(const QCString &fullName,
...
@@ -4237,6 +4244,10 @@ QCString stripTemplateSpecifiersFromScope(const QCString &fullName,
result
+=
fullName
.
mid
(
i
,
e
-
i
);
result
+=
fullName
.
mid
(
i
,
e
-
i
);
//printf("2:result+=%s\n",fullName.mid(i,e-i-1).data());
//printf("2:result+=%s\n",fullName.mid(i,e-i-1).data());
}
}
else
if
(
pLastScopeStripped
)
{
*
pLastScopeStripped
=
fullName
.
mid
(
i
,
e
-
i
);
}
p
=
e
;
p
=
e
;
i
=
fullName
.
find
(
'<'
,
p
);
i
=
fullName
.
find
(
'<'
,
p
);
}
}
...
@@ -4420,7 +4431,7 @@ void addRefItem(const QList<ListItemInfo> *sli,
...
@@ -4420,7 +4431,7 @@ void addRefItem(const QList<ListItemInfo> *sli,
const
char
*
prefix
,
const
char
*
prefix
,
const
char
*
name
,
const
char
*
title
,
const
char
*
args
)
const
char
*
name
,
const
char
*
title
,
const
char
*
args
)
{
{
//printf("addRefItem(
%s,%s,%s,
%s)\n",prefix,name,title,args);
//printf("addRefItem(
prefix=%s,name=%s,title=%s,args=
%s)\n",prefix,name,title,args);
if
(
sli
)
if
(
sli
)
{
{
QListIterator
<
ListItemInfo
>
slii
(
*
sli
);
QListIterator
<
ListItemInfo
>
slii
(
*
sli
);
...
@@ -4440,8 +4451,8 @@ void addRefItem(const QList<ListItemInfo> *sli,
...
@@ -4440,8 +4451,8 @@ void addRefItem(const QList<ListItemInfo> *sli,
{
{
RefItem
*
item
=
refList
->
getRefItem
(
lii
->
itemId
);
RefItem
*
item
=
refList
->
getRefItem
(
lii
->
itemId
);
ASSERT
(
item
!=
0
);
ASSERT
(
item
!=
0
);
if
(
item
->
written
)
return
;
//printf("anchor=%s\n",item->listAnchor.data());
//printf("anchor=%s\n",item->listAnchor.data());
if
(
item
->
written
)
return
;
QCString
doc
(
1000
);
QCString
doc
(
1000
);
doc
=
"
\\
anchor "
;
doc
=
"
\\
anchor "
;
...
...
src/util.h
View file @
bb18b811
...
@@ -190,7 +190,8 @@ QCString substituteTemplateArgumentsInString(
...
@@ -190,7 +190,8 @@ QCString substituteTemplateArgumentsInString(
ArgumentList
*
copyArgumentList
(
const
ArgumentList
*
src
);
ArgumentList
*
copyArgumentList
(
const
ArgumentList
*
src
);
QList
<
ArgumentList
>
*
copyArgumentLists
(
const
QList
<
ArgumentList
>
*
srcLists
);
QList
<
ArgumentList
>
*
copyArgumentLists
(
const
QList
<
ArgumentList
>
*
srcLists
);
QCString
stripTemplateSpecifiersFromScope
(
const
QCString
&
fullName
,
QCString
stripTemplateSpecifiersFromScope
(
const
QCString
&
fullName
,
bool
parentOnly
=
TRUE
);
bool
parentOnly
=
TRUE
,
QCString
*
lastScopeStripped
=
0
);
QCString
resolveTypeDef
(
Definition
*
d
,
const
QCString
&
name
,
QCString
resolveTypeDef
(
Definition
*
d
,
const
QCString
&
name
,
Definition
**
typedefContext
=
0
);
Definition
**
typedefContext
=
0
);
QCString
mergeScopes
(
const
QCString
&
leftScope
,
const
QCString
&
rightScope
);
QCString
mergeScopes
(
const
QCString
&
leftScope
,
const
QCString
&
rightScope
);
...
...
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