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
54bcd31f
Commit
54bcd31f
authored
Jun 23, 2002
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.2.16-20020623
parent
f7c4c021
Changes
34
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
438 additions
and
254 deletions
+438
-254
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
main.cpp
addon/doxmlparser/examples/metrics/main.cpp
+3
-4
Makefile.in
doc/Makefile.in
+1
-1
Makefile.latex
doc/Makefile.latex
+1
-1
Makefile.win_make.in
doc/Makefile.win_make.in
+1
-1
Makefile.win_nmake.in
doc/Makefile.win_nmake.in
+1
-1
config.doc
doc/config.doc
+12
-1
doxygen_manual.tex
doc/doxygen_manual.tex
+1
-2
language.doc
doc/language.doc
+1
-1
todo.doc
doc/todo.doc
+0
-37
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+2
-5
config.l
src/config.l
+12
-2
doc.l
src/doc.l
+30
-73
dot.cpp
src/dot.cpp
+46
-45
doxygen.cpp
src/doxygen.cpp
+14
-9
htmlgen.cpp
src/htmlgen.cpp
+36
-0
htmlgen.h
src/htmlgen.h
+4
-2
htmlhelp.cpp
src/htmlhelp.cpp
+79
-1
latexgen.cpp
src/latexgen.cpp
+33
-1
latexgen.h
src/latexgen.h
+4
-2
mangen.cpp
src/mangen.cpp
+36
-10
mangen.h
src/mangen.h
+4
-2
memberdef.cpp
src/memberdef.cpp
+10
-15
outputgen.h
src/outputgen.h
+4
-1
outputlist.cpp
src/outputlist.cpp
+2
-1
outputlist.h
src/outputlist.h
+9
-3
rtfgen.cpp
src/rtfgen.cpp
+65
-21
rtfgen.h
src/rtfgen.h
+3
-1
scanner.l
src/scanner.l
+2
-2
translator_es.h
src/translator_es.h
+1
-1
xmlgen.cpp
src/xmlgen.cpp
+15
-2
No files found.
INSTALL
View file @
54bcd31f
DOXYGEN Version 1.2.16-200206
09
DOXYGEN Version 1.2.16-200206
23
Please read the installation section of the manual for instructions.
Please read the installation section of the manual for instructions.
--------
--------
Dimitri van Heesch (
09
June 2002)
Dimitri van Heesch (
23
June 2002)
README
View file @
54bcd31f
DOXYGEN Version 1.2.16_200206
09
DOXYGEN Version 1.2.16_200206
23
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) (
09
June 2002)
Dimitri van Heesch (dimitri@stack.nl) (
23
June 2002)
VERSION
View file @
54bcd31f
1.2.16-200206
09
1.2.16-200206
23
addon/doxmlparser/examples/metrics/main.cpp
View file @
54bcd31f
...
@@ -92,7 +92,7 @@ int main(int argc,char **argv)
...
@@ -92,7 +92,7 @@ int main(int argc,char **argv)
ICompound
*
comp
;
ICompound
*
comp
;
for
(
cli
->
toFirst
();(
comp
=
cli
->
current
());
cli
->
toNext
())
for
(
cli
->
toFirst
();(
comp
=
cli
->
current
());
cli
->
toNext
())
{
{
printf
(
"Processing %s...
\n
"
,
comp
->
name
()
.
data
());
printf
(
"Processing %s...
\n
"
,
comp
->
name
()
->
latin1
());
bool
hasDocs
=
isDocumented
(
comp
->
briefDescription
(),
comp
->
detailedDescription
());
bool
hasDocs
=
isDocumented
(
comp
->
briefDescription
(),
comp
->
detailedDescription
());
switch
(
comp
->
kind
())
switch
(
comp
->
kind
())
{
{
...
@@ -108,7 +108,6 @@ int main(int argc,char **argv)
...
@@ -108,7 +108,6 @@ int main(int argc,char **argv)
case
ICompound
:
:
File
:
numFiles
++
;
break
;
case
ICompound
:
:
File
:
numFiles
++
;
break
;
case
ICompound
:
:
Group
:
numGroups
++
;
break
;
case
ICompound
:
:
Group
:
numGroups
++
;
break
;
case
ICompound
:
:
Page
:
numPages
++
;
break
;
case
ICompound
:
:
Page
:
numPages
++
;
break
;
case
ICompound
:
:
Package
:
numPackages
++
;
break
;
default:
break
;
default:
break
;
}
}
...
@@ -120,7 +119,7 @@ int main(int argc,char **argv)
...
@@ -120,7 +119,7 @@ int main(int argc,char **argv)
IMember
*
mem
;
IMember
*
mem
;
for
(
mli
->
toFirst
();(
mem
=
mli
->
current
());
mli
->
toNext
())
for
(
mli
->
toFirst
();(
mem
=
mli
->
current
());
mli
->
toNext
())
{
{
IParamIterator
*
pli
=
mem
->
params
();
IParamIterator
*
pli
=
mem
->
param
eter
s
();
IParam
*
par
;
IParam
*
par
;
if
(
comp
->
kind
()
==
ICompound
::
Class
||
if
(
comp
->
kind
()
==
ICompound
::
Class
||
comp
->
kind
()
==
ICompound
::
Struct
||
comp
->
kind
()
==
ICompound
::
Struct
||
...
@@ -203,7 +202,7 @@ int main(int argc,char **argv)
...
@@ -203,7 +202,7 @@ int main(int argc,char **argv)
{
{
numParams
++
;
numParams
++
;
}
}
if
(
mem
->
typeString
(
)
!=
"void"
)
if
(
QString
(
mem
->
typeString
()
->
latin1
()
)
!=
"void"
)
{
{
numParams
++
;
// count non-void return types as well
numParams
++
;
// count non-void return types as well
}
}
...
...
doc/Makefile.in
View file @
54bcd31f
...
@@ -23,7 +23,7 @@ all: language FORCE
...
@@ -23,7 +23,7 @@ all: language FORCE
@
cp
Makefile.latex ../latex/Makefile
@
cp
Makefile.latex ../latex/Makefile
@
sed
-e
"s/
\$
$VERSION
/
$(VERSION)
/g"
doxygen_manual.tex
>
../latex/doxygen_manual.tex
@
sed
-e
"s/
\$
$VERSION
/
$(VERSION)
/g"
doxygen_manual.tex
>
../latex/doxygen_manual.tex
@
sed
-e
"s/
\$
$VERSION
/
$(VERSION)
/g"
doxygen.sty
>
../latex/doxygen.sty
@
sed
-e
"s/
\$
$VERSION
/
$(VERSION)
/g"
doxygen.sty
>
../latex/doxygen.sty
@
cp
doxygen_logo.eps ../latex
@
epstopdf doxygen_logo.eps
-o
=
../latex/doxygen_logo.pdf
clean
:
clean
:
rm
-rf
../html ../latex
*
.bak translator_report.txt
rm
-rf
../html ../latex
*
.bak translator_report.txt
...
...
doc/Makefile.latex
View file @
54bcd31f
...
@@ -28,4 +28,4 @@ doxygen_manual.pdf: doxygen_manual.tex doxygen.sty
...
@@ -28,4 +28,4 @@ doxygen_manual.pdf: doxygen_manual.tex doxygen.sty
echo
"Rerunning latex...."
echo
"Rerunning latex...."
pdflatex doxygen_manual.tex
pdflatex doxygen_manual.tex
clean
:
clean
:
rm
-f
*
.ps
*
.dvi
*
.aux
*
.toc
*
.idx
*
.ind
*
.ilg
*
.log
*
.pdf
rm
-f
*
.ps
*
.dvi
*
.aux
*
.toc
*
.idx
*
.ind
*
.ilg
*
.log
doxygen_manual
.pdf
doc/Makefile.win_make.in
View file @
54bcd31f
...
@@ -22,7 +22,7 @@ all: language FORCE
...
@@ -22,7 +22,7 @@ all: language FORCE
@
copy Makefile.latex ..
\l
atex
\M
akefile
@
copy Makefile.latex ..
\l
atex
\M
akefile
@
sed
-e
"s/
\$
$VERSION
/
$(VERSION)
/g"
doxygen_manual.tex
>
..
\l
atex
\d
oxygen_manual.tex
@
sed
-e
"s/
\$
$VERSION
/
$(VERSION)
/g"
doxygen_manual.tex
>
..
\l
atex
\d
oxygen_manual.tex
@
sed
-e
"s/
\$
$VERSION
/
$(VERSION)
/g"
doxygen.sty
>
..
\l
atex
\d
oxygen.sty
@
sed
-e
"s/
\$
$VERSION
/
$(VERSION)
/g"
doxygen.sty
>
..
\l
atex
\d
oxygen.sty
@
copy doxygen_logo.eps ..
\l
atex
@
epstopdf doxygen_logo.eps
-o
=
..
\l
atex
\d
oxygen_logo.pdf
clean
:
clean
:
del /s /q ..
\h
tml ..
\l
atex
del /s /q ..
\h
tml ..
\l
atex
...
...
doc/Makefile.win_nmake.in
View file @
54bcd31f
...
@@ -22,7 +22,7 @@ all: language FORCE
...
@@ -22,7 +22,7 @@ all: language FORCE
@
copy Makefile.latex ..
\l
atex
\M
akefile
@
copy Makefile.latex ..
\l
atex
\M
akefile
@
sed
-e
"s/
\$
$VERSION
/
$(VERSION)
/g"
doxygen_manual.tex
>
..
\l
atex
\d
oxygen_manual.tex
@
sed
-e
"s/
\$
$VERSION
/
$(VERSION)
/g"
doxygen_manual.tex
>
..
\l
atex
\d
oxygen_manual.tex
@
sed
-e
"s/
\$
$VERSION
/
$(VERSION)
/g"
doxygen.sty
>
..
\l
atex
\d
oxygen.sty
@
sed
-e
"s/
\$
$VERSION
/
$(VERSION)
/g"
doxygen.sty
>
..
\l
atex
\d
oxygen.sty
@
copy doxygen_logo.eps ..
\l
atex
@
epstopdf doxygen_logo.eps
-o
=
..
\l
atex
\d
oxygen_logo.pdf
clean
:
clean
:
del /s /q ..
\h
tml ..
\l
atex
del /s /q ..
\h
tml ..
\l
atex
...
...
doc/config.doc
View file @
54bcd31f
...
@@ -155,6 +155,7 @@ followed by the descriptions of the tags grouped by category.
...
@@ -155,6 +155,7 @@ followed by the descriptions of the tags grouped by category.
<
li
>
\
refitem
cfg_max_dot_graph_height
MAX_DOT_GRAPH_HEIGHT
<
li
>
\
refitem
cfg_max_dot_graph_height
MAX_DOT_GRAPH_HEIGHT
<
li
>
\
refitem
cfg_max_dot_graph_width
MAX_DOT_GRAPH_WIDTH
<
li
>
\
refitem
cfg_max_dot_graph_width
MAX_DOT_GRAPH_WIDTH
<
li
>
\
refitem
cfg_max_initializer_lines
MAX_INITIALIZER_LINES
<
li
>
\
refitem
cfg_max_initializer_lines
MAX_INITIALIZER_LINES
<
li
>
\
refitem
cfg_multiline_cpp_is_brief
MULTILINE_CPP_IS_BRIEF
<
li
>
\
refitem
cfg_optimize_output_for_c
OPTIMIZE_OUTPUT_FOR_C
<
li
>
\
refitem
cfg_optimize_output_for_c
OPTIMIZE_OUTPUT_FOR_C
<
li
>
\
refitem
cfg_optimize_output_java
OPTIMIZE_OUTPUT_JAVA
<
li
>
\
refitem
cfg_optimize_output_java
OPTIMIZE_OUTPUT_JAVA
<
li
>
\
refitem
cfg_output_directory
OUTPUT_DIRECTORY
<
li
>
\
refitem
cfg_output_directory
OUTPUT_DIRECTORY
...
@@ -401,6 +402,15 @@ followed by the descriptions of the tags grouped by category.
...
@@ -401,6 +402,15 @@ followed by the descriptions of the tags grouped by category.
comment as the brief description. If set to NO (the default), the
comment as the brief description. If set to NO (the default), the
Javadoc-style will behave just like the Qt-style comments.
Javadoc-style will behave just like the Qt-style comments.
\anchor cfg_multiline_cpp_is_brief
<dt>\c MULTILINE_CPP_IS_BRIEF <dd>
\addindex MULTILINE_CPP_IS_BRIEF
The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
treat a multi-line C++ special comment block (i.e. a block of //! or ///
comments) as a brief description. This used to be the default behaviour.
The new default is to treat a multi-line C++ comment block as a detailed
description. Set this tag to YES if you prefer the old behaviour instead.
\anchor cfg_details_at_top
\anchor cfg_details_at_top
<dt>\c DETAILS_AT_TOP <dd>
<dt>\c DETAILS_AT_TOP <dd>
\addindex DETAILS_AT_TOP
\addindex DETAILS_AT_TOP
...
@@ -1171,7 +1181,8 @@ EXTRA_PACKAGES = times
...
@@ -1171,7 +1181,8 @@ EXTRA_PACKAGES = times
\addindex SKIP_FUNCTION_MACROS
\addindex SKIP_FUNCTION_MACROS
If the \c SKIP_FUNCTION_MACROS tag is set to \c YES (the default) then
If the \c SKIP_FUNCTION_MACROS tag is set to \c YES (the default) then
doxygen'
s
preprocessor
will
remove
all
function
-
like
macros
that
are
alone
doxygen'
s
preprocessor
will
remove
all
function
-
like
macros
that
are
alone
on
a
line
and
do
not
end
with
a
semicolon
.
Such
function
macros
are
typically
on
a
line
,
have
an
all
uppercase
name
,
and
do
not
end
with
a
semicolon
.
Such
function
macros
are
typically
used
for
boiler
-
plate
code
,
and
will
confuse
the
parser
if
not
removed
.
used
for
boiler
-
plate
code
,
and
will
confuse
the
parser
if
not
removed
.
</
dl
>
</
dl
>
...
...
doc/doxygen_manual.tex
View file @
54bcd31f
...
@@ -33,8 +33,7 @@
...
@@ -33,8 +33,7 @@
\setlength
{
\footrulewidth
}{
0.4pt
}
\setlength
{
\footrulewidth
}{
0.4pt
}
\begin{document}
\begin{document}
\begin{titlepage}
\begin{titlepage}
\setlength
{
\epsfxsize
}{
\textwidth
}
\includegraphics
[width=\textwidth]
{
doxygen
_
logo
}
\epsffile
{
doxygen
_
logo.eps
}
\begin{center}
\begin{center}
Manual for version
$
VERSION
\\
[
2
ex
]
Manual for version
$
VERSION
\\
[
2
ex
]
Written by Dimitri van Heesch
\\
[
2
ex
]
Written by Dimitri van Heesch
\\
[
2
ex
]
...
...
doc/language.doc
View file @
54bcd31f
...
@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
...
@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
that the text fragments that doxygen generates can be produced in
that the text fragments that doxygen generates can be produced in
languages other than English (the default) at configuration time.
languages other than English (the default) at configuration time.
Currently (version 1.2.16-200206
03
), 27 languages
Currently (version 1.2.16-200206
16
), 27 languages
are supported (sorted alphabetically):
are supported (sorted alphabetically):
Brazilian Portuguese, Chinese, Chinese Traditional, Croatian, Czech,
Brazilian Portuguese, Chinese, Chinese Traditional, Croatian, Czech,
Danish, Dutch, English, Finnish, French,
Danish, Dutch, English, Finnish, French,
...
...
doc/todo.doc
deleted
100644 → 0
View file @
f7c4c021
/******************************************************************************
*
*
*
* Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
/*! \page todo Doxygen TODO's
<h3>TODO/Wish list</h3>
<ul>
<li>Expand namespaces in the file docs with the contents that are
specific to the file (maybe also expand the classes inside a namespace).
<li>Add support for grouping members, and document then as a group.
<li>Support for K&R-style function arguments.
<li>More output formats: suggested are info format and RTF format.
<li>Split long lists in an index to a set of smaller lists.
<li>Add a nice graphical front-end for creating and modifying the
configuration file (it should be flexible enough to quickly add new options).
<li>Improve the search index generation, so it uses less memory and
is easier to get running.
<li>Generate code metrics (Anyone know a good book about code metrics?)
<li>Add features that you think are missing... So if you know any that are
not yet listed here, please let me know.
</ul>
*/
packages/rpm/doxygen.spec
View file @
54bcd31f
Summary: A documentation system for C/C++.
Summary: A documentation system for C/C++.
Name: doxygen
Name: doxygen
Version: 1.2.16_200206
09
Version: 1.2.16_200206
23
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 @
54bcd31f
...
@@ -728,14 +728,11 @@ void ClassDef::writeDetailedDescription(OutputList &ol, OutputList &briefOutput,
...
@@ -728,14 +728,11 @@ void ClassDef::writeDetailedDescription(OutputList &ol, OutputList &briefOutput,
// write examples
// write examples
if
(
exampleFlag
)
if
(
exampleFlag
)
{
{
ol
.
startDescList
(
BaseOutputDocInterface
::
Examples
);
ol
.
startSimpleSect
(
BaseOutputDocInterface
::
Examples
,
0
,
0
,
theTranslator
->
trExamples
()
+
": "
);
parseText
(
ol
,
theTranslator
->
trExamples
()
+
": "
);
ol
.
endDescTitle
();
ol
.
writeDescItem
();
ol
.
writeDescItem
();
ol
.
newParagraph
();
ol
.
newParagraph
();
writeExample
(
ol
,
m_exampleSDict
);
writeExample
(
ol
,
m_exampleSDict
);
//ol.endDescItem();
ol
.
endSimpleSect
();
ol
.
endDescList
();
}
}
ol
.
newParagraph
();
ol
.
newParagraph
();
writeSourceDef
(
ol
,
name
());
writeSourceDef
(
ol
,
name
());
...
...
src/config.l
View file @
54bcd31f
...
@@ -1484,6 +1484,15 @@ void Config::create()
...
@@ -1484,6 +1484,15 @@ void Config::create()
"explict @brief command for a brief description. \n",
"explict @brief command for a brief description. \n",
FALSE
FALSE
);
);
cb = addBool(
"MULTILINE_CPP_IS_BRIEF",
"The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen \n"
"treat a multi-line C++ special comment block (i.e. a block of //! or /// \n"
"comments) as a brief description. This used to be the default behaviour. \n"
"The new default is to treat a multi-line C++ comment block as a detailed \n"
"description. Set this tag to YES if you prefer the old behaviour instead. \n",
FALSE
);
cb = addBool(
cb = addBool(
"DETAILS_AT_TOP",
"DETAILS_AT_TOP",
"If the DETAILS_AT_TOP tag is set to YES then Doxygen \n"
"If the DETAILS_AT_TOP tag is set to YES then Doxygen \n"
...
@@ -2188,8 +2197,9 @@ void Config::create()
...
@@ -2188,8 +2197,9 @@ void Config::create()
"SKIP_FUNCTION_MACROS",
"SKIP_FUNCTION_MACROS",
"If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then \n"
"If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then \n"
"doxygen's preprocessor will remove all function-like macros that are alone \n"
"doxygen's preprocessor will remove all function-like macros that are alone \n"
"on a line and do not end with a semicolon. Such function macros are typically \n"
"on a line, have an all uppercase name, and do not end with a semicolon. Such \n"
"used for boiler-plate code, and will confuse the parser if not removed. \n",
"function macros are typically used for boiler-plate code, and will confuse the \n"
"parser if not removed. \n",
TRUE
TRUE
);
);
cb->addDependency("ENABLE_PREPROCESSING");
cb->addDependency("ENABLE_PREPROCESSING");
...
...
src/doc.l
View file @
54bcd31f
...
@@ -551,7 +551,7 @@ static void endBlock()
...
@@ -551,7 +551,7 @@ static void endBlock()
}
}
else
else
{
{
outDoc->end
DescLis
t();
outDoc->end
SimpleSec
t();
}
}
currentListIndent.pop();
currentListIndent.pop();
inParamBlock=inRetValBlock=inSeeBlock=inReturnBlock=inAuthorBlock=
inParamBlock=inRetValBlock=inSeeBlock=inReturnBlock=inAuthorBlock=
...
@@ -928,7 +928,7 @@ static void checkArgName(const QCString &name,bool isParam)
...
@@ -928,7 +928,7 @@ static void checkArgName(const QCString &name,bool isParam)
if (!Config_getBool("WARN_IF_UNDOCUMENTED")) return;
if (!Config_getBool("WARN_IF_UNDOCUMENTED")) return;
//printf("name=%s\n",name.data());
//printf("name=%s\n",name.data());
static QRegExp re("[a-zA-Z0-9_]+");
static QRegExp re("[a-zA-Z0-9_]+
\\.*
");
int p=0,i=0,l;
int p=0,i=0,l;
while ((i=re.match(name,p,&l))!=-1)
while ((i=re.match(name,p,&l))!=-1)
{
{
...
@@ -1103,7 +1103,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
...
@@ -1103,7 +1103,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
SCOPEMASK {ID}?(("::"|"#")?(~)?{ID})+
SCOPEMASK {ID}?(("::"|"#")?(~)?{ID})+
URLCHAR [a-z_A-Z0-9\!\~\:\;\'\$\?\@\&\%\#\.\-\+\/\=]
URLCHAR [a-z_A-Z0-9\!\~\:\;\'\$\?\@\&\%\#\.\-\+\/\=]
URLMASK (([a-z_A-Z][^\>\"\n]*{URLCHAR})|({URLCHAR}+))(
"("{URLCHAR}*")"
)?
URLMASK (([a-z_A-Z][^\>\"\n]*{URLCHAR})|({URLCHAR}+))(
[({]{URLCHAR}*[)}]
)?
NONTERM [\{\}\[\]\`\~\@\|\-\+\#\$\/\\\!\%\^\&\*()a-z_A-Z<>0-9\x80-\xff]
NONTERM [\{\}\[\]\`\~\@\|\-\+\#\$\/\\\!\%\^\&\*()a-z_A-Z<>0-9\x80-\xff]
WORD ({NONTERM}+([^\n\t ]*{NONTERM}+)?)|("\""[^\n\"]*"\"")
WORD ({NONTERM}+([^\n\t ]*{NONTERM}+)?)|("\""[^\n\"]*"\"")
ATTR ({B}+[^>\n]*)?
ATTR ({B}+[^>\n]*)?
...
@@ -1456,9 +1456,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1456,9 +1456,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (b) endBlock();
if (b) endBlock();
inParBlock=TRUE;
inParBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Par);
outDoc->startSimpleSect(BaseOutputDocInterface::Par,0,0,title);
outDoc->docify(title);
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
else
else
...
@@ -1478,9 +1476,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1478,9 +1476,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inWarningBlock=TRUE;
inWarningBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Warning);
outDoc->startSimpleSect(BaseOutputDocInterface::Warning,0,0,theTranslator->trWarning()+": ");
scanString(theTranslator->trWarning()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
else
else
...
@@ -1499,9 +1495,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1499,9 +1495,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inRemarkBlock=TRUE;
inRemarkBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Remark);
outDoc->startSimpleSect(BaseOutputDocInterface::Remark,0,0,theTranslator->trRemarks()+": ");
scanString(theTranslator->trRemarks()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
else
else
...
@@ -1520,9 +1514,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1520,9 +1514,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inAttentionBlock=TRUE;
inAttentionBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Attention);
outDoc->startSimpleSect(BaseOutputDocInterface::Attention,0,0,theTranslator->trAttention()+": ");
scanString(theTranslator->trAttention()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
else
else
...
@@ -1541,9 +1533,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1541,9 +1533,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inNoteBlock=TRUE;
inNoteBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Note);
outDoc->startSimpleSect(BaseOutputDocInterface::Note,0,0,theTranslator->trNote()+": ");
scanString(theTranslator->trNote()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
else
else
...
@@ -1562,9 +1552,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1562,9 +1552,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inPreBlock=TRUE;
inPreBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Pre);
outDoc->startSimpleSect(BaseOutputDocInterface::Pre,0,0,theTranslator->trPrecondition()+": ");
scanString(theTranslator->trPrecondition()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
else
else
...
@@ -1583,9 +1571,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1583,9 +1571,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inPostBlock=TRUE;
inPostBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Post);
outDoc->startSimpleSect(BaseOutputDocInterface::Post,0,0,theTranslator->trPostcondition()+": ");
scanString(theTranslator->trPostcondition()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
else
else
...
@@ -1604,9 +1590,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1604,9 +1590,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inInvarBlock=TRUE;
inInvarBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Invar);
outDoc->startSimpleSect(BaseOutputDocInterface::Invar,0,0,theTranslator->trInvariant()+": ");
scanString(theTranslator->trInvariant()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
else
else
...
@@ -1625,9 +1609,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1625,9 +1609,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inVersionBlock=TRUE;
inVersionBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Version);
outDoc->startSimpleSect(BaseOutputDocInterface::Version,0,0,theTranslator->trVersion()+": ");
scanString(theTranslator->trVersion()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
else
else
...
@@ -1646,9 +1628,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1646,9 +1628,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inSinceBlock=TRUE;
inSinceBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Since);
outDoc->startSimpleSect(BaseOutputDocInterface::Since,0,0,theTranslator->trSince()+": ");
scanString(theTranslator->trSince()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
else
else
...
@@ -1667,9 +1647,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1667,9 +1647,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inDateBlock=TRUE;
inDateBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Date);
outDoc->startSimpleSect(BaseOutputDocInterface::Date,0,0,theTranslator->trDate()+": ");
scanString(theTranslator->trDate()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
else
else
...
@@ -1692,12 +1670,10 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1692,12 +1670,10 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
endArgumentList();
endArgumentList();
if (inBlock()) endBlock();
if (inBlock()) endBlock();
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Todo);
outDoc->startSimpleSect(BaseOutputDocInterface::Todo,"todo",item->listAnchor,theTranslator->trTodo()+": ");
outDoc->writeObjectLink(0,"todo",item->listAnchor,theTranslator->trTodo()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
internalParseDocument(item->text);
internalParseDocument(item->text);
outDoc->end
DescLis
t();
outDoc->end
SimpleSec
t();
currentListIndent.pop();
currentListIndent.pop();
}
}
}
}
...
@@ -1716,12 +1692,10 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1716,12 +1692,10 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
endArgumentList();
endArgumentList();
if (inBlock()) endBlock();
if (inBlock()) endBlock();
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Test);
outDoc->startSimpleSect(BaseOutputDocInterface::Test,"test",item->listAnchor,theTranslator->trTest()+": ");
outDoc->writeObjectLink(0,"test",item->listAnchor,theTranslator->trTest()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
internalParseDocument(item->text);
internalParseDocument(item->text);
outDoc->end
DescLis
t();
outDoc->end
SimpleSec
t();
currentListIndent.pop();
currentListIndent.pop();
}
}
}
}
...
@@ -1740,12 +1714,10 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1740,12 +1714,10 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
endArgumentList();
endArgumentList();
if (inBlock()) endBlock();
if (inBlock()) endBlock();
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Bug);
outDoc->startSimpleSect(BaseOutputDocInterface::Bug,"bug",item->listAnchor,theTranslator->trBug()+": ");
outDoc->writeObjectLink(0,"bug",item->listAnchor,theTranslator->trBug()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
internalParseDocument(item->text);
internalParseDocument(item->text);
outDoc->end
DescLis
t();
outDoc->end
SimpleSec
t();
currentListIndent.pop();
currentListIndent.pop();
}
}
}
}
...
@@ -1760,9 +1732,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1760,9 +1732,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inDeprecatedBlock=TRUE;
inDeprecatedBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Deprecated);
outDoc->startSimpleSect(BaseOutputDocInterface::Deprecated,0,0,theTranslator->trDeprecated()+": ");
scanString(theTranslator->trDeprecated()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
else
else
...
@@ -1783,12 +1753,10 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1783,12 +1753,10 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
endArgumentList();
endArgumentList();
if (inBlock()) endBlock();
if (inBlock()) endBlock();
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::RCS);
outDoc->startSimpleSect(BaseOutputDocInterface::RCS,0,0,tagName+": ");
scanString(tagName+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
scanString(tagText);
scanString(tagText);
outDoc->end
DescLis
t();
outDoc->end
SimpleSec
t();
currentListIndent.pop();
currentListIndent.pop();
}
}
<DocScan>{CMD}"author"[s]?{BSEP} {
<DocScan>{CMD}"author"[s]?{BSEP} {
...
@@ -1802,10 +1770,9 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1802,10 +1770,9 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inAuthorBlock=TRUE;
inAuthorBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Author);
bool singular = ((QString)yytext).find('s')==-1;
bool singular = ((QString)yytext).find('s')==-1;
scanString(theTranslator->trAuthor(TRUE,singular)+": ");
outDoc->startSimpleSect(BaseOutputDocInterface::Author,
outDoc->endDescTitle(
);
0,0,theTranslator->trAuthor(TRUE,singular)+": "
);
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
else
else
...
@@ -1824,9 +1791,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1824,9 +1791,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inReturnBlock=TRUE;
inReturnBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::Return);
outDoc->startSimpleSect(BaseOutputDocInterface::Return,0,0,theTranslator->trReturns()+" :");
scanString(theTranslator->trReturns()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
}
}
...
@@ -1841,9 +1806,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1841,9 +1806,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inSeeBlock=TRUE;
inSeeBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startDescList(BaseOutputDocInterface::See);
outDoc->startSimpleSect(BaseOutputDocInterface::See,0,0,theTranslator->trSeeAlso()+": ");
scanString(theTranslator->trSeeAlso()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
}
}
else
else
...
@@ -1863,9 +1826,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1863,9 +1826,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inParamBlock=TRUE;
inParamBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startParamList(BaseOutputDocInterface::Param);
outDoc->startParamList(BaseOutputDocInterface::Param,theTranslator->trParameters()+": ");
scanString(theTranslator->trParameters()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
outDoc->startDescTable();
outDoc->startDescTable();
}
}
...
@@ -1887,9 +1848,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1887,9 +1848,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inRetValBlock=TRUE;
inRetValBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startParamList(BaseOutputDocInterface::RetVal);
outDoc->startParamList(BaseOutputDocInterface::RetVal,theTranslator->trReturnValues()+": ");
scanString(theTranslator->trReturnValues()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
outDoc->startDescTable();
outDoc->startDescTable();
}
}
...
@@ -1911,9 +1870,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
...
@@ -1911,9 +1870,7 @@ LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))?
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inExceptionBlock=TRUE;
inExceptionBlock=TRUE;
currentListIndent.push("P");
currentListIndent.push("P");
outDoc->startParamList(BaseOutputDocInterface::Exception);
outDoc->startParamList(BaseOutputDocInterface::Exception,theTranslator->trExceptions()+": ");
scanString(theTranslator->trExceptions()+": ");
outDoc->endDescTitle();
outDoc->writeDescItem();
outDoc->writeDescItem();
outDoc->startDescTable();
outDoc->startDescTable();
}
}
...
...
src/dot.cpp
View file @
54bcd31f
...
@@ -1221,66 +1221,67 @@ static void findMaximalDotGraph(DotNode *root,
...
@@ -1221,66 +1221,67 @@ static void findMaximalDotGraph(DotNode *root,
bool
backArrows
=
TRUE
bool
backArrows
=
TRUE
)
)
{
{
bool
lastFit
;
int
minDistance
=
1
;
// min distance that shows only direct children.
int
minDistance
=
1
;
int
curDistance
=
2
;
// current distance to try
int
maxDistance
=
maxDist
;
int
maxDistance
=
maxDist
;
// max distance that show whole graph
int
curDistance
=
maxDistance
;
int
width
=
0
;
int
width
=
0
;
int
height
=
0
;
int
height
=
0
;
int
maxDotGraphWidth
=
Config_getInt
(
"MAX_DOT_GRAPH_WIDTH"
);
int
maxDotGraphHeight
=
Config_getInt
(
"MAX_DOT_GRAPH_HEIGHT"
);
// binary search for the maximal inheritance depth that fits in a reasonable
// binary search for the maximal inheritance depth that fits in a reasonable
// sized image (dimensions: Config_getInt("MAX_DOT_GRAPH_WIDTH"), Config_getInt("MAX_DOT_GRAPH_HEIGHT"))
// sized image (dimensions: Config_getInt("MAX_DOT_GRAPH_WIDTH"), Config_getInt("MAX_DOT_GRAPH_HEIGHT"))
do
if
(
maxDistance
>
1
)
{
{
writeDotGraph
(
root
,
format
,
baseName
,
lrRank
,
renderParents
,
do
curDistance
,
backArrows
);
QCString
dotArgs
(
4096
);
// create annotated dot file
dotArgs
.
sprintf
(
"-Tdot
\"
%s.dot
\"
-o
\"
%s_tmp.dot
\"
"
,
baseName
.
data
(),
baseName
.
data
());
if
(
iSystem
(
Config_getString
(
"DOT_PATH"
)
+
"dot"
,
dotArgs
)
!=
0
)
{
{
err
(
"Problems running dot. Check your installation!
\n
"
);
writeDotGraph
(
root
,
format
,
baseName
,
lrRank
,
renderParents
,
return
;
curDistance
,
backArrows
);
}
// extract bounding box from the result
QCString
dotArgs
(
4096
);
readBoundingBoxDot
(
baseName
+
"_tmp.dot"
,
&
width
,
&
height
);
// create annotated dot file
width
=
width
*
96
/
72
;
// 96 pixels/inch, 72 points/inch
dotArgs
.
sprintf
(
"-Tdot
\"
%s.dot
\"
-o
\"
%s_tmp.dot
\"
"
,
baseName
.
data
(),
baseName
.
data
());
height
=
height
*
96
/
72
;
// 96 pixels/inch, 72 points/inch
if
(
iSystem
(
Config_getString
(
"DOT_PATH"
)
+
"dot"
,
dotArgs
)
!=
0
)
//printf("Found bounding box (%d,%d) max (%d,%d)\n",width,height,
{
// Config_getInt("MAX_DOT_GRAPH_WIDTH"),Config_getInt("MAX_DOT_GRAPH_HEIGHT"));
err
(
"Problems running dot. Check your installation!
\n
"
);
return
;
lastFit
=
(
width
<
Config_getInt
(
"MAX_DOT_GRAPH_WIDTH"
)
&&
height
<
Config_getInt
(
"MAX_DOT_GRAPH_HEIGHT"
));
}
if
(
lastFit
)
// image is small enough
{
minDistance
=
curDistance
;
//printf("Image fits [%d-%d]\n",minDistance,maxDistance);
}
else
{
maxDistance
=
curDistance
;
//printf("Image does not fit [%d-%d]\n",minDistance,maxDistance);
}
curDistance
=
minDistance
+
(
maxDistance
-
minDistance
)
/
2
;
//printf("curDistance=%d\n",curDistance);
// remove temporary dot file
thisDir
.
remove
(
baseName
+
"_tmp.dot"
);
}
while
((
maxDistance
-
minDistance
)
>
1
);
if
(
!
lastFit
)
// extract bounding box from the result
{
readBoundingBoxDot
(
baseName
+
"_tmp.dot"
,
&
width
,
&
height
);
writeDotGraph
(
root
,
width
=
width
*
96
/
72
;
// 96 pixels/inch, 72 points/inch
height
=
height
*
96
/
72
;
// 96 pixels/inch, 72 points/inch
//printf("Found bounding box (%d,%d) max (%d,%d)\n",width,height,
// Config_getInt("MAX_DOT_GRAPH_WIDTH"),Config_getInt("MAX_DOT_GRAPH_HEIGHT"));
// remove temporary dot file
thisDir
.
remove
(
baseName
+
"_tmp.dot"
);
bool
graphFits
=
(
width
<
maxDotGraphWidth
&&
height
<
maxDotGraphHeight
);
if
(
graphFits
)
// graph is small enough
{
minDistance
=
curDistance
;
//printf("Image fits [%d-%d]\n",minDistance,maxDistance);
}
else
// graph does not fit anymore with curDistance
{
//printf("Image does not fit [%d-%d]\n",minDistance,maxDistance);
maxDistance
=
curDistance
;
}
curDistance
=
minDistance
+
(
maxDistance
-
curDistance
)
/
2
;
//printf("curDistance=%d\n",curDistance);
}
while
((
maxDistance
-
minDistance
)
>
1
);
}
writeDotGraph
(
root
,
format
,
format
,
baseName
,
baseName
,
lrRank
||
(
cur
Distance
==
1
&&
width
>
Config_getInt
(
"MAX_DOT_GRAPH_WIDTH"
)),
lrRank
||
(
min
Distance
==
1
&&
width
>
Config_getInt
(
"MAX_DOT_GRAPH_WIDTH"
)),
renderParents
,
renderParents
,
minDistance
,
minDistance
,
backArrows
backArrows
);
);
}
}
}
QCString
DotClassGraph
::
diskName
()
const
QCString
DotClassGraph
::
diskName
()
const
...
...
src/doxygen.cpp
View file @
54bcd31f
...
@@ -6350,31 +6350,36 @@ static void readFiles(BufStr &output)
...
@@ -6350,31 +6350,36 @@ static void readFiles(BufStr &output)
int
fileNameSize
=
fileName
.
length
();
int
fileNameSize
=
fileName
.
length
();
bool
multiLineIsBrief
=
Config_getBool
(
"MULTILINE_CPP_IS_BRIEF"
);
BufStr
tempBuf
(
10000
);
BufStr
tempBuf
(
10000
);
BufStr
*
bufPtr
=
multiLineIsBrief
?
&
tempBuf
:
&
output
;
// add begin filename marker
// add begin filename marker
tempBuf
.
addChar
(
0x06
);
bufPtr
->
addChar
(
0x06
);
// copy filename
// copy filename
tempBuf
.
addArray
(
fileName
.
data
(),
fileNameSize
);
bufPtr
->
addArray
(
fileName
.
data
(),
fileNameSize
);
// add end filename marker
// add end filename marker
tempBuf
.
addChar
(
0x06
);
bufPtr
->
addChar
(
0x06
);
tempBuf
.
addChar
(
'\n'
);
bufPtr
->
addChar
(
'\n'
);
if
(
Config_getBool
(
"ENABLE_PREPROCESSING"
))
if
(
Config_getBool
(
"ENABLE_PREPROCESSING"
))
{
{
msg
(
"Preprocessing %s...
\n
"
,
s
->
data
());
msg
(
"Preprocessing %s...
\n
"
,
s
->
data
());
preprocessFile
(
fileName
,
tempBuf
);
preprocessFile
(
fileName
,
*
bufPtr
);
}
}
else
else
{
{
msg
(
"Reading %s...
\n
"
,
s
->
data
());
msg
(
"Reading %s...
\n
"
,
s
->
data
());
copyAndFilterFile
(
fileName
,
tempBuf
);
copyAndFilterFile
(
fileName
,
*
bufPtr
);
}
}
tempBuf
.
addChar
(
'\n'
);
/* to prevent problems under Windows ? */
bufPtr
->
addChar
(
'\n'
);
/* to prevent problems under Windows ? */
convertCppComments
(
&
tempBuf
,
&
output
);
if
(
multiLineIsBrief
)
//output.addArray(tempBuf.data(),tempBuf.curPos());
{
convertCppComments
(
&
tempBuf
,
&
output
);
}
s
=
inputFiles
.
next
();
s
=
inputFiles
.
next
();
//printf("-------> adding new line\n");
//printf("-------> adding new line\n");
...
...
src/htmlgen.cpp
View file @
54bcd31f
...
@@ -1176,3 +1176,39 @@ void HtmlGenerator::writeLineNumber(const char *ref,const char *file,
...
@@ -1176,3 +1176,39 @@ void HtmlGenerator::writeLineNumber(const char *ref,const char *file,
}
}
codify
(
" "
);
codify
(
" "
);
}
}
void
HtmlGenerator
::
startSimpleSect
(
SectionTypes
,
const
char
*
file
,
const
char
*
anchor
,
const
char
*
title
)
{
t
<<
"<dl compact><dt><b>"
;
if
(
file
)
{
writeObjectLink
(
0
,
file
,
anchor
,
title
);
}
else
{
docify
(
title
);
}
t
<<
"</b></dt>"
;
}
void
HtmlGenerator
::
endSimpleSect
()
{
t
<<
"</dl>"
;
}
void
HtmlGenerator
::
startParamList
(
ParamListTypes
,
const
char
*
title
)
{
t
<<
"<dl compact><dt><b>"
;
docify
(
title
);
t
<<
"</b></dt>"
;
}
void
HtmlGenerator
::
endParamList
()
{
t
<<
"</dl>"
;
}
src/htmlgen.h
View file @
54bcd31f
...
@@ -191,8 +191,10 @@ class HtmlGenerator : public OutputGenerator
...
@@ -191,8 +191,10 @@ class HtmlGenerator : public OutputGenerator
void
writeCCedil
(
char
c
)
{
t
<<
"&"
<<
c
<<
"cedil;"
;
}
void
writeCCedil
(
char
c
)
{
t
<<
"&"
<<
c
<<
"cedil;"
;
}
void
startDescList
(
SectionTypes
)
{
t
<<
"<dl compact><dt><b>"
<<
endl
;
}
void
startDescList
(
SectionTypes
)
{
t
<<
"<dl compact><dt><b>"
<<
endl
;
}
void
endDescList
()
{
t
<<
"</dl>"
;
}
void
endDescList
()
{
t
<<
"</dl>"
;
}
void
startParamList
(
ParamListTypes
)
{
t
<<
"<dl compact><dt><b>"
<<
endl
;
}
void
startSimpleSect
(
SectionTypes
,
const
char
*
,
const
char
*
,
const
char
*
);
void
endParamList
()
{
t
<<
"</dl>"
;
}
void
endSimpleSect
();
void
startParamList
(
ParamListTypes
,
const
char
*
);
void
endParamList
();
void
endDescTitle
()
{
t
<<
"</b>"
;
}
void
endDescTitle
()
{
t
<<
"</b>"
;
}
void
writeDescItem
()
{
t
<<
"<dd>"
<<
endl
;
}
void
writeDescItem
()
{
t
<<
"<dd>"
<<
endl
;
}
void
startSection
(
const
char
*
,
const
char
*
,
bool
);
void
startSection
(
const
char
*
,
const
char
*
,
bool
);
...
...
src/htmlhelp.cpp
View file @
54bcd31f
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
#include "config.h"
#include "config.h"
#include "message.h"
#include "message.h"
#include "doxygen.h"
#include "doxygen.h"
#include "language.h"
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
...
@@ -248,6 +249,8 @@ HtmlHelp *HtmlHelp::getInstance()
...
@@ -248,6 +249,8 @@ HtmlHelp *HtmlHelp::getInstance()
return
theInstance
;
return
theInstance
;
}
}
static
QDict
<
QCString
>
s_languageDict
;
/*! This will create a contents file (index.hhc) and a index file (index.hhk)
/*! This will create a contents file (index.hhc) and a index file (index.hhk)
* and write the header of those files.
* and write the header of those files.
* It also creates a project file (index.hhp)
* It also creates a project file (index.hhp)
...
@@ -294,8 +297,80 @@ void HtmlHelp::initialize()
...
@@ -294,8 +297,80 @@ void HtmlHelp::initialize()
"<param name=
\"
FrameName
\"
value=
\"
right
\"
>
\n
"
"<param name=
\"
FrameName
\"
value=
\"
right
\"
>
\n
"
"</OBJECT>
\n
"
"</OBJECT>
\n
"
"<UL>
\n
"
;
"<UL>
\n
"
;
/* language codes for Html help
0x405 Czech
0x406 Danish
0x413 Dutch
0xC09 English (Australia)
0x809 English (Britain)
0x1009 English (Canada)
0x1809 English (Ireland)
0x1409 English (New Zealand)
0x1C09 English (South Africa)
0x409 English (United States)
0x40B Finnish
0x40C French
0x407 German
0x408 Greece
0x40E Hungarian
0x410 Italian
0x814 Norwegian
0x415 Polish
0x816 Portuguese(Portugal)
0x416 Portuguese(Brazil)
0x419 Russian
0x80A Spanish(Mexico)
0xC0A Spanish(Modern Sort)
0x40A Spanish(Traditional Sort)
0x41D Swedish
0x41F Turkey
0x411 Japanese
0x412 Korean
0x804 Chinese (PRC)
0x404 Chinese (Taiwan)
*/
s_languageDict
.
setAutoDelete
(
TRUE
);
s_languageDict
.
clear
();
s_languageDict
.
insert
(
"czech"
,
new
QCString
(
"0x405 Czech"
));
s_languageDict
.
insert
(
"danish"
,
new
QCString
(
"0x406 Danish"
));
s_languageDict
.
insert
(
"dutch"
,
new
QCString
(
"0x413 Dutch"
));
s_languageDict
.
insert
(
"finnish"
,
new
QCString
(
"0x40B Finnish"
));
s_languageDict
.
insert
(
"french"
,
new
QCString
(
"0x40C French"
));
s_languageDict
.
insert
(
"german"
,
new
QCString
(
"0x40C German"
));
s_languageDict
.
insert
(
"greece"
,
new
QCString
(
"0x408 Greece"
));
s_languageDict
.
insert
(
"hungarian"
,
new
QCString
(
"0x40E Hungarian"
));
s_languageDict
.
insert
(
"italian"
,
new
QCString
(
"0x410 Italian"
));
s_languageDict
.
insert
(
"norwegian"
,
new
QCString
(
"0x814 Norwegian"
));
s_languageDict
.
insert
(
"polish"
,
new
QCString
(
"0x815 Polish"
));
s_languageDict
.
insert
(
"portugese"
,
new
QCString
(
"0x815 Portuguese(Portugal)"
));
s_languageDict
.
insert
(
"brazil"
,
new
QCString
(
"0x416 Portuguese(Brazil)"
));
s_languageDict
.
insert
(
"russian"
,
new
QCString
(
"0x419 Russian"
));
s_languageDict
.
insert
(
"spanish"
,
new
QCString
(
"0x40A Spannish(Traditional Sort)"
));
s_languageDict
.
insert
(
"swedish"
,
new
QCString
(
"0x41D Swedish"
));
s_languageDict
.
insert
(
"turkey"
,
new
QCString
(
"0x41F Turkey"
));
s_languageDict
.
insert
(
"japanese"
,
new
QCString
(
"0x411 Japanese"
));
s_languageDict
.
insert
(
"korean"
,
new
QCString
(
"0x412 Korean"
));
s_languageDict
.
insert
(
"chinese"
,
new
QCString
(
"0x804 Chinese (PRC)"
));
}
}
static
QCString
getLanguageString
()
{
if
(
!
theTranslator
->
idLanguage
().
isEmpty
())
{
QCString
*
s
=
s_languageDict
[
theTranslator
->
idLanguage
()];
if
(
s
)
{
return
*
s
;
}
}
// default language
return
"0x409 English (United States)"
;
}
void
HtmlHelp
::
createProjectFile
()
void
HtmlHelp
::
createProjectFile
()
{
{
/* Write the project file */
/* Write the project file */
...
@@ -308,6 +383,8 @@ void HtmlHelp::createProjectFile()
...
@@ -308,6 +383,8 @@ void HtmlHelp::createProjectFile()
t
.
setEncoding
(
QTextStream
::
Latin1
);
t
.
setEncoding
(
QTextStream
::
Latin1
);
#endif
#endif
QCString
indexName
=
"index"
+
htmlFileExtension
;
QCString
indexName
=
"index"
+
htmlFileExtension
;
if
(
Config_getBool
(
"GENERATE_TREEVIEW"
))
indexName
=
"main"
+
htmlFileExtension
;
if
(
Config_getBool
(
"GENERATE_TREEVIEW"
))
indexName
=
"main"
+
htmlFileExtension
;
t
<<
"[OPTIONS]
\n
"
t
<<
"[OPTIONS]
\n
"
...
@@ -317,7 +394,7 @@ void HtmlHelp::createProjectFile()
...
@@ -317,7 +394,7 @@ void HtmlHelp::createProjectFile()
"Default Window=main
\n
"
"Default Window=main
\n
"
"Default topic="
<<
indexName
<<
"
\n
"
"Default topic="
<<
indexName
<<
"
\n
"
"Index file=index.hhk
\n
"
"Index file=index.hhk
\n
"
"Language=
0x409 English (United States)
\n
"
;
"Language=
"
<<
getLanguageString
()
<<
endl
;
if
(
Config_getBool
(
"BINARY_TOC"
))
t
<<
"Binary TOC=YES
\n
"
;
if
(
Config_getBool
(
"BINARY_TOC"
))
t
<<
"Binary TOC=YES
\n
"
;
if
(
Config_getBool
(
"GENERATE_CHI"
))
t
<<
"Create CHI file=YES
\n
"
;
if
(
Config_getBool
(
"GENERATE_CHI"
))
t
<<
"Create CHI file=YES
\n
"
;
t
<<
"Title="
<<
Config_getString
(
"PROJECT_NAME"
)
<<
endl
<<
endl
;
t
<<
"Title="
<<
Config_getString
(
"PROJECT_NAME"
)
<<
endl
<<
endl
;
...
@@ -372,6 +449,7 @@ void HtmlHelp::finalize()
...
@@ -372,6 +449,7 @@ void HtmlHelp::finalize()
delete
kf
;
delete
kf
;
createProjectFile
();
createProjectFile
();
s_languageDict
.
clear
();
}
}
/*! Increase the level of the contents hierarchy.
/*! Increase the level of the contents hierarchy.
...
...
src/latexgen.cpp
View file @
54bcd31f
...
@@ -196,7 +196,7 @@ void LatexGenerator::init()
...
@@ -196,7 +196,7 @@ void LatexGenerator::init()
#if defined(_MSC_VER)
#if defined(_MSC_VER)
// ps2pdf.bat does not work properly from a makefile using GNU make!
// ps2pdf.bat does not work properly from a makefile using GNU make!
<<
"
\t
gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite "
<<
"
\t
gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite "
"-sOutputFile=refman_2on1.pdf -c save pop -f refman_2on1.ps"
<<
endl
"-sOutputFile=refman_2on1.pdf -c save pop -f refman_2on1.ps"
<<
endl
;
#else
#else
<<
"
\t
ps2pdf refman_2on1.ps refman_2on1.pdf"
<<
endl
;
<<
"
\t
ps2pdf refman_2on1.ps refman_2on1.pdf"
<<
endl
;
#endif
#endif
...
@@ -1916,3 +1916,35 @@ void LatexGenerator::endDescItem()
...
@@ -1916,3 +1916,35 @@ void LatexGenerator::endDescItem()
}
}
}
}
void
LatexGenerator
::
startSimpleSect
(
SectionTypes
,
const
char
*
file
,
const
char
*
anchor
,
const
char
*
title
)
{
t
<<
"
\\
begin{Desc}
\n\\
item["
;
if
(
file
)
{
writeObjectLink
(
0
,
file
,
anchor
,
title
);
}
else
{
docify
(
title
);
}
t
<<
"]"
;
}
void
LatexGenerator
::
endSimpleSect
()
{
t
<<
"
\\
end{Desc}"
<<
endl
;
}
void
LatexGenerator
::
startParamList
(
ParamListTypes
,
const
char
*
title
)
{
t
<<
"
\\
begin{Desc}
\n\\
item["
;
docify
(
title
);
t
<<
"]"
;
}
void
LatexGenerator
::
endParamList
()
{
t
<<
"
\\
end{Desc}"
<<
endl
;
}
src/latexgen.h
View file @
54bcd31f
...
@@ -208,8 +208,10 @@ class LatexGenerator : public OutputGenerator
...
@@ -208,8 +208,10 @@ class LatexGenerator : public OutputGenerator
void
endMemberDescription
()
{
t
<<
"
\\
item
\\
end{CompactList}"
;
}
void
endMemberDescription
()
{
t
<<
"
\\
item
\\
end{CompactList}"
;
}
void
startDescList
(
SectionTypes
)
{
t
<<
"
\\
begin{Desc}
\n\\
item["
;
}
void
startDescList
(
SectionTypes
)
{
t
<<
"
\\
begin{Desc}
\n\\
item["
;
}
void
endDescList
()
{
t
<<
"
\\
end{Desc}"
<<
endl
;
}
void
endDescList
()
{
t
<<
"
\\
end{Desc}"
<<
endl
;
}
void
startParamList
(
ParamListTypes
)
{
t
<<
"
\\
begin{Desc}
\n\\
item["
;
}
void
startSimpleSect
(
SectionTypes
,
const
char
*
,
const
char
*
,
const
char
*
);
void
endParamList
()
{
t
<<
"
\\
end{Desc}"
<<
endl
;
}
void
endSimpleSect
();
void
startParamList
(
ParamListTypes
,
const
char
*
title
);
void
endParamList
();
void
endDescTitle
()
{
t
<<
"]"
;
}
void
endDescTitle
()
{
t
<<
"]"
;
}
void
writeDescItem
()
{
t
<<
"
\\
par"
<<
endl
;
}
void
writeDescItem
()
{
t
<<
"
\\
par"
<<
endl
;
}
void
startSection
(
const
char
*
,
const
char
*
,
bool
);
void
startSection
(
const
char
*
,
const
char
*
,
bool
);
...
...
src/mangen.cpp
View file @
54bcd31f
...
@@ -320,16 +320,6 @@ void ManGenerator::startDescList(SectionTypes)
...
@@ -320,16 +320,6 @@ void ManGenerator::startDescList(SectionTypes)
startBold
();
startBold
();
}
}
void
ManGenerator
::
startParamList
(
ParamListTypes
)
{
if
(
!
firstCol
)
{
t
<<
endl
<<
".PP"
<<
endl
;
firstCol
=
TRUE
;
paragraph
=
TRUE
;
col
=
0
;
}
paragraph
=
FALSE
;
}
void
ManGenerator
::
startTitle
()
void
ManGenerator
::
startTitle
()
{
{
if
(
!
firstCol
)
t
<<
endl
;
if
(
!
firstCol
)
t
<<
endl
;
...
@@ -582,4 +572,40 @@ void ManGenerator::endSection(const char *,bool sub)
...
@@ -582,4 +572,40 @@ void ManGenerator::endSection(const char *,bool sub)
}
}
}
}
void
ManGenerator
::
startSimpleSect
(
SectionTypes
,
const
char
*
,
const
char
*
,
const
char
*
title
)
{
if
(
!
firstCol
)
{
t
<<
endl
<<
".PP"
<<
endl
;
firstCol
=
TRUE
;
paragraph
=
TRUE
;
col
=
0
;
}
paragraph
=
FALSE
;
startBold
();
docify
(
title
);
endBold
();
paragraph
=
TRUE
;
}
void
ManGenerator
::
endSimpleSect
()
{
}
void
ManGenerator
::
startParamList
(
ParamListTypes
,
const
char
*
title
)
{
if
(
!
firstCol
)
{
t
<<
endl
<<
".PP"
<<
endl
;
firstCol
=
TRUE
;
paragraph
=
TRUE
;
col
=
0
;
}
paragraph
=
FALSE
;
startBold
();
docify
(
title
);
endBold
();
paragraph
=
TRUE
;
}
void
ManGenerator
::
endParamList
()
{
}
src/mangen.h
View file @
54bcd31f
...
@@ -181,8 +181,10 @@ class ManGenerator : public OutputGenerator
...
@@ -181,8 +181,10 @@ class ManGenerator : public OutputGenerator
void
endMemberDescription
()
{
t
<<
"
\\
fP
\"
"
;
firstCol
=
FALSE
;
}
void
endMemberDescription
()
{
t
<<
"
\\
fP
\"
"
;
firstCol
=
FALSE
;
}
void
startDescList
(
SectionTypes
);
void
startDescList
(
SectionTypes
);
void
endDescList
()
{}
void
endDescList
()
{}
void
startParamList
(
ParamListTypes
);
void
startSimpleSect
(
SectionTypes
,
const
char
*
,
const
char
*
,
const
char
*
);
void
endParamList
()
{}
void
endSimpleSect
();
void
startParamList
(
ParamListTypes
,
const
char
*
title
);
void
endParamList
();
void
endDescTitle
();
void
endDescTitle
();
void
writeDescItem
();
void
writeDescItem
();
void
startSection
(
const
char
*
,
const
char
*
,
bool
);
void
startSection
(
const
char
*
,
const
char
*
,
bool
);
...
...
src/memberdef.cpp
View file @
54bcd31f
...
@@ -1221,9 +1221,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -1221,9 +1221,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
if
(
docArgList
&&
docArgList
->
hasDocumentation
())
if
(
docArgList
&&
docArgList
->
hasDocumentation
())
{
{
//printf("***** argumentList is documented\n");
//printf("***** argumentList is documented\n");
ol
.
startParamList
(
BaseOutputDocInterface
::
Param
);
ol
.
startParamList
(
BaseOutputDocInterface
::
Param
,
theTranslator
->
trParameters
()
+
": "
);
parseText
(
ol
,
theTranslator
->
trParameters
()
+
": "
);
ol
.
endDescTitle
();
ol
.
writeDescItem
();
ol
.
writeDescItem
();
ol
.
startDescTable
();
ol
.
startDescTable
();
ArgumentListIterator
ali
(
*
docArgList
);
ArgumentListIterator
ali
(
*
docArgList
);
...
@@ -1241,7 +1239,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -1241,7 +1239,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
}
}
}
}
ol
.
endDescTable
();
ol
.
endDescTable
();
ol
.
end
Desc
List
();
ol
.
end
Param
List
();
}
}
if
(
isEnumerate
())
if
(
isEnumerate
())
...
@@ -1258,12 +1256,8 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -1258,12 +1256,8 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
if
(
first
)
if
(
first
)
{
{
//ol.newParagraph();
//ol.newParagraph();
ol
.
startDescList
(
BaseOutputDocInterface
::
EnumValues
);
ol
.
startSimpleSect
(
BaseOutputDocInterface
::
EnumValues
,
0
,
0
,
theTranslator
->
trEnumerationValues
()
+
": "
);
parseText
(
ol
,
theTranslator
->
trEnumerationValues
());
ol
.
docify
(
":"
);
ol
.
endDescTitle
();
ol
.
writeDescItem
();
ol
.
writeDescItem
();
//ol.startItemList();
ol
.
startDescTable
();
ol
.
startDescTable
();
}
}
...
@@ -1312,7 +1306,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -1312,7 +1306,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
{
{
//ol.endItemList();
//ol.endItemList();
ol
.
endDescTable
();
ol
.
endDescTable
();
ol
.
end
DescLis
t
();
ol
.
end
SimpleSec
t
();
ol
.
writeChar
(
'\n'
);
ol
.
writeChar
(
'\n'
);
}
}
}
}
...
@@ -1457,14 +1451,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -1457,14 +1451,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
// write the list of examples that use this member
// write the list of examples that use this member
if
(
hasExamples
())
if
(
hasExamples
())
{
{
ol
.
startDescList
(
BaseOutputDocInterface
::
Examples
);
ol
.
startSimpleSect
(
BaseOutputDocInterface
::
Examples
,
0
,
0
,
theTranslator
->
trExamples
()
+
": "
);
parseText
(
ol
,
theTranslator
->
trExamples
()
+
": "
);
//ol.writeBoldString("Examples: ");
ol
.
endDescTitle
();
ol
.
writeDescItem
();
ol
.
writeDescItem
();
writeExample
(
ol
,
getExamples
());
writeExample
(
ol
,
getExamples
());
//ol.endDescItem();
//ol.endDescItem();
ol
.
end
DescLis
t
();
ol
.
end
SimpleSec
t
();
}
}
// write reference to the source
// write reference to the source
writeSourceDef
(
ol
,
cname
);
writeSourceDef
(
ol
,
cname
);
...
@@ -1472,6 +1463,10 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
...
@@ -1472,6 +1463,10 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
writeSourceReffedBy
(
ol
,
cname
);
writeSourceReffedBy
(
ol
,
cname
);
writeInlineCode
(
ol
,
cname
);
writeInlineCode
(
ol
,
cname
);
ol
.
disableAllBut
(
OutputGenerator
::
RTF
);
ol
.
newParagraph
();
ol
.
enableAll
();
ol
.
endIndent
();
ol
.
endIndent
();
// enable LaTeX again
// enable LaTeX again
//if (Config_getBool("EXTRACT_ALL") && !hasDocs) ol.enable(OutputGenerator::Latex);
//if (Config_getBool("EXTRACT_ALL") && !hasDocs) ol.enable(OutputGenerator::Latex);
...
...
src/outputgen.h
View file @
54bcd31f
...
@@ -226,7 +226,10 @@ class BaseOutputDocInterface
...
@@ -226,7 +226,10 @@ class BaseOutputDocInterface
virtual
void
writeCCedil
(
char
)
=
0
;
virtual
void
writeCCedil
(
char
)
=
0
;
virtual
void
startDescList
(
SectionTypes
t
)
=
0
;
virtual
void
startDescList
(
SectionTypes
t
)
=
0
;
virtual
void
endDescList
()
=
0
;
virtual
void
endDescList
()
=
0
;
virtual
void
startParamList
(
ParamListTypes
t
)
=
0
;
virtual
void
startSimpleSect
(
SectionTypes
t
,
const
char
*
file
,
const
char
*
anchor
,
const
char
*
title
)
=
0
;
virtual
void
endSimpleSect
()
=
0
;
virtual
void
startParamList
(
ParamListTypes
t
,
const
char
*
title
)
=
0
;
virtual
void
endParamList
()
=
0
;
virtual
void
endParamList
()
=
0
;
virtual
void
endDescTitle
()
=
0
;
virtual
void
endDescTitle
()
=
0
;
virtual
void
writeDescItem
()
=
0
;
virtual
void
writeDescItem
()
=
0
;
...
...
src/outputlist.cpp
View file @
54bcd31f
...
@@ -261,7 +261,6 @@ FORALL1(int a1,a1)
...
@@ -261,7 +261,6 @@ FORALL1(int a1,a1)
FORALL1
(
DotClassGraph
&
a1
,
a1
)
FORALL1
(
DotClassGraph
&
a1
,
a1
)
FORALL1
(
DotInclDepGraph
&
a1
,
a1
)
FORALL1
(
DotInclDepGraph
&
a1
,
a1
)
FORALL1
(
DotGfxHierarchyTable
&
a1
,
a1
)
FORALL1
(
DotGfxHierarchyTable
&
a1
,
a1
)
FORALL1
(
ParamListTypes
a1
,
a1
)
FORALL1
(
SectionTypes
a1
,
a1
)
FORALL1
(
SectionTypes
a1
,
a1
)
#if defined(HAS_BOOL_TYPE) || defined(Q_HAS_BOOL_TYPE)
#if defined(HAS_BOOL_TYPE) || defined(Q_HAS_BOOL_TYPE)
FORALL1
(
bool
a1
,
a1
)
FORALL1
(
bool
a1
,
a1
)
...
@@ -270,6 +269,7 @@ FORALL2(bool a1,bool a2,a1,a2)
...
@@ -270,6 +269,7 @@ FORALL2(bool a1,bool a2,a1,a2)
FORALL4
(
const
char
*
a1
,
const
char
*
a2
,
const
char
*
a3
,
bool
a4
,
a1
,
a2
,
a3
,
a4
)
FORALL4
(
const
char
*
a1
,
const
char
*
a2
,
const
char
*
a3
,
bool
a4
,
a1
,
a2
,
a3
,
a4
)
#endif
#endif
FORALL2
(
int
a1
,
bool
a2
,
a1
,
a2
)
FORALL2
(
int
a1
,
bool
a2
,
a1
,
a2
)
FORALL2
(
ParamListTypes
a1
,
const
char
*
a2
,
a1
,
a2
)
FORALL1
(
IndexSections
a1
,
a1
)
FORALL1
(
IndexSections
a1
,
a1
)
FORALL2
(
const
char
*
a1
,
const
char
*
a2
,
a1
,
a2
)
FORALL2
(
const
char
*
a1
,
const
char
*
a2
,
a1
,
a2
)
FORALL2
(
const
char
*
a1
,
bool
a2
,
a1
,
a2
)
FORALL2
(
const
char
*
a1
,
bool
a2
,
a1
,
a2
)
...
@@ -277,6 +277,7 @@ FORALL3(ClassDiagram &a1,const char *a2,const char *a3,a1,a2,a3)
...
@@ -277,6 +277,7 @@ FORALL3(ClassDiagram &a1,const char *a2,const char *a3,a1,a2,a3)
FORALL3
(
const
char
*
a1
,
const
char
*
a2
,
const
char
*
a3
,
a1
,
a2
,
a3
)
FORALL3
(
const
char
*
a1
,
const
char
*
a2
,
const
char
*
a3
,
a1
,
a2
,
a3
)
FORALL3
(
const
char
*
a1
,
const
char
*
a2
,
bool
a3
,
a1
,
a2
,
a3
)
FORALL3
(
const
char
*
a1
,
const
char
*
a2
,
bool
a3
,
a1
,
a2
,
a3
)
FORALL3
(
uchar
a1
,
uchar
a2
,
uchar
a3
,
a1
,
a2
,
a3
)
FORALL3
(
uchar
a1
,
uchar
a2
,
uchar
a3
,
a1
,
a2
,
a3
)
FORALL4
(
SectionTypes
a1
,
const
char
*
a2
,
const
char
*
a3
,
const
char
*
a4
,
a1
,
a2
,
a3
,
a4
)
FORALL4
(
const
char
*
a1
,
const
char
*
a2
,
const
char
*
a3
,
const
char
*
a4
,
a1
,
a2
,
a3
,
a4
)
FORALL4
(
const
char
*
a1
,
const
char
*
a2
,
const
char
*
a3
,
const
char
*
a4
,
a1
,
a2
,
a3
,
a4
)
FORALL4
(
const
char
*
a1
,
const
char
*
a2
,
const
char
*
a3
,
int
a4
,
a1
,
a2
,
a3
,
a4
)
FORALL4
(
const
char
*
a1
,
const
char
*
a2
,
const
char
*
a3
,
int
a4
,
a1
,
a2
,
a3
,
a4
)
...
...
src/outputlist.h
View file @
54bcd31f
...
@@ -331,8 +331,13 @@ class OutputList : public OutputDocInterface
...
@@ -331,8 +331,13 @@ class OutputList : public OutputDocInterface
{
forall
(
&
OutputGenerator
::
startDescList
,
t
);
}
{
forall
(
&
OutputGenerator
::
startDescList
,
t
);
}
void
endDescList
()
void
endDescList
()
{
forall
(
&
OutputGenerator
::
endDescList
);
}
{
forall
(
&
OutputGenerator
::
endDescList
);
}
void
startParamList
(
ParamListTypes
t
)
void
startSimpleSect
(
SectionTypes
t
,
const
char
*
file
,
const
char
*
anchor
,
{
forall
(
&
OutputGenerator
::
startParamList
,
t
);
}
const
char
*
title
)
{
forall
(
&
OutputGenerator
::
startSimpleSect
,
t
,
file
,
anchor
,
title
);
}
void
endSimpleSect
()
{
forall
(
&
OutputGenerator
::
endSimpleSect
);
}
void
startParamList
(
ParamListTypes
t
,
const
char
*
title
)
{
forall
(
&
OutputGenerator
::
startParamList
,
t
,
title
);
}
void
endParamList
()
void
endParamList
()
{
forall
(
&
OutputGenerator
::
endParamList
);
}
{
forall
(
&
OutputGenerator
::
endParamList
);
}
void
endDescTitle
()
void
endDescTitle
()
...
@@ -489,7 +494,6 @@ class OutputList : public OutputDocInterface
...
@@ -489,7 +494,6 @@ class OutputList : public OutputDocInterface
FORALLPROTO1
(
DotClassGraph
&
);
FORALLPROTO1
(
DotClassGraph
&
);
FORALLPROTO1
(
DotInclDepGraph
&
);
FORALLPROTO1
(
DotInclDepGraph
&
);
FORALLPROTO1
(
DotGfxHierarchyTable
&
);
FORALLPROTO1
(
DotGfxHierarchyTable
&
);
FORALLPROTO1
(
ParamListTypes
);
FORALLPROTO1
(
SectionTypes
);
FORALLPROTO1
(
SectionTypes
);
#if defined(HAS_BOOL_TYPE) || defined(Q_HAS_BOOL_TYPE)
#if defined(HAS_BOOL_TYPE) || defined(Q_HAS_BOOL_TYPE)
FORALLPROTO1
(
bool
);
FORALLPROTO1
(
bool
);
...
@@ -498,12 +502,14 @@ class OutputList : public OutputDocInterface
...
@@ -498,12 +502,14 @@ class OutputList : public OutputDocInterface
FORALLPROTO4
(
const
char
*
,
const
char
*
,
const
char
*
,
int
);
FORALLPROTO4
(
const
char
*
,
const
char
*
,
const
char
*
,
int
);
#endif
#endif
FORALLPROTO2
(
int
,
bool
);
FORALLPROTO2
(
int
,
bool
);
FORALLPROTO2
(
ParamListTypes
,
const
char
*
);
FORALLPROTO2
(
const
char
*
,
const
char
*
);
FORALLPROTO2
(
const
char
*
,
const
char
*
);
FORALLPROTO2
(
const
char
*
,
bool
);
FORALLPROTO2
(
const
char
*
,
bool
);
FORALLPROTO3
(
const
char
*
,
const
char
*
,
bool
);
FORALLPROTO3
(
const
char
*
,
const
char
*
,
bool
);
FORALLPROTO3
(
uchar
,
uchar
,
uchar
);
FORALLPROTO3
(
uchar
,
uchar
,
uchar
);
FORALLPROTO3
(
const
char
*
,
const
char
*
,
const
char
*
);
FORALLPROTO3
(
const
char
*
,
const
char
*
,
const
char
*
);
FORALLPROTO3
(
ClassDiagram
&
,
const
char
*
,
const
char
*
);
FORALLPROTO3
(
ClassDiagram
&
,
const
char
*
,
const
char
*
);
FORALLPROTO4
(
SectionTypes
,
const
char
*
,
const
char
*
,
const
char
*
);
FORALLPROTO4
(
const
char
*
,
const
char
*
,
const
char
*
,
const
char
*
);
FORALLPROTO4
(
const
char
*
,
const
char
*
,
const
char
*
,
const
char
*
);
FORALLPROTO4
(
const
char
*
,
const
char
*
,
const
char
*
,
bool
);
FORALLPROTO4
(
const
char
*
,
const
char
*
,
const
char
*
,
bool
);
...
...
src/rtfgen.cpp
View file @
54bcd31f
...
@@ -502,7 +502,8 @@ bool StyleData::setStyle(const char* s, const char* styleName)
...
@@ -502,7 +502,8 @@ bool StyleData::setStyle(const char* s, const char* styleName)
static
const
QRegExp
subgroup
(
"^{[^}]*}
\\
s*"
);
static
const
QRegExp
subgroup
(
"^{[^}]*}
\\
s*"
);
static
const
QRegExp
any_clause
(
"^
\\\\
[a-z][a-z0-9-]*
\\
s*"
);
static
const
QRegExp
any_clause
(
"^
\\\\
[a-z][a-z0-9-]*
\\
s*"
);
int
len
;
int
len
=
0
;
// length of a particular RTF formatting control
int
ref_len
=
0
;
// length of the whole formatting section of a style
int
start
=
s_clause
.
match
(
s
,
0
,
&
len
);
int
start
=
s_clause
.
match
(
s
,
0
,
&
len
);
if
(
start
<
0
)
if
(
start
<
0
)
{
{
...
@@ -514,6 +515,7 @@ bool StyleData::setStyle(const char* s, const char* styleName)
...
@@ -514,6 +515,7 @@ bool StyleData::setStyle(const char* s, const char* styleName)
// search for the end of pure formatting codes
// search for the end of pure formatting codes
const
char
*
end
=
s
+
len
;
const
char
*
end
=
s
+
len
;
ref_len
=
len
;
bool
haveNewDefinition
=
TRUE
;
bool
haveNewDefinition
=
TRUE
;
for
(;;)
for
(;;)
{
{
...
@@ -523,7 +525,10 @@ bool StyleData::setStyle(const char* s, const char* styleName)
...
@@ -523,7 +525,10 @@ bool StyleData::setStyle(const char* s, const char* styleName)
if
(
0
!=
subgroup
.
match
(
end
,
0
,
&
len
))
if
(
0
!=
subgroup
.
match
(
end
,
0
,
&
len
))
break
;
break
;
else
else
{
end
+=
len
;
end
+=
len
;
ref_len
+=
len
;
}
}
}
else
if
(
*
end
==
'\\'
)
else
if
(
*
end
==
'\\'
)
{
{
...
@@ -534,6 +539,7 @@ bool StyleData::setStyle(const char* s, const char* styleName)
...
@@ -534,6 +539,7 @@ bool StyleData::setStyle(const char* s, const char* styleName)
if
(
0
!=
any_clause
.
match
(
end
,
0
,
&
len
))
if
(
0
!=
any_clause
.
match
(
end
,
0
,
&
len
))
break
;
break
;
end
+=
len
;
end
+=
len
;
ref_len
+=
len
;
}
}
else
if
(
*
end
==
0
)
else
if
(
*
end
==
0
)
{
// no style-definition part, keep default value
{
// no style-definition part, keep default value
...
@@ -544,8 +550,9 @@ bool StyleData::setStyle(const char* s, const char* styleName)
...
@@ -544,8 +550,9 @@ bool StyleData::setStyle(const char* s, const char* styleName)
break
;
break
;
}
}
delete
[]
reference
;
delete
[]
reference
;
reference
=
new
char
[
len
+
1
];
reference
=
new
char
[
ref_len
+
1
];
memcpy
(
reference
,
s
,
len
);
reference
[
len
]
=
0
;
memcpy
(
reference
,
s
,
ref_len
);
reference
[
ref_len
]
=
0
;
if
(
haveNewDefinition
)
if
(
haveNewDefinition
)
{
{
delete
[]
definition
;
delete
[]
definition
;
...
@@ -2047,24 +2054,6 @@ void RTFGenerator::endDescList()
...
@@ -2047,24 +2054,6 @@ void RTFGenerator::endDescList()
t
<<
"}"
;
t
<<
"}"
;
}
}
void
RTFGenerator
::
startParamList
(
ParamListTypes
)
{
DBG_RTF
(
t
<<
"{
\\
comment (startParamList)}"
<<
endl
)
t
<<
"{"
;
// ends at endParamList
t
<<
"{"
;
// ends at endDescTitle
startBold
();
newParagraph
();
}
void
RTFGenerator
::
endParamList
()
{
DBG_RTF
(
t
<<
"{
\\
comment (endParamList)}"
<<
endl
)
newParagraph
();
decrementIndentLevel
();
m_omitParagraph
=
TRUE
;
t
<<
"}"
;
}
void
RTFGenerator
::
startSection
(
const
char
*
,
const
char
*
title
,
bool
sub
)
void
RTFGenerator
::
startSection
(
const
char
*
,
const
char
*
title
,
bool
sub
)
{
{
...
@@ -2896,3 +2885,58 @@ void RTFGenerator::endMemberGroup(bool hasHeader)
...
@@ -2896,3 +2885,58 @@ void RTFGenerator::endMemberGroup(bool hasHeader)
t
<<
"}"
;
t
<<
"}"
;
}
}
void
RTFGenerator
::
startSimpleSect
(
SectionTypes
,
const
char
*
file
,
const
char
*
anchor
,
const
char
*
title
)
{
DBG_RTF
(
t
<<
"{
\\
comment (startSimpleSect)}"
<<
endl
)
t
<<
"{"
;
// ends at endDescList
t
<<
"{"
;
// ends at endDescTitle
startBold
();
newParagraph
();
if
(
file
)
{
writeObjectLink
(
0
,
file
,
anchor
,
title
);
}
else
{
docify
(
title
);
}
endBold
();
t
<<
"}"
;
newParagraph
();
incrementIndentLevel
();
t
<<
Rtf_Style_Reset
<<
Rtf_DList_DepthStyle
();
}
void
RTFGenerator
::
endSimpleSect
()
{
DBG_RTF
(
t
<<
"{
\\
comment (endSimpleSect)}"
<<
endl
)
newParagraph
();
decrementIndentLevel
();
m_omitParagraph
=
TRUE
;
t
<<
"}"
;
}
void
RTFGenerator
::
startParamList
(
ParamListTypes
,
const
char
*
title
)
{
DBG_RTF
(
t
<<
"{
\\
comment (startParamList)}"
<<
endl
)
t
<<
"{"
;
// ends at endParamList
t
<<
"{"
;
// ends at endDescTitle
startBold
();
newParagraph
();
docify
(
title
);
endBold
();
t
<<
"}"
;
newParagraph
();
incrementIndentLevel
();
t
<<
Rtf_Style_Reset
<<
Rtf_DList_DepthStyle
();
}
void
RTFGenerator
::
endParamList
()
{
DBG_RTF
(
t
<<
"{
\\
comment (endParamList)}"
<<
endl
)
newParagraph
();
decrementIndentLevel
();
m_omitParagraph
=
TRUE
;
t
<<
"}"
;
}
src/rtfgen.h
View file @
54bcd31f
...
@@ -177,7 +177,9 @@ class RTFGenerator : public OutputGenerator
...
@@ -177,7 +177,9 @@ class RTFGenerator : public OutputGenerator
void
endMemberDescription
();
void
endMemberDescription
();
void
startDescList
(
SectionTypes
);
void
startDescList
(
SectionTypes
);
void
endDescList
();
void
endDescList
();
void
startParamList
(
ParamListTypes
);
void
startSimpleSect
(
SectionTypes
,
const
char
*
,
const
char
*
,
const
char
*
);
void
endSimpleSect
();
void
startParamList
(
ParamListTypes
,
const
char
*
);
void
endParamList
();
void
endParamList
();
void
endDescTitle
();
void
endDescTitle
();
void
writeDescItem
();
void
writeDescItem
();
...
...
src/scanner.l
View file @
54bcd31f
...
@@ -445,7 +445,7 @@ static int yyread(char *buf,int max_size)
...
@@ -445,7 +445,7 @@ static int yyread(char *buf,int max_size)
%}
%}
CMD ("\\"|"@")
CMD ("\\"|"@")
SECTIONCMD {CMD}("image"|"author"|"internal"|"version"|"date"|"deprecated"|"param"|"exception"|"return"[s]?|"retval"|"bug"|"warning"|"par"|"sa"|"see"|"pre"|"post"|"invariant"|"note"|"remark"[s]?|"todo"|"test"|"ingroup"|"latexonly"|"htmlonly"|"{"|"verbatim"|"dotfile")
SECTIONCMD {CMD}("image"|"author"|"internal"|"version"|"date"|"deprecated"|"param"|"exception"|"return"[s]?|"retval"|"bug"|"warning"|"par"|"sa"|"see"|"pre"|"post"|"invariant"|"note"|"remark"[s]?|"todo"|"test"|"ingroup"|"latexonly"|"htmlonly"|"{"|"verbatim"|"dotfile"
|"defgroup"|"addtogroup"|"weakgroup"
)
BN [ \t\n\r]
BN [ \t\n\r]
BL [ \t\r]*"\n"
BL [ \t\r]*"\n"
B [ \t]
B [ \t]
...
@@ -1043,7 +1043,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
...
@@ -1043,7 +1043,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
lineCount();
lineCount();
QCString scope=yytext;
QCString scope=yytext;
current->name=removeRedundantWhiteSpace(substitute(scope,".","::"));
current->name=removeRedundantWhiteSpace(substitute(scope,".","::"));
printf("import name = %s -> %s\n",yytext,current->name.data());
//
printf("import name = %s -> %s\n",yytext,current->name.data());
current->fileName = yyFileName;
current->fileName = yyFileName;
current->section=Entry::USINGDECL_SEC;
current->section=Entry::USINGDECL_SEC;
current_root->addSubEntry(current);
current_root->addSubEntry(current);
...
...
src/translator_es.h
View file @
54bcd31f
...
@@ -50,7 +50,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_2_7
...
@@ -50,7 +50,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_2_7
*/
*/
virtual
QCString
latexLanguageSupportCommand
()
virtual
QCString
latexLanguageSupportCommand
()
{
{
return
""
;
return
"
\\
usepackage[spanish]{babel}
"
;
}
}
/*! return the language charset. This will be used for the HTML output */
/*! return the language charset. This will be used for the HTML output */
...
...
src/xmlgen.cpp
View file @
54bcd31f
...
@@ -424,7 +424,20 @@ class XMLGenerator : public OutputDocInterface
...
@@ -424,7 +424,20 @@ class XMLGenerator : public OutputDocInterface
endNestedPar
();
endNestedPar
();
m_t
<<
"</simplesect>"
;
m_t
<<
"</simplesect>"
;
}
}
void
startParamList
(
ParamListTypes
t
)
void
startSimpleSect
(
SectionTypes
st
,
const
char
*
,
const
char
*
,
const
char
*
)
{
XML_DB
((
"(startSimpleSect)
\n
"
));
m_t
<<
"<simplesect kind=
\"
"
<<
sectionTypeToString
(
st
)
<<
"
\"
>"
;
startNestedPar
();
m_inParStack
.
top
()
=
TRUE
;
}
void
endSimpleSect
()
{
XML_DB
((
"(endSimpleSect)
\n
"
));
endNestedPar
();
m_t
<<
"</simplesect>"
;
}
void
startParamList
(
ParamListTypes
t
,
const
char
*
)
{
{
XML_DB
((
"(startParamList)
\n
"
));
XML_DB
((
"(startParamList)
\n
"
));
startParMode
();
startParMode
();
...
@@ -435,7 +448,7 @@ class XMLGenerator : public OutputDocInterface
...
@@ -435,7 +448,7 @@ class XMLGenerator : public OutputDocInterface
case
RetVal
:
kind
=
"retval"
;
break
;
case
RetVal
:
kind
=
"retval"
;
break
;
case
Exception
:
kind
=
"exception"
;
break
;
case
Exception
:
kind
=
"exception"
;
break
;
}
}
m_t
<<
"<parameterlist kind=
\"
"
<<
kind
<<
"
\"
>
<title>
"
;
// non DocBook
m_t
<<
"<parameterlist kind=
\"
"
<<
kind
<<
"
\"
>"
;
// non DocBook
startNestedPar
();
startNestedPar
();
m_inParStack
.
top
()
=
TRUE
;
m_inParStack
.
top
()
=
TRUE
;
m_inParamList
=
TRUE
;
m_inParamList
=
TRUE
;
...
...
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