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
223e7de6
Commit
223e7de6
authored
Dec 22, 2014
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
various fixes and restructuring
parent
67e8d626
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
112 additions
and
309 deletions
+112
-309
commands.doc
doc/commands.doc
+11
-14
docbookvisitor.cpp
src/docbookvisitor.cpp
+6
-21
docparser.cpp
src/docparser.cpp
+49
-171
docparser.h
src/docparser.h
+5
-5
doctokenizer.h
src/doctokenizer.h
+0
-2
doctokenizer.l
src/doctokenizer.l
+25
-65
htmldocvisitor.cpp
src/htmldocvisitor.cpp
+3
-3
latexdocvisitor.cpp
src/latexdocvisitor.cpp
+6
-6
latexgen.cpp
src/latexgen.cpp
+2
-2
xmldocvisitor.cpp
src/xmldocvisitor.cpp
+4
-19
indexpage.xml
testing/031/indexpage.xml
+1
-1
No files found.
doc/commands.doc
View file @
223e7de6
...
@@ -2572,7 +2572,7 @@ class Receiver
...
@@ -2572,7 +2572,7 @@ class Receiver
step before running doxygen, you can also add the name of the image file after \c \\startuml
step before running doxygen, you can also add the name of the image file after \c \\startuml
and inside curly brackets, i.e.
and inside curly brackets, i.e.
\verbatim
\verbatim
@startuml{myimage.png}
@startuml{myimage.png}
"Image Caption" width=5cm
Alice -> Bob : Hello
Alice -> Bob : Hello
@enduml
@enduml
\endverbatim
\endverbatim
...
@@ -2897,15 +2897,16 @@ class Receiver
...
@@ -2897,15 +2897,16 @@ class Receiver
specific, so if you want to insert an image for more than one
specific, so if you want to insert an image for more than one
format you'll have to repeat this command for each format.
format you'll have to repeat this command for each format.
The first argument specifies the output format. Currently, the
The first argument specifies the output format in which the image should
following values are supported: \c html, \c latex, \c docbook and \c rtf.
be embedded. Currently, the following values are supported:
\c html, \c latex, \c docbook and \c rtf.
The second argument specifies the file name of the image.
The second argument specifies the file name of the image.
doxygen will look for files in the paths (or files) that you specified
doxygen will look for files in the paths (or files) that you specified
after the \ref cfg_image_path "IMAGE_PATH" tag.
after the \ref cfg_image_path "IMAGE_PATH" tag.
If the image is found it will be copied to the correct output directory.
If the image is found it will be copied to the correct output directory.
If the image name contains spaces you'll have to put quotes ("...") around
it.
If the image name contains spaces you'll have to put quotes ("...") around
You can also specify an absolute URL instead of a file name, but then
the name.
You can also specify an absolute URL instead of a file name, but then
doxygen does not copy the image nor check its existence.
doxygen does not copy the image nor check its existence.
The third argument is optional and can be used to specify the caption
The third argument is optional and can be used to specify the caption
...
@@ -2914,16 +2915,12 @@ class Receiver
...
@@ -2914,16 +2915,12 @@ class Receiver
spaces. The quotes are stripped before the caption is displayed.
spaces. The quotes are stripped before the caption is displayed.
The fourth argument is also optional and can be used to specify the
The fourth argument is also optional and can be used to specify the
width or height of the image. This can be useful for \LaTeX output
width or height of the image. This can be useful for \LaTeX o
r docbook o
utput
(i.e. format=<code>latex</code>).
(i.e. format=<code>latex</code>
or format=<code>docbook</code>
).
\anchor image_sizeindicator \par Size indication
\anchor image_sizeindicator \par Size indication
The \c sizeindication can
The \c sizeindication can specify the width or height to be used (or a combination).
specify the width or height to be used )or a combination). Possible
The size specifier in \LaTeX (for example `10cm` or
values are (width, analogous for height):
`4in` or a symbolic width like `\\textwidth`).
`width` or `max with` or `min width`. The size should be a valid
size specifier in \LaTeX (for example `10cm` or
`6in` or a symbolic width like `\\textwidth`). (The `max width` etc.
are based on the \LaTeX package `adjustbox`)
Here is example of a comment block:
Here is example of a comment block:
...
...
src/docbookvisitor.cpp
View file @
223e7de6
...
@@ -46,14 +46,7 @@ static void visitPreStart(FTextStream &t, const bool hasCaption, QCString name,
...
@@ -46,14 +46,7 @@ static void visitPreStart(FTextStream &t, const bool hasCaption, QCString name,
t
<<
" <imagedata"
;
t
<<
" <imagedata"
;
if
(
!
width
.
isEmpty
())
if
(
!
width
.
isEmpty
())
{
{
tmpStr
=
width
;
t
<<
" width=
\"
"
<<
convertToXML
(
width
)
<<
"
\"
"
;
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"min *width"
),
"minwidth"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"max *width"
),
"maxwidth"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"="
),
"=
\"
"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
","
),
"
\"
"
)
+
"
\"
"
;
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"
\"\"
"
),
"
\"
"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"
\\
"
),
"
\\\\
"
);
t
<<
" "
<<
tmpStr
;
}
}
else
else
{
{
...
@@ -61,15 +54,7 @@ static void visitPreStart(FTextStream &t, const bool hasCaption, QCString name,
...
@@ -61,15 +54,7 @@ static void visitPreStart(FTextStream &t, const bool hasCaption, QCString name,
}
}
if
(
!
height
.
isEmpty
())
if
(
!
height
.
isEmpty
())
{
{
tmpStr
=
height
;
t
<<
" depth=
\"
"
<<
convertToXML
(
tmpStr
)
<<
"
\"
"
;
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"min *height"
),
"mindepth"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"max *height"
),
"maxdepth"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"height="
),
"depth="
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"="
),
"=
\"
"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
","
),
"
\"
"
)
+
"
\"
"
;
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"
\"\"
"
),
"
\"
"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"
\\
"
),
"
\\\\
"
);
t
<<
" "
<<
tmpStr
;
}
}
t
<<
" align=
\"
center
\"
valign=
\"
middle
\"
scalefit=
\"
1
\"
fileref=
\"
"
<<
name
<<
"
\"
>"
;
t
<<
" align=
\"
center
\"
valign=
\"
middle
\"
scalefit=
\"
1
\"
fileref=
\"
"
<<
name
<<
"
\"
>"
;
t
<<
"</imagedata>"
<<
endl
;
t
<<
"</imagedata>"
<<
endl
;
...
@@ -1238,7 +1223,7 @@ void DocbookDocVisitor::writeMscFile(const QCString &baseName, DocVerbatim *s)
...
@@ -1238,7 +1223,7 @@ void DocbookDocVisitor::writeMscFile(const QCString &baseName, DocVerbatim *s)
QCString
outDir
=
Config_getString
(
"DOCBOOK_OUTPUT"
);
QCString
outDir
=
Config_getString
(
"DOCBOOK_OUTPUT"
);
writeMscGraphFromFile
(
baseName
+
".msc"
,
outDir
,
shortName
,
MSC_BITMAP
);
writeMscGraphFromFile
(
baseName
+
".msc"
,
outDir
,
shortName
,
MSC_BITMAP
);
visitPreStart
(
m_t
,
s
->
hasCaption
(),
shortName
,
s
->
width
(),
s
->
height
());
visitPreStart
(
m_t
,
s
->
hasCaption
(),
shortName
,
s
->
width
(),
s
->
height
());
visitCaption
(
this
,
s
->
m_children
);
visitCaption
(
this
,
s
->
children
()
);
visitPostEnd
(
m_t
,
s
->
hasCaption
());
visitPostEnd
(
m_t
,
s
->
hasCaption
());
}
}
...
@@ -1253,7 +1238,7 @@ void DocbookDocVisitor::writePlantUMLFile(const QCString &baseName, DocVerbatim
...
@@ -1253,7 +1238,7 @@ void DocbookDocVisitor::writePlantUMLFile(const QCString &baseName, DocVerbatim
QCString
outDir
=
Config_getString
(
"DOCBOOK_OUTPUT"
);
QCString
outDir
=
Config_getString
(
"DOCBOOK_OUTPUT"
);
generatePlantUMLOutput
(
baseName
,
outDir
,
PUML_BITMAP
);
generatePlantUMLOutput
(
baseName
,
outDir
,
PUML_BITMAP
);
visitPreStart
(
m_t
,
s
->
hasCaption
(),
shortName
,
s
->
width
(),
s
->
height
());
visitPreStart
(
m_t
,
s
->
hasCaption
(),
shortName
,
s
->
width
(),
s
->
height
());
visitCaption
(
this
,
s
->
m_children
);
visitCaption
(
this
,
s
->
children
()
);
visitPostEnd
(
m_t
,
s
->
hasCaption
());
visitPostEnd
(
m_t
,
s
->
hasCaption
());
}
}
...
@@ -1298,7 +1283,7 @@ void DocbookDocVisitor::writeDiaFile(const QCString &baseName, DocVerbatim *s)
...
@@ -1298,7 +1283,7 @@ void DocbookDocVisitor::writeDiaFile(const QCString &baseName, DocVerbatim *s)
QCString
outDir
=
Config_getString
(
"DOCBOOK_OUTPUT"
);
QCString
outDir
=
Config_getString
(
"DOCBOOK_OUTPUT"
);
writeDiaGraphFromFile
(
baseName
+
".dia"
,
outDir
,
shortName
,
DIA_BITMAP
);
writeDiaGraphFromFile
(
baseName
+
".dia"
,
outDir
,
shortName
,
DIA_BITMAP
);
visitPreStart
(
m_t
,
s
->
hasCaption
(),
shortName
,
s
->
width
(),
s
->
height
());
visitPreStart
(
m_t
,
s
->
hasCaption
(),
shortName
,
s
->
width
(),
s
->
height
());
visitCaption
(
this
,
s
->
m_children
);
visitCaption
(
this
,
s
->
children
()
);
visitPostEnd
(
m_t
,
s
->
hasCaption
());
visitPostEnd
(
m_t
,
s
->
hasCaption
());
}
}
...
@@ -1344,7 +1329,7 @@ void DocbookDocVisitor::writeDotFile(const QCString &baseName, DocVerbatim *s)
...
@@ -1344,7 +1329,7 @@ void DocbookDocVisitor::writeDotFile(const QCString &baseName, DocVerbatim *s)
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
writeDotGraphFromFile
(
baseName
+
".dot"
,
outDir
,
shortName
,
GOF_BITMAP
);
writeDotGraphFromFile
(
baseName
+
".dot"
,
outDir
,
shortName
,
GOF_BITMAP
);
visitPreStart
(
m_t
,
s
->
hasCaption
(),
baseName
+
".dot"
,
s
->
width
(),
s
->
height
());
visitPreStart
(
m_t
,
s
->
hasCaption
(),
baseName
+
".dot"
,
s
->
width
(),
s
->
height
());
visitCaption
(
this
,
s
->
m_children
);
visitCaption
(
this
,
s
->
children
()
);
visitPostEnd
(
m_t
,
s
->
hasCaption
());
visitPostEnd
(
m_t
,
s
->
hasCaption
());
}
}
...
...
src/docparser.cpp
View file @
223e7de6
...
@@ -839,9 +839,6 @@ static bool findDocsForMemberOrCompound(const char *commandName,
...
@@ -839,9 +839,6 @@ static bool findDocsForMemberOrCompound(const char *commandName,
static
bool
defaultHandleToken
(
DocNode
*
parent
,
int
tok
,
static
bool
defaultHandleToken
(
DocNode
*
parent
,
int
tok
,
QList
<
DocNode
>
&
children
,
bool
QList
<
DocNode
>
&
children
,
bool
handleWord
=
TRUE
);
handleWord
=
TRUE
);
static
void
defaultHandleCaptionSize
(
const
int
cmd
,
DocNode
*
parent
,
QList
<
DocNode
>
&
children
,
QCString
&
height
,
QCString
&
width
);
static
int
handleStyleArgument
(
DocNode
*
parent
,
QList
<
DocNode
>
&
children
,
static
int
handleStyleArgument
(
DocNode
*
parent
,
QList
<
DocNode
>
&
children
,
const
QCString
&
cmdName
)
const
QCString
&
cmdName
)
...
@@ -1243,65 +1240,32 @@ static DocAnchor *handleAnchor(DocNode *parent)
...
@@ -1243,65 +1240,32 @@ static DocAnchor *handleAnchor(DocNode *parent)
}
}
/* Helper function that deals with the Caption and size argument.
/* Helper function that deals with the title, width, and height arguments of various commands.
* @param parent Parent node, owner of the children list passed as
* @param[in] cmd Command id for which to extract caption and size info.
* the third argument.
* @param[in] parent Parent node, owner of the children list passed as
* @param children The list of child nodes to which the node representing
* the third argument.
* the token can be added.
* @param[in] children The list of child nodes to which the node representing
* @param height Storagre for, optional, height
* the token can be added.
* @param width Storagre for, optional, width
* @param[out] width the extracted width specifier
* @param[out] height the extracted height specifier
*/
*/
static
void
defaultHandle
CaptionSize
(
const
int
cmd
,
DocNode
*
parent
,
QList
<
DocNode
>
&
children
,
QCString
&
height
,
QCString
&
width
)
static
void
defaultHandle
TitleAndSize
(
const
int
cmd
,
DocNode
*
parent
,
QList
<
DocNode
>
&
children
,
QCString
&
width
,
QCString
&
height
)
{
{
QCString
preamble
=
""
;
int
insideString
=
0
;
g_nodeStack
.
push
(
parent
);
g_nodeStack
.
push
(
parent
);
// parse title
// parse title
doctokenizerYYsetState
Caption
();
doctokenizerYYsetState
Title
();
int
tok
;
int
tok
;
while
((
tok
=
doctokenizerYYlex
()))
while
((
tok
=
doctokenizerYYlex
()))
{
{
if
(
tok
==
TK_WORD
&&
g_token
->
name
==
"width="
)
if
(
tok
==
TK_WORD
&&
(
g_token
->
name
==
"width="
||
g_token
->
name
==
"height="
))
{
// special case: no title, but we do have a size indicator
doctokenizerYYsetStateTitleAttr
();
// strip =
width
=
preamble
+
g_token
->
name
+
g_token
->
chars
;
g_token
->
chars
=
""
;
g_token
->
name
=
""
;
preamble
=
""
;
do
{
tok
=
doctokenizerYYlex
();
}
while
(
tok
==
TK_WHITESPACE
);
break
;
}
if
(
tok
==
TK_WORD
&&
g_token
->
name
==
"height="
)
{
{
// special case: no title, but we do have a size indicator
// special case: no title, but we do have a size indicator
doctokenizerYYsetStateTitleAttr
();
doctokenizerYYsetStateTitleAttr
Value
();
// strip =
// strip =
height
=
preamble
+
g_token
->
name
+
g_token
->
chars
;
g_token
->
name
=
g_token
->
name
.
left
(
g_token
->
name
.
length
()
-
1
);
g_token
->
chars
=
""
;
g_token
->
name
=
""
;
preamble
=
""
;
do
{
tok
=
doctokenizerYYlex
();
}
while
(
tok
==
TK_WHITESPACE
);
break
;
break
;
}
}
if
(
tok
==
TK_WORD
&&
(
g_token
->
name
==
"min"
||
g_token
->
name
==
"max"
))
{
// special case: no title, but we do have a size indicator min or max
if
(
!
insideString
)
{
preamble
=
g_token
->
name
+
" "
;
break
;
}
}
insideString
=
1
;
if
(
!
defaultHandleToken
(
parent
,
tok
,
children
))
if
(
!
defaultHandleToken
(
parent
,
tok
,
children
))
{
{
switch
(
tok
)
switch
(
tok
)
...
@@ -1330,41 +1294,18 @@ static void defaultHandleCaptionSize(const int cmd, DocNode *parent, QList<DocNo
...
@@ -1330,41 +1294,18 @@ static void defaultHandleCaptionSize(const int cmd, DocNode *parent, QList<DocNo
{
{
if
(
g_token
->
name
==
"width"
)
if
(
g_token
->
name
==
"width"
)
{
{
if
(
!
width
.
isEmpty
())
width
+=
","
;
width
=
g_token
->
chars
;
width
+=
preamble
+
"width="
+
g_token
->
chars
;
preamble
=
""
;
doctokenizerYYsetStateTitleAttr
();
}
}
else
if
(
g_token
->
name
==
"height"
)
else
if
(
g_token
->
name
==
"height"
)
{
{
if
(
!
height
.
isEmpty
())
height
+=
","
;
height
=
g_token
->
chars
;
height
+=
preamble
+
"height="
+
g_token
->
chars
;
preamble
=
""
;
doctokenizerYYsetStateTitleAttr
();
}
else
if
(
g_token
->
name
==
"max"
)
{
preamble
=
"max "
;
}
else
if
(
g_token
->
name
==
"min"
)
{
preamble
=
"min "
;
}
}
else
else
{
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Unknown option
%s after
\\
%s command
"
,
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Unknown option
'%s' after
\\
%s command, expected 'width' or 'height'
"
,
qPrint
(
g_token
->
name
),
Mappers
::
cmdMapper
->
find
(
cmd
).
data
());
qPrint
(
g_token
->
name
),
Mappers
::
cmdMapper
->
find
(
cmd
).
data
());
}
}
tok
=
doctokenizerYYlex
();
do
{
tok
=
doctokenizerYYlex
();
if
(
tok
==
TK_WORD
&&
(
g_token
->
name
==
"width="
||
g_token
->
name
==
"height="
))
{
g_token
->
name
=
g_token
->
name
.
left
(
g_token
->
name
.
length
()
-
1
);
tok
=
doctokenizerYYlex
();
}
}
while
(
tok
==
TK_WHITESPACE
);
}
}
doctokenizerYYsetStatePara
();
doctokenizerYYsetStatePara
();
...
@@ -1372,6 +1313,7 @@ static void defaultHandleCaptionSize(const int cmd, DocNode *parent, QList<DocNo
...
@@ -1372,6 +1313,7 @@ static void defaultHandleCaptionSize(const int cmd, DocNode *parent, QList<DocNo
DocNode
*
n
=
g_nodeStack
.
pop
();
DocNode
*
n
=
g_nodeStack
.
pop
();
ASSERT
(
n
==
parent
);
ASSERT
(
n
==
parent
);
}
}
/* Helper function that deals with the most common tokens allowed in
/* Helper function that deals with the most common tokens allowed in
* title like sections.
* title like sections.
* @param parent Parent node, owner of the children list passed as
* @param parent Parent node, owner of the children list passed as
...
@@ -2786,7 +2728,7 @@ DocDotFile::DocDotFile(DocNode *parent,const QCString &name,const QCString &cont
...
@@ -2786,7 +2728,7 @@ DocDotFile::DocDotFile(DocNode *parent,const QCString &name,const QCString &cont
void
DocDotFile
::
parse
()
void
DocDotFile
::
parse
()
{
{
defaultHandle
CaptionSize
(
CMD_DOTFILE
,
this
,
m_children
,
m_height
,
m_width
);
defaultHandle
TitleAndSize
(
CMD_DOTFILE
,
this
,
m_children
,
m_width
,
m_height
);
bool
ambig
;
bool
ambig
;
FileDef
*
fd
=
findFileDef
(
Doxygen
::
dotFileNameDict
,
m_name
,
ambig
);
FileDef
*
fd
=
findFileDef
(
Doxygen
::
dotFileNameDict
,
m_name
,
ambig
);
...
@@ -2820,7 +2762,7 @@ DocMscFile::DocMscFile(DocNode *parent,const QCString &name,const QCString &cont
...
@@ -2820,7 +2762,7 @@ DocMscFile::DocMscFile(DocNode *parent,const QCString &name,const QCString &cont
void
DocMscFile
::
parse
()
void
DocMscFile
::
parse
()
{
{
defaultHandle
CaptionSize
(
CMD_MSCFILE
,
this
,
m_children
,
m_height
,
m_width
);
defaultHandle
TitleAndSize
(
CMD_MSCFILE
,
this
,
m_children
,
m_width
,
m_height
);
bool
ambig
;
bool
ambig
;
FileDef
*
fd
=
findFileDef
(
Doxygen
::
mscFileNameDict
,
m_name
,
ambig
);
FileDef
*
fd
=
findFileDef
(
Doxygen
::
mscFileNameDict
,
m_name
,
ambig
);
...
@@ -2856,7 +2798,7 @@ DocDiaFile::DocDiaFile(DocNode *parent,const QCString &name,const QCString &cont
...
@@ -2856,7 +2798,7 @@ DocDiaFile::DocDiaFile(DocNode *parent,const QCString &name,const QCString &cont
void
DocDiaFile
::
parse
()
void
DocDiaFile
::
parse
()
{
{
defaultHandle
CaptionSize
(
CMD_DIAFILE
,
this
,
m_children
,
m_height
,
m_width
);
defaultHandle
TitleAndSize
(
CMD_DIAFILE
,
this
,
m_children
,
m_width
,
m_height
);
bool
ambig
;
bool
ambig
;
FileDef
*
fd
=
findFileDef
(
Doxygen
::
diaFileNameDict
,
m_name
,
ambig
);
FileDef
*
fd
=
findFileDef
(
Doxygen
::
diaFileNameDict
,
m_name
,
ambig
);
...
@@ -2903,7 +2845,7 @@ void DocVhdlFlow::parse()
...
@@ -2903,7 +2845,7 @@ void DocVhdlFlow::parse()
switch
(
tok
)
switch
(
tok
)
{
{
case
TK_COMMAND
:
case
TK_COMMAND
:
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Illegal command %s as part of a
\\
mscfile
"
,
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Illegal command %s as part of a
\\
vhdlflow
"
,
qPrint
(
g_token
->
name
));
qPrint
(
g_token
->
name
));
break
;
break
;
case
TK_SYMBOL
:
case
TK_SYMBOL
:
...
@@ -2942,7 +2884,7 @@ DocImage::DocImage(DocNode *parent,const HtmlAttribList &attribs,const QCString
...
@@ -2942,7 +2884,7 @@ DocImage::DocImage(DocNode *parent,const HtmlAttribList &attribs,const QCString
void
DocImage
::
parse
()
void
DocImage
::
parse
()
{
{
defaultHandle
CaptionSize
(
CMD_IMAGE
,
this
,
m_children
,
m_height
,
m_width
);
defaultHandle
TitleAndSize
(
CMD_IMAGE
,
this
,
m_children
,
m_width
,
m_height
);
}
}
...
@@ -5006,7 +4948,7 @@ void DocPara::handleImage(const QCString &cmdName)
...
@@ -5006,7 +4948,7 @@ void DocPara::handleImage(const QCString &cmdName)
"%s is not valid"
,
"%s is not valid"
,
qPrint
(
imgType
),
qPrint
(
cmdName
));
qPrint
(
imgType
),
qPrint
(
cmdName
));
return
;
return
;
}
}
doctokenizerYYsetStateFile
();
doctokenizerYYsetStateFile
();
tok
=
doctokenizerYYlex
();
tok
=
doctokenizerYYlex
();
doctokenizerYYsetStatePara
();
doctokenizerYYsetStatePara
();
...
@@ -5022,55 +4964,8 @@ void DocPara::handleImage(const QCString &cmdName)
...
@@ -5022,55 +4964,8 @@ void DocPara::handleImage(const QCString &cmdName)
img
->
parse
();
img
->
parse
();
}
}
void
DocPara
::
handleDotFile
(
const
QCString
&
cmdName
)
template
<
class
T
>
{
void
DocPara
::
handleFile
(
const
QCString
&
cmdName
)
int
tok
=
doctokenizerYYlex
();
if
(
tok
!=
TK_WHITESPACE
)
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"expected whitespace after %s command"
,
qPrint
(
cmdName
));
return
;
}
doctokenizerYYsetStateFile
();
tok
=
doctokenizerYYlex
();
doctokenizerYYsetStatePara
();
if
(
tok
!=
TK_WORD
)
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"unexpected token %s as the argument of %s"
,
tokToString
(
tok
),
qPrint
(
cmdName
));
return
;
}
QCString
name
=
g_token
->
name
;
DocDotFile
*
df
=
new
DocDotFile
(
this
,
name
,
g_context
);
m_children
.
append
(
df
);
df
->
parse
();
}
void
DocPara
::
handleMscFile
(
const
QCString
&
cmdName
)
{
int
tok
=
doctokenizerYYlex
();
if
(
tok
!=
TK_WHITESPACE
)
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"expected whitespace after %s command"
,
qPrint
(
cmdName
));
return
;
}
doctokenizerYYsetStateFile
();
tok
=
doctokenizerYYlex
();
doctokenizerYYsetStatePara
();
if
(
tok
!=
TK_WORD
)
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"unexpected token %s as the argument of %s"
,
tokToString
(
tok
),
qPrint
(
cmdName
));
return
;
}
QCString
name
=
g_token
->
name
;
DocMscFile
*
df
=
new
DocMscFile
(
this
,
name
,
g_context
);
m_children
.
append
(
df
);
df
->
parse
();
}
void
DocPara
::
handleDiaFile
(
const
QCString
&
cmdName
)
{
{
int
tok
=
doctokenizerYYlex
();
int
tok
=
doctokenizerYYlex
();
if
(
tok
!=
TK_WHITESPACE
)
if
(
tok
!=
TK_WHITESPACE
)
...
@@ -5089,7 +4984,7 @@ void DocPara::handleDiaFile(const QCString &cmdName)
...
@@ -5089,7 +4984,7 @@ void DocPara::handleDiaFile(const QCString &cmdName)
return
;
return
;
}
}
QCString
name
=
g_token
->
name
;
QCString
name
=
g_token
->
name
;
DocDiaFile
*
df
=
new
DocDiaFile
(
this
,
name
,
g_context
);
T
*
df
=
new
T
(
this
,
name
,
g_context
);
m_children
.
append
(
df
);
m_children
.
append
(
df
);
df
->
parse
();
df
->
parse
();
}
}
...
@@ -5520,21 +5415,15 @@ int DocPara::handleCommand(const QCString &cmdName)
...
@@ -5520,21 +5415,15 @@ int DocPara::handleCommand(const QCString &cmdName)
break
;
break
;
case
CMD_DOT
:
case
CMD_DOT
:
{
{
/*
DocVerbatim
*
dv
=
new
DocVerbatim
(
this
,
g_context
,
g_token
->
verb
,
DocVerbatim
::
Dot
,
g_isExample
,
g_exampleName
);
* need a temporary variable to store information for width, height and caption
* which will be written into te right variable.
*/
DocVerbatim
*
tmp_dv
=
new
DocVerbatim
(
this
,
g_context
,
g_token
->
verb
,
DocVerbatim
::
Dot
,
g_isExample
,
g_exampleName
);
doctokenizerYYsetStatePara
();
doctokenizerYYsetStatePara
();
defaultHandleCaptionSize
(
CMD_DOT
,
tmp_dv
,
tmp_dv
->
m_children
,
tmp_dv
->
m_height
,
tmp_dv
->
m_width
)
;
QCString
width
,
height
;
defaultHandleTitleAndSize
(
CMD_DOT
,
dv
,
dv
->
children
(),
width
,
height
);
doctokenizerYYsetStateDot
();
doctokenizerYYsetStateDot
();
retval
=
doctokenizerYYlex
();
retval
=
doctokenizerYYlex
();
DocVerbatim
*
dv
=
new
DocVerbatim
(
this
,
g_context
,
g_token
->
verb
,
DocVerbatim
::
Dot
,
g_isExample
,
g_exampleName
);
dv
->
setText
(
g_token
->
verb
);
dv
->
m_width
=
tmp_dv
->
m_width
;
dv
->
setWidth
(
width
);
dv
->
m_height
=
tmp_dv
->
m_height
;
dv
->
setHeight
(
height
);
dv
->
m_children
=
tmp_dv
->
m_children
;
delete
tmp_dv
;
m_children
.
append
(
dv
);
m_children
.
append
(
dv
);
if
(
retval
==
0
)
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"dot section ended without end marker"
);
if
(
retval
==
0
)
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"dot section ended without end marker"
);
doctokenizerYYsetStatePara
();
doctokenizerYYsetStatePara
();
...
@@ -5542,21 +5431,15 @@ int DocPara::handleCommand(const QCString &cmdName)
...
@@ -5542,21 +5431,15 @@ int DocPara::handleCommand(const QCString &cmdName)
break
;
break
;
case
CMD_MSC
:
case
CMD_MSC
:
{
{
/*
DocVerbatim
*
dv
=
new
DocVerbatim
(
this
,
g_context
,
g_token
->
verb
,
DocVerbatim
::
Msc
,
g_isExample
,
g_exampleName
);
* need a temporary variable to store information for width, height and caption
* which will be written into te right variable.
*/
DocVerbatim
*
tmp_dv
=
new
DocVerbatim
(
this
,
g_context
,
g_token
->
verb
,
DocVerbatim
::
Msc
,
g_isExample
,
g_exampleName
);
doctokenizerYYsetStatePara
();
doctokenizerYYsetStatePara
();
defaultHandleCaptionSize
(
CMD_MSC
,
tmp_dv
,
tmp_dv
->
m_children
,
tmp_dv
->
m_height
,
tmp_dv
->
m_width
)
;
QCString
width
,
height
;
defaultHandleTitleAndSize
(
CMD_MSC
,
dv
,
dv
->
children
(),
width
,
height
);
doctokenizerYYsetStateMsc
();
doctokenizerYYsetStateMsc
();
retval
=
doctokenizerYYlex
();
retval
=
doctokenizerYYlex
();
DocVerbatim
*
dv
=
new
DocVerbatim
(
this
,
g_context
,
g_token
->
verb
,
DocVerbatim
::
Msc
,
g_isExample
,
g_exampleName
);
dv
->
setText
(
g_token
->
verb
);
dv
->
m_width
=
tmp_dv
->
m_width
;
dv
->
setWidth
(
width
);
dv
->
m_height
=
tmp_dv
->
m_height
;
dv
->
setHeight
(
height
);
dv
->
m_children
=
tmp_dv
->
m_children
;
delete
tmp_dv
;
m_children
.
append
(
dv
);
m_children
.
append
(
dv
);
if
(
retval
==
0
)
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"msc section ended without end marker"
);
if
(
retval
==
0
)
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"msc section ended without end marker"
);
doctokenizerYYsetStatePara
();
doctokenizerYYsetStatePara
();
...
@@ -5568,27 +5451,22 @@ int DocPara::handleCommand(const QCString &cmdName)
...
@@ -5568,27 +5451,22 @@ int DocPara::handleCommand(const QCString &cmdName)
doctokenizerYYsetStatePlantUMLOpt
();
doctokenizerYYsetStatePlantUMLOpt
();
retval
=
doctokenizerYYlex
();
retval
=
doctokenizerYYlex
();
QCString
plantFile
(
g_token
->
sectionId
);
QCString
plantFile
(
g_token
->
sectionId
);
/*
DocVerbatim
*
dv
=
new
DocVerbatim
(
this
,
g_context
,
g_token
->
verb
,
DocVerbatim
::
PlantUML
,
FALSE
,
plantFile
);
* need a temporary variable to store information for width, height and caption
* which will be written into te right variable.
*/
DocVerbatim
*
tmp_dv
=
new
DocVerbatim
(
this
,
g_context
,
g_token
->
verb
,
DocVerbatim
::
Msc
,
g_isExample
,
g_exampleName
);
doctokenizerYYsetStatePara
();
doctokenizerYYsetStatePara
();
defaultHandleCaptionSize
(
CMD_STARTUML
,
tmp_dv
,
tmp_dv
->
m_children
,
tmp_dv
->
m_height
,
tmp_dv
->
m_width
)
;
QCString
width
,
height
;
defaultHandleTitleAndSize
(
CMD_STARTUML
,
dv
,
dv
->
children
(),
width
,
height
);
doctokenizerYYsetStatePlantUML
();
doctokenizerYYsetStatePlantUML
();
retval
=
doctokenizerYYlex
();
retval
=
doctokenizerYYlex
();
dv
->
setText
(
g_token
->
verb
);
dv
->
setWidth
(
width
);
dv
->
setHeight
(
height
);
if
(
jarPath
.
isEmpty
())
if
(
jarPath
.
isEmpty
())
{
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"ignoring
\\
startuml command because PLANTUML_JAR_PATH is not set"
);
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"ignoring
\\
startuml command because PLANTUML_JAR_PATH is not set"
);
delete
dv
;
}
}
else
else
{
{
DocVerbatim
*
dv
=
new
DocVerbatim
(
this
,
g_context
,
g_token
->
verb
,
DocVerbatim
::
PlantUML
,
FALSE
,
plantFile
);
dv
->
m_width
=
tmp_dv
->
m_width
;
dv
->
m_height
=
tmp_dv
->
m_height
;
dv
->
m_children
=
tmp_dv
->
m_children
;
delete
tmp_dv
;
m_children
.
append
(
dv
);
m_children
.
append
(
dv
);
}
}
if
(
retval
==
0
)
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"startuml section ended without end marker"
);
if
(
retval
==
0
)
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"startuml section ended without end marker"
);
...
@@ -5707,16 +5585,16 @@ int DocPara::handleCommand(const QCString &cmdName)
...
@@ -5707,16 +5585,16 @@ int DocPara::handleCommand(const QCString &cmdName)
handleImage
(
cmdName
);
handleImage
(
cmdName
);
break
;
break
;
case
CMD_DOTFILE
:
case
CMD_DOTFILE
:
handle
DotFile
(
cmdName
);
handle
File
<
DocDotFile
>
(
cmdName
);
break
;
break
;
case
CMD_VHDLFLOW
:
case
CMD_VHDLFLOW
:
handleVhdlFlow
();
handleVhdlFlow
();
break
;
break
;
case
CMD_MSCFILE
:
case
CMD_MSCFILE
:
handle
MscFile
(
cmdName
);
handle
File
<
DocMscFile
>
(
cmdName
);
break
;
break
;
case
CMD_DIAFILE
:
case
CMD_DIAFILE
:
handle
DiaFile
(
cmdName
);
handle
File
<
DocDiaFile
>
(
cmdName
);
break
;
break
;
case
CMD_LINK
:
case
CMD_LINK
:
handleLink
(
cmdName
,
FALSE
);
handleLink
(
cmdName
,
FALSE
);
...
...
src/docparser.h
View file @
223e7de6
...
@@ -451,7 +451,10 @@ class DocVerbatim : public DocNode
...
@@ -451,7 +451,10 @@ class DocVerbatim : public DocNode
QCString
width
()
const
{
return
m_width
;
}
QCString
width
()
const
{
return
m_width
;
}
QCString
height
()
const
{
return
m_height
;
}
QCString
height
()
const
{
return
m_height
;
}
const
QList
<
DocNode
>
&
children
()
const
{
return
m_children
;
}
const
QList
<
DocNode
>
&
children
()
const
{
return
m_children
;
}
QList
<
DocNode
>
&
children
()
{
return
m_children
;
}
QList
<
DocNode
>
&
children
()
{
return
m_children
;
}
void
setText
(
const
QCString
&
t
)
{
m_text
=
t
;
}
void
setWidth
(
const
QCString
&
w
)
{
m_width
=
w
;
}
void
setHeight
(
const
QCString
&
h
)
{
m_height
=
h
;
}
private
:
private
:
QCString
m_context
;
QCString
m_context
;
...
@@ -462,7 +465,6 @@ class DocVerbatim : public DocNode
...
@@ -462,7 +465,6 @@ class DocVerbatim : public DocNode
QCString
m_relPath
;
QCString
m_relPath
;
QCString
m_lang
;
QCString
m_lang
;
bool
m_isBlock
;
bool
m_isBlock
;
public
:
QCString
m_width
;
QCString
m_width
;
QCString
m_height
;
QCString
m_height
;
QList
<
DocNode
>
m_children
;
QList
<
DocNode
>
m_children
;
...
@@ -1123,9 +1125,7 @@ class DocPara : public CompAccept<DocPara>, public DocNode
...
@@ -1123,9 +1125,7 @@ class DocPara : public CompAccept<DocPara>, public DocNode
int
direction
);
int
direction
);
void
handleIncludeOperator
(
const
QCString
&
cmdName
,
DocIncOperator
::
Type
t
);
void
handleIncludeOperator
(
const
QCString
&
cmdName
,
DocIncOperator
::
Type
t
);
void
handleImage
(
const
QCString
&
cmdName
);
void
handleImage
(
const
QCString
&
cmdName
);
void
handleDotFile
(
const
QCString
&
cmdName
);
template
<
class
T
>
void
handleFile
(
const
QCString
&
cmdName
);
void
handleMscFile
(
const
QCString
&
cmdName
);
void
handleDiaFile
(
const
QCString
&
cmdName
);
void
handleInclude
(
const
QCString
&
cmdName
,
DocInclude
::
Type
t
);
void
handleInclude
(
const
QCString
&
cmdName
,
DocInclude
::
Type
t
);
void
handleLink
(
const
QCString
&
cmdName
,
bool
isJavaLink
);
void
handleLink
(
const
QCString
&
cmdName
,
bool
isJavaLink
);
void
handleCite
();
void
handleCite
();
...
...
src/doctokenizer.h
View file @
223e7de6
...
@@ -131,10 +131,8 @@ void doctokenizerYYpushContext();
...
@@ -131,10 +131,8 @@ void doctokenizerYYpushContext();
bool
doctokenizerYYpopContext
();
bool
doctokenizerYYpopContext
();
int
doctokenizerYYlex
();
int
doctokenizerYYlex
();
void
doctokenizerYYsetStatePara
();
void
doctokenizerYYsetStatePara
();
void
doctokenizerYYsetStateCaption
();
void
doctokenizerYYsetStateTitle
();
void
doctokenizerYYsetStateTitle
();
void
doctokenizerYYsetStateTitleAttrValue
();
void
doctokenizerYYsetStateTitleAttrValue
();
void
doctokenizerYYsetStateTitleAttr
();
void
doctokenizerYYsetStateCode
();
void
doctokenizerYYsetStateCode
();
void
doctokenizerYYsetStateXmlCode
();
void
doctokenizerYYsetStateXmlCode
();
void
doctokenizerYYsetStateHtmlOnly
();
void
doctokenizerYYsetStateHtmlOnly
();
...
...
src/doctokenizer.l
View file @
223e7de6
...
@@ -404,7 +404,6 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
...
@@ -404,7 +404,6 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
%x St_Para
%x St_Para
%x St_Comment
%x St_Comment
%x St_Title
%x St_Title
%x St_Caption
%x St_TitleN
%x St_TitleN
%x St_TitleQ
%x St_TitleQ
%x St_TitleA
%x St_TitleA
...
@@ -860,12 +859,22 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
...
@@ -860,12 +859,22 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
<St_Msc>. { /* msc text */
<St_Msc>. { /* msc text */
g_token->verb+=yytext;
g_token->verb+=yytext;
}
}
<St_PlantUMLOpt>{BLANK}*"{"[^}]*"}" { // skip curly brackets around the optional image name
<St_PlantUMLOpt>{BLANK}*"{"[^}]*"}" { // case 1: file name is specified as {filename}
g_token->sectionId = yytext;
g_token->sectionId = QCString(yytext).stripWhiteSpace();
g_token->sectionId = g_token->sectionId.stripWhiteSpace();
// skip curly brackets around the optional image name
g_token->sectionId = g_token->sectionId.left(g_token->sectionId.length()-1);
g_token->sectionId = g_token->sectionId.mid(1,g_token->sectionId.length()-2).stripWhiteSpace();
g_token->sectionId = g_token->sectionId.right(g_token->sectionId.length()-1);
return RetVal_OK;
g_token->sectionId = g_token->sectionId.stripWhiteSpace();
}
<St_PlantUMLOpt>{BLANK}*{FILEMASK}{BLANK}+/{ID}"=" { // case 2: plain file name specified followed by an attribute
g_token->sectionId = QCString(yytext).stripWhiteSpace();
return RetVal_OK;
}
<St_PlantUMLOpt>{BLANK}*{FILEMASK}{BLANK}+/"\"" { // case 3: plain file name specified followed by a quoted title
g_token->sectionId = QCString(yytext).stripWhiteSpace();
return RetVal_OK;
}
<St_PlantUMLOpt>{BLANK}*{FILEMASK}{BLANK}*/\n { // case 4: plain file name specified without title or attributes
g_token->sectionId = QCString(yytext).stripWhiteSpace();
return RetVal_OK;
return RetVal_OK;
}
}
<St_PlantUMLOpt>. {
<St_PlantUMLOpt>. {
...
@@ -881,22 +890,9 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
...
@@ -881,22 +890,9 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
<St_PlantUML>. { /* plantuml text */
<St_PlantUML>. { /* plantuml text */
g_token->verb+=yytext;
g_token->verb+=yytext;
}
}
<St_Caption>"\"" { // quoted title
BEGIN(St_TitleQ);
return TK_WORD;
}
<St_Caption>[ \t]+ {
g_token->name="";
g_token->chars=yytext;
return TK_WHITESPACE;
}
<St_Caption>\n {
unput(*yytext);
return 0;
}
<St_Title>"\"" { // quoted title
<St_Title>"\"" { // quoted title
BEGIN(St_TitleQ);
BEGIN(St_TitleQ);
}
}
<St_Title>[ \t]+ {
<St_Title>[ \t]+ {
g_token->chars=yytext;
g_token->chars=yytext;
return TK_WHITESPACE;
return TK_WHITESPACE;
...
@@ -921,6 +917,13 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
...
@@ -921,6 +917,13 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
g_token->paramDir=TokenInfo::Unspecified;
g_token->paramDir=TokenInfo::Unspecified;
return TK_COMMAND;
return TK_COMMAND;
}
}
<St_TitleN>{ID}"=" { /* attribute */
if (yytext[0]=='%') // strip % if present
g_token->name = &yytext[1];
else
g_token->name = yytext;
return TK_WORD;
}
<St_TitleN>{WORD1} |
<St_TitleN>{WORD1} |
<St_TitleN>{WORD2} { /* word */
<St_TitleN>{WORD2} { /* word */
if (yytext[0]=='%') // strip % if present
if (yytext[0]=='%') // strip % if present
...
@@ -964,38 +967,9 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
...
@@ -964,38 +967,9 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
unput(*yytext);
unput(*yytext);
return 0;
return 0;
}
}
<St_Caption>{BLANK}*"min"{BLANK}* { // title special case min / max
g_token->name = "min";
BEGIN(St_TitleA);
return TK_WORD;
}
<St_Caption>{BLANK}*"max"{BLANK}* { // title special case min / max
g_token->name = "max";
BEGIN(St_TitleA);
return TK_WORD;
}
<St_Caption>{BLANK}*"width="{BLANK}* { // title attribute
g_token->name = yytext;
g_token->name = g_token->name.stripWhiteSpace();
BEGIN(St_TitleV);
}
<St_Caption>{BLANK}*"height="{BLANK}* { // title attribute
g_token->name = yytext;
g_token->name = g_token->name.stripWhiteSpace();
BEGIN(St_TitleV);
}
<St_TitleA>{BLANK}*"min"{BLANK}* { // title special case min / max
g_token->name = "min";
return TK_WORD;
}
<St_TitleA>{BLANK}*"max"{BLANK}* { // title special case min / max
g_token->name = "max";
return TK_WORD;
}
<St_TitleA>{BLANK}*{ID}{BLANK}*"="{BLANK}* { // title attribute
<St_TitleA>{BLANK}*{ID}{BLANK}*"="{BLANK}* { // title attribute
g_token->name = yytext;
g_token->name = yytext;
g_token->name = g_token->name.left(
g_token->name = g_token->name.left(g_token->name.find('=')).stripWhiteSpace();
g_token->name.find('=')).stripWhiteSpace();
BEGIN(St_TitleV);
BEGIN(St_TitleV);
}
}
<St_TitleV>[^ \t\r\n]+ { // attribute value
<St_TitleV>[^ \t\r\n]+ { // attribute value
...
@@ -1003,10 +977,6 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
...
@@ -1003,10 +977,6 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
BEGIN(St_TitleN);
BEGIN(St_TitleN);
return TK_WORD;
return TK_WORD;
}
}
<St_TitleV,St_TitleA>[ \t] {
g_token->chars=yytext;
return TK_WHITESPACE;
}
<St_TitleV,St_TitleA>. {
<St_TitleV,St_TitleA>. {
unput(*yytext);
unput(*yytext);
return 0;
return 0;
...
@@ -1351,16 +1321,6 @@ void doctokenizerYYsetStateTitle()
...
@@ -1351,16 +1321,6 @@ void doctokenizerYYsetStateTitle()
BEGIN(St_Title);
BEGIN(St_Title);
}
}
void doctokenizerYYsetStateCaption()
{
BEGIN(St_Caption);
}
void doctokenizerYYsetStateTitleAttr()
{
BEGIN(St_TitleA);
}
void doctokenizerYYsetStateTitleAttrValue()
void doctokenizerYYsetStateTitleAttrValue()
{
{
BEGIN(St_TitleV);
BEGIN(St_TitleV);
...
...
src/htmldocvisitor.cpp
View file @
223e7de6
...
@@ -427,7 +427,7 @@ void HtmlDocVisitor::visit(DocVerbatim *s)
...
@@ -427,7 +427,7 @@ void HtmlDocVisitor::visit(DocVerbatim *s)
m_t
<<
"<div align=
\"
center
\"
>"
<<
endl
;
m_t
<<
"<div align=
\"
center
\"
>"
<<
endl
;
writeDotFile
(
fileName
,
s
->
relPath
(),
s
->
context
());
writeDotFile
(
fileName
,
s
->
relPath
(),
s
->
context
());
visitPreCaption
(
m_t
,
s
);
visitPreCaption
(
m_t
,
s
);
visitCaption
(
this
,
s
->
m_children
);
visitCaption
(
this
,
s
->
children
()
);
visitPostCaption
(
m_t
,
s
);
visitPostCaption
(
m_t
,
s
);
m_t
<<
"</div>"
<<
endl
;
m_t
<<
"</div>"
<<
endl
;
...
@@ -464,7 +464,7 @@ void HtmlDocVisitor::visit(DocVerbatim *s)
...
@@ -464,7 +464,7 @@ void HtmlDocVisitor::visit(DocVerbatim *s)
m_t
<<
"<div align=
\"
center
\"
>"
<<
endl
;
m_t
<<
"<div align=
\"
center
\"
>"
<<
endl
;
writeMscFile
(
baseName
+
".msc"
,
s
->
relPath
(),
s
->
context
());
writeMscFile
(
baseName
+
".msc"
,
s
->
relPath
(),
s
->
context
());
visitPreCaption
(
m_t
,
s
);
visitPreCaption
(
m_t
,
s
);
visitCaption
(
this
,
s
->
m_children
);
visitCaption
(
this
,
s
->
children
()
);
visitPostCaption
(
m_t
,
s
);
visitPostCaption
(
m_t
,
s
);
m_t
<<
"</div>"
<<
endl
;
m_t
<<
"</div>"
<<
endl
;
...
@@ -482,7 +482,7 @@ void HtmlDocVisitor::visit(DocVerbatim *s)
...
@@ -482,7 +482,7 @@ void HtmlDocVisitor::visit(DocVerbatim *s)
m_t
<<
"<div align=
\"
center
\"
>"
<<
endl
;
m_t
<<
"<div align=
\"
center
\"
>"
<<
endl
;
writePlantUMLFile
(
baseName
,
s
->
relPath
(),
s
->
context
());
writePlantUMLFile
(
baseName
,
s
->
relPath
(),
s
->
context
());
visitPreCaption
(
m_t
,
s
);
visitPreCaption
(
m_t
,
s
);
visitCaption
(
this
,
s
->
m_children
);
visitCaption
(
this
,
s
->
children
()
);
visitPostCaption
(
m_t
,
s
);
visitPostCaption
(
m_t
,
s
);
m_t
<<
"</div>"
<<
endl
;
m_t
<<
"</div>"
<<
endl
;
forceStartParagraph
(
s
);
forceStartParagraph
(
s
);
...
...
src/latexdocvisitor.cpp
View file @
223e7de6
...
@@ -90,7 +90,7 @@ static void visitPreStart(FTextStream &t, const bool hasCaption, QCString name,
...
@@ -90,7 +90,7 @@ static void visitPreStart(FTextStream &t, const bool hasCaption, QCString name,
}
}
if
(
!
width
.
isEmpty
())
if
(
!
width
.
isEmpty
())
{
{
t
<<
width
;
t
<<
"width="
<<
width
;
}
}
if
(
!
width
.
isEmpty
()
&&
!
height
.
isEmpty
())
if
(
!
width
.
isEmpty
()
&&
!
height
.
isEmpty
())
{
{
...
@@ -98,7 +98,7 @@ static void visitPreStart(FTextStream &t, const bool hasCaption, QCString name,
...
@@ -98,7 +98,7 @@ static void visitPreStart(FTextStream &t, const bool hasCaption, QCString name,
}
}
if
(
!
height
.
isEmpty
())
if
(
!
height
.
isEmpty
())
{
{
t
<<
height
;
t
<<
"height="
<<
height
;
}
}
if
(
width
.
isEmpty
()
&&
height
.
isEmpty
())
if
(
width
.
isEmpty
()
&&
height
.
isEmpty
())
{
{
...
@@ -359,7 +359,7 @@ void LatexDocVisitor::visit(DocVerbatim *s)
...
@@ -359,7 +359,7 @@ void LatexDocVisitor::visit(DocVerbatim *s)
file
.
close
();
file
.
close
();
startDotFile
(
fileName
,
s
->
width
(),
s
->
height
(),
s
->
hasCaption
());
startDotFile
(
fileName
,
s
->
width
(),
s
->
height
(),
s
->
hasCaption
());
visitCaption
(
this
,
s
->
m_children
);
visitCaption
(
this
,
s
->
children
()
);
endDotFile
(
s
->
hasCaption
());
endDotFile
(
s
->
hasCaption
());
if
(
Config_getBool
(
"DOT_CLEANUP"
))
file
.
remove
();
if
(
Config_getBool
(
"DOT_CLEANUP"
))
file
.
remove
();
...
@@ -1701,7 +1701,7 @@ void LatexDocVisitor::writeMscFile(const QCString &baseName, DocVerbatim *s)
...
@@ -1701,7 +1701,7 @@ void LatexDocVisitor::writeMscFile(const QCString &baseName, DocVerbatim *s)
QCString
outDir
=
Config_getString
(
"LATEX_OUTPUT"
);
QCString
outDir
=
Config_getString
(
"LATEX_OUTPUT"
);
writeMscGraphFromFile
(
baseName
+
".msc"
,
outDir
,
shortName
,
MSC_EPS
);
writeMscGraphFromFile
(
baseName
+
".msc"
,
outDir
,
shortName
,
MSC_EPS
);
visitPreStart
(
m_t
,
s
->
hasCaption
(),
shortName
,
s
->
width
(),
s
->
height
());
visitPreStart
(
m_t
,
s
->
hasCaption
(),
shortName
,
s
->
width
(),
s
->
height
());
visitCaption
(
this
,
s
->
m_children
);
visitCaption
(
this
,
s
->
children
()
);
visitPostEnd
(
m_t
,
s
->
hasCaption
());
visitPostEnd
(
m_t
,
s
->
hasCaption
());
}
}
...
@@ -1747,7 +1747,7 @@ void LatexDocVisitor::writeDiaFile(const QCString &baseName, DocVerbatim *s)
...
@@ -1747,7 +1747,7 @@ void LatexDocVisitor::writeDiaFile(const QCString &baseName, DocVerbatim *s)
QCString
outDir
=
Config_getString
(
"LATEX_OUTPUT"
);
QCString
outDir
=
Config_getString
(
"LATEX_OUTPUT"
);
writeDiaGraphFromFile
(
baseName
+
".dia"
,
outDir
,
shortName
,
DIA_EPS
);
writeDiaGraphFromFile
(
baseName
+
".dia"
,
outDir
,
shortName
,
DIA_EPS
);
visitPreStart
(
m_t
,
s
->
hasCaption
(),
shortName
,
s
->
width
(),
s
->
height
());
visitPreStart
(
m_t
,
s
->
hasCaption
(),
shortName
,
s
->
width
(),
s
->
height
());
visitCaption
(
this
,
s
->
m_children
);
visitCaption
(
this
,
s
->
children
()
);
visitPostEnd
(
m_t
,
s
->
hasCaption
());
visitPostEnd
(
m_t
,
s
->
hasCaption
());
}
}
...
@@ -1762,7 +1762,7 @@ void LatexDocVisitor::writePlantUMLFile(const QCString &baseName, DocVerbatim *s
...
@@ -1762,7 +1762,7 @@ void LatexDocVisitor::writePlantUMLFile(const QCString &baseName, DocVerbatim *s
QCString
outDir
=
Config_getString
(
"LATEX_OUTPUT"
);
QCString
outDir
=
Config_getString
(
"LATEX_OUTPUT"
);
generatePlantUMLOutput
(
baseName
,
outDir
,
PUML_EPS
);
generatePlantUMLOutput
(
baseName
,
outDir
,
PUML_EPS
);
visitPreStart
(
m_t
,
s
->
hasCaption
(),
shortName
,
s
->
width
(),
s
->
height
());
visitPreStart
(
m_t
,
s
->
hasCaption
(),
shortName
,
s
->
width
(),
s
->
height
());
visitCaption
(
this
,
s
->
m_children
);
visitCaption
(
this
,
s
->
children
()
);
visitPostEnd
(
m_t
,
s
->
hasCaption
());
visitPostEnd
(
m_t
,
s
->
hasCaption
());
}
}
src/latexgen.cpp
View file @
223e7de6
...
@@ -1952,10 +1952,10 @@ void LatexGenerator::exceptionEntry(const char* prefix,bool closeBracket)
...
@@ -1952,10 +1952,10 @@ void LatexGenerator::exceptionEntry(const char* prefix,bool closeBracket)
void
LatexGenerator
::
writeDoc
(
DocNode
*
n
,
Definition
*
ctx
,
MemberDef
*
)
void
LatexGenerator
::
writeDoc
(
DocNode
*
n
,
Definition
*
ctx
,
MemberDef
*
)
{
{
LatexDocVisitor
*
visitor
=
LatexDocVisitor
*
visitor
=
new
LatexDocVisitor
(
t
,
*
this
,
ctx
?
ctx
->
getDefFileExtension
()
:
QCString
(
""
),
insideTabbing
);
new
LatexDocVisitor
(
t
,
*
this
,
ctx
?
ctx
->
getDefFileExtension
()
:
QCString
(
""
),
insideTabbing
);
n
->
accept
(
visitor
);
n
->
accept
(
visitor
);
delete
visitor
;
delete
visitor
;
}
}
void
LatexGenerator
::
startConstraintList
(
const
char
*
header
)
void
LatexGenerator
::
startConstraintList
(
const
char
*
header
)
...
...
src/xmldocvisitor.cpp
View file @
223e7de6
...
@@ -45,7 +45,7 @@ static void visitPreStart(FTextStream &t, const char *cmd, const bool doCaption,
...
@@ -45,7 +45,7 @@ static void visitPreStart(FTextStream &t, const char *cmd, const bool doCaption,
const
QCString
&
height
)
const
QCString
&
height
)
{
{
QCString
tmpStr
;
QCString
tmpStr
;
t
<<
"<"
<<
cmd
;
t
<<
"<"
<<
cmd
;
if
(
writeType
)
if
(
writeType
)
{
{
...
@@ -65,27 +65,12 @@ static void visitPreStart(FTextStream &t, const char *cmd, const bool doCaption,
...
@@ -65,27 +65,12 @@ static void visitPreStart(FTextStream &t, const char *cmd, const bool doCaption,
}
}
if
(
!
width
.
isEmpty
())
if
(
!
width
.
isEmpty
())
{
{
tmpStr
=
width
;
t
<<
" width=
\"
"
<<
convertToXML
(
width
)
<<
"
\"
"
;
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"min *width"
),
"minwidth"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"max *width"
),
"maxwidth"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"="
),
"=
\"
"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
","
),
"
\"
"
)
+
"
\"
"
;
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"
\"\"
"
),
"
\"
"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"
\\
"
),
"
\\\\
"
);
t
<<
" "
<<
tmpStr
;
}
}
if
(
!
height
.
isEmpty
())
else
if
(
!
height
.
isEmpty
())
{
{
tmpStr
=
height
;
t
<<
" height=
\"
"
<<
convertToXML
(
height
)
<<
"
\"
"
;
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"min *height"
),
"minheight"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"max *height"
),
"maxheight"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"="
),
"=
\"
"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
","
),
"
\"
"
)
+
"
\"
"
;
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"
\"\"
"
),
"
\"
"
);
tmpStr
=
tmpStr
.
replace
(
QRegExp
(
"
\\
"
),
"
\\\\
"
);
t
<<
" "
<<
tmpStr
;
}
}
if
(
doCaption
)
if
(
doCaption
)
{
{
t
<<
" caption=
\"
"
;
t
<<
" caption=
\"
"
;
...
...
testing/031/indexpage.xml
View file @
223e7de6
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
<detaileddescription>
<detaileddescription>
<para>
Some text.
<image
type=
"html"
name=
"sample.png"
/>
<para>
Some text.
<image
type=
"html"
name=
"sample.png"
/>
<image
type=
"latex"
name=
"sample.png"
width=
"5cm"
>
Doxygen logo
</image>
<image
type=
"latex"
name=
"sample.png"
width=
"5cm"
>
Doxygen logo
</image>
More text.
</para>
More text.
</para>
</detaileddescription>
</detaileddescription>
</compounddef>
</compounddef>
</doxygen>
</doxygen>
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