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
04dd14e8
Commit
04dd14e8
authored
Dec 24, 2002
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.3-rc2-20021224
parent
1a8ff6f0
Changes
22
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
347 additions
and
107 deletions
+347
-107
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
faq.doc
doc/faq.doc
+5
-1
index.doc
doc/index.doc
+3
-2
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
commentcnv.l
src/commentcnv.l
+13
-1
definition.cpp
src/definition.cpp
+22
-0
definition.h
src/definition.h
+1
-0
docparser.cpp
src/docparser.cpp
+185
-42
docparser.h
src/docparser.h
+1
-0
doctokenizer.l
src/doctokenizer.l
+9
-8
doxygen.cpp
src/doxygen.cpp
+2
-2
htmldocvisitor.cpp
src/htmldocvisitor.cpp
+26
-16
memberdef.cpp
src/memberdef.cpp
+8
-3
rtfstyle.cpp
src/rtfstyle.cpp
+1
-1
scanner.l
src/scanner.l
+6
-6
translator_de.h
src/translator_de.h
+1
-1
translator_en.h
src/translator_en.h
+7
-7
translator_sr.h
src/translator_sr.h
+16
-0
util.cpp
src/util.cpp
+24
-9
xmlgen.cpp
src/xmlgen.cpp
+11
-2
No files found.
INSTALL
View file @
04dd14e8
DOXYGEN Version 1.3-rc2
DOXYGEN Version 1.3-rc2
-20021224
Please read the installation section of the manual
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
(http://www.doxygen.org/install.html) for instructions.
--------
--------
Dimitri van Heesch (
16
December 2002)
Dimitri van Heesch (
24
December 2002)
README
View file @
04dd14e8
DOXYGEN Version 1.3_rc2
DOXYGEN Version 1.3_rc2
_20021224
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) (
16
December 2002)
Dimitri van Heesch (dimitri@stack.nl) (
24
December 2002)
VERSION
View file @
04dd14e8
1.3-rc2
1.3-rc2
-20021224
doc/faq.doc
View file @
04dd14e8
...
@@ -62,7 +62,8 @@ PREDEFINED = MY_MACRO()=
...
@@ -62,7 +62,8 @@ PREDEFINED = MY_MACRO()=
manual for more information.
manual for more information.
</ol>
</ol>
<li><b>When I set EXTRACT_ALL to NO none of my functions are shown in the documentation.</b></li>
<li><b>When I set EXTRACT_ALL to NO none of my functions are shown in the
documentation.</b></li>
In order for global functions, variables, enums, typedefs, and defines
In order for global functions, variables, enums, typedefs, and defines
to be documented you should document the file in which these commands are
to be documented you should document the file in which these commands are
...
@@ -73,6 +74,9 @@ Alternatively, you can put all members in a group (or module)
...
@@ -73,6 +74,9 @@ Alternatively, you can put all members in a group (or module)
using the \\ingroup command and then document the group using a comment
using the \\ingroup command and then document the group using a comment
block containing the \\defgroup command.
block containing the \\defgroup command.
For member functions or functions that are part of a namespace you should
document either the class or namespace.
<li><b>How can I make doxygen ignore some code fragment?</b>
<li><b>How can I make doxygen ignore some code fragment?</b>
<p>
<p>
You can use Doxygen's preprocessor for this:
You can use Doxygen's preprocessor for this:
...
...
doc/index.doc
View file @
04dd14e8
...
@@ -181,8 +181,9 @@ Thanks go to:
...
@@ -181,8 +181,9 @@ Thanks go to:
All language maintainers for providing translations into many languages.
All language maintainers for providing translations into many languages.
<li>Erik Jan Lingen of <a href="http://www.habanera.nl/">Habanera</a>, Mark
<li>Erik Jan Lingen of <a href="http://www.habanera.nl/">Habanera</a>, Mark
Roddy, Paul Schwartz, Charles Duffy, Vadym Voznyuk, Philip Walton,
Roddy, Paul Schwartz, Charles Duffy, Vadym Voznyuk, Philip Walton,
Dwight Browne, Andreas Fredriksson, Karel Lindveld, and Ivan Lee
Dwight Browne, Andreas Fredriksson, Karel Lindveld, Ivan Lee, Albert
for donating money.
Vernon, Adam McKee, Vijapurapu Anatharac, Ben Hunsberger and
Walter Wartenweiler for donating money.
<li>The Comms group of <a href="http://www.symbian.com">Symbian</a> for donating
<li>The Comms group of <a href="http://www.symbian.com">Symbian</a> for donating
an ultra cool <a href="http://www.psion.com/revoplus">Revo plus</a>
an ultra cool <a href="http://www.psion.com/revoplus">Revo plus</a>
organizer!
organizer!
...
...
packages/rpm/doxygen.spec
View file @
04dd14e8
Summary: A documentation system for C/C++.
Summary: A documentation system for C/C++.
Name: doxygen
Name: doxygen
Version: 1.3_rc2
Version: 1.3_rc2
_20021224
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/commentcnv.l
View file @
04dd14e8
...
@@ -41,7 +41,7 @@ static void replaceCommentMarker(const char *s,int len)
...
@@ -41,7 +41,7 @@ static void replaceCommentMarker(const char *s,int len)
p++;
p++;
}
}
// replace start of comment marker by spaces
// replace start of comment marker by spaces
while ((c=*p) && (c=='/' || c=='!'))
while ((c=*p) && (c=='/' || c=='!'
|| c=='#'
))
{
{
g_outBuf->addChar(' ');
g_outBuf->addChar(' ');
p++;
p++;
...
@@ -109,6 +109,12 @@ static int yyread(char *buf,int max_size)
...
@@ -109,6 +109,12 @@ static int yyread(char *buf,int max_size)
copyToOutput(yytext+i,yyleng-i);
copyToOutput(yytext+i,yyleng-i);
BEGIN(SComment);
BEGIN(SComment);
}
}
<Scan>"//##Documentation".*\n { /* Start of Rational Rose ANSI C++ comment block */
int i=17; //=strlen("//##Documentation");
copyToOutput("/**",3);
copyToOutput(yytext+i,yyleng-i);
BEGIN(SComment);
}
<Scan>"//".*\n { /* one line C++ comment */
<Scan>"//".*\n { /* one line C++ comment */
copyToOutput(yytext,yyleng);
copyToOutput(yytext,yyleng);
}
}
...
@@ -180,6 +186,12 @@ static int yyread(char *buf,int max_size)
...
@@ -180,6 +186,12 @@ static int yyread(char *buf,int max_size)
<SComment>\n[ \t]*"//!".*/\n {
<SComment>\n[ \t]*"//!".*/\n {
replaceCommentMarker(yytext,yyleng);
replaceCommentMarker(yytext,yyleng);
}
}
<SComment>^[ \t]*"//##".*/\n {
replaceCommentMarker(yytext,yyleng);
}
<SComment>\n[ \t]*"//##".*/\n {
replaceCommentMarker(yytext,yyleng);
}
<SComment>\n { /* end of special comment */
<SComment>\n { /* end of special comment */
copyToOutput(" */",3);
copyToOutput(" */",3);
copyToOutput(yytext,yyleng);
copyToOutput(yytext,yyleng);
...
...
src/definition.cpp
View file @
04dd14e8
...
@@ -620,6 +620,28 @@ void Definition::setRefItems(const QList<ListItemInfo> *sli)
...
@@ -620,6 +620,28 @@ void Definition::setRefItems(const QList<ListItemInfo> *sli)
}
}
}
}
void
Definition
::
mergeRefItems
(
Definition
*
d
)
{
if
(
d
->
specialListItems
())
{
// deep copy the list
if
(
m_specialListItems
==
0
)
{
m_specialListItems
=
new
QList
<
ListItemInfo
>
;
m_specialListItems
->
setAutoDelete
(
TRUE
);
}
QListIterator
<
ListItemInfo
>
slii
(
*
d
->
specialListItems
());
ListItemInfo
*
lii
;
for
(
slii
.
toFirst
();(
lii
=
slii
.
current
());
++
slii
)
{
if
(
getSpecialListId
(
lii
->
type
)
==-
1
)
{
m_specialListItems
->
append
(
new
ListItemInfo
(
*
lii
));
}
}
}
}
int
Definition
::
getSpecialListId
(
const
char
*
listName
)
const
int
Definition
::
getSpecialListId
(
const
char
*
listName
)
const
{
{
if
(
m_specialListItems
)
if
(
m_specialListItems
)
...
...
src/definition.h
View file @
04dd14e8
...
@@ -113,6 +113,7 @@ class Definition
...
@@ -113,6 +113,7 @@ class Definition
//int testId() const { return m_testId; }
//int testId() const { return m_testId; }
//int bugId() const { return m_bugId; }
//int bugId() const { return m_bugId; }
void
setRefItems
(
const
QList
<
ListItemInfo
>
*
sli
);
void
setRefItems
(
const
QList
<
ListItemInfo
>
*
sli
);
void
mergeRefItems
(
Definition
*
d
);
int
getSpecialListId
(
const
char
*
listName
)
const
;
int
getSpecialListId
(
const
char
*
listName
)
const
;
const
QList
<
ListItemInfo
>
*
specialListItems
()
const
;
const
QList
<
ListItemInfo
>
*
specialListItems
()
const
;
...
...
src/docparser.cpp
View file @
04dd14e8
...
@@ -74,6 +74,7 @@ static bool g_inSeeBlock;
...
@@ -74,6 +74,7 @@ static bool g_inSeeBlock;
static
bool
g_insideHtmlLink
;
static
bool
g_insideHtmlLink
;
static
QStack
<
DocNode
>
g_nodeStack
;
static
QStack
<
DocNode
>
g_nodeStack
;
static
QStack
<
DocStyleChange
>
g_styleStack
;
static
QStack
<
DocStyleChange
>
g_styleStack
;
static
QStack
<
DocStyleChange
>
g_initialStyleStack
;
static
QList
<
Definition
>
g_copyStack
;
static
QList
<
Definition
>
g_copyStack
;
static
QString
g_fileName
;
static
QString
g_fileName
;
...
@@ -84,6 +85,7 @@ struct DocParserContext
...
@@ -84,6 +85,7 @@ struct DocParserContext
bool
insideHtmlLink
;
bool
insideHtmlLink
;
QStack
<
DocNode
>
nodeStack
;
QStack
<
DocNode
>
nodeStack
;
QStack
<
DocStyleChange
>
styleStack
;
QStack
<
DocStyleChange
>
styleStack
;
QStack
<
DocStyleChange
>
initialStyleStack
;
QList
<
Definition
>
copyStack
;
QList
<
Definition
>
copyStack
;
MemberDef
*
memberDef
;
MemberDef
*
memberDef
;
QString
fileName
;
QString
fileName
;
...
@@ -102,6 +104,7 @@ static void docParserPushContext()
...
@@ -102,6 +104,7 @@ static void docParserPushContext()
ctx
->
insideHtmlLink
=
g_insideHtmlLink
;
ctx
->
insideHtmlLink
=
g_insideHtmlLink
;
ctx
->
nodeStack
=
g_nodeStack
;
ctx
->
nodeStack
=
g_nodeStack
;
ctx
->
styleStack
=
g_styleStack
;
ctx
->
styleStack
=
g_styleStack
;
ctx
->
initialStyleStack
=
g_initialStyleStack
;
ctx
->
copyStack
=
g_copyStack
;
ctx
->
copyStack
=
g_copyStack
;
ctx
->
fileName
=
g_fileName
;
ctx
->
fileName
=
g_fileName
;
g_parserStack
.
push
(
ctx
);
g_parserStack
.
push
(
ctx
);
...
@@ -115,6 +118,7 @@ static void docParserPopContext()
...
@@ -115,6 +118,7 @@ static void docParserPopContext()
g_insideHtmlLink
=
ctx
->
insideHtmlLink
;
g_insideHtmlLink
=
ctx
->
insideHtmlLink
;
g_nodeStack
=
ctx
->
nodeStack
;
g_nodeStack
=
ctx
->
nodeStack
;
g_styleStack
=
ctx
->
styleStack
;
g_styleStack
=
ctx
->
styleStack
;
g_initialStyleStack
=
ctx
->
initialStyleStack
;
g_copyStack
=
ctx
->
copyStack
;
g_copyStack
=
ctx
->
copyStack
;
g_fileName
=
ctx
->
fileName
;
g_fileName
=
ctx
->
fileName
;
delete
ctx
;
delete
ctx
;
...
@@ -296,7 +300,7 @@ static void checkUndocumentedParams()
...
@@ -296,7 +300,7 @@ static void checkUndocumentedParams()
"Warning: The following parameters of "
+
"Warning: The following parameters of "
+
scope
+
QString
(
g_memberDef
->
name
())
+
scope
+
QString
(
g_memberDef
->
name
())
+
QString
(
argListToString
(
al
))
+
QString
(
argListToString
(
al
))
+
" are not documented:"
;
" are not documented:
\n
"
;
for
(
ali
.
toFirst
();(
a
=
ali
.
current
());
++
ali
)
for
(
ali
.
toFirst
();(
a
=
ali
.
current
());
++
ali
)
{
{
QString
argName
=
g_memberDef
->
isDefine
()
?
a
->
type
:
a
->
name
;
QString
argName
=
g_memberDef
->
isDefine
()
?
a
->
type
:
a
->
name
;
...
@@ -559,6 +563,9 @@ static int handleStyleArgument(DocNode *parent,QList<DocNode> &children,
...
@@ -559,6 +563,9 @@ static int handleStyleArgument(DocNode *parent,QList<DocNode> &children,
)
?
tok
:
RetVal_OK
;
)
?
tok
:
RetVal_OK
;
}
}
/*! Called when a style change starts. For instance a \<b\> command is
* encountered.
*/
static
void
handleStyleEnter
(
DocNode
*
parent
,
QList
<
DocNode
>
&
children
,
static
void
handleStyleEnter
(
DocNode
*
parent
,
QList
<
DocNode
>
&
children
,
DocStyleChange
::
Style
s
,
const
HtmlAttribList
*
attribs
)
DocStyleChange
::
Style
s
,
const
HtmlAttribList
*
attribs
)
{
{
...
@@ -568,6 +575,9 @@ static void handleStyleEnter(DocNode *parent,QList<DocNode> &children,
...
@@ -568,6 +575,9 @@ static void handleStyleEnter(DocNode *parent,QList<DocNode> &children,
g_styleStack
.
push
(
sc
);
g_styleStack
.
push
(
sc
);
}
}
/*! Called when a style change ends. For instance a \</b\> command is
* encountered.
*/
static
void
handleStyleLeave
(
DocNode
*
parent
,
QList
<
DocNode
>
&
children
,
static
void
handleStyleLeave
(
DocNode
*
parent
,
QList
<
DocNode
>
&
children
,
DocStyleChange
::
Style
s
,
const
char
*
tagName
)
DocStyleChange
::
Style
s
,
const
char
*
tagName
)
{
{
...
@@ -577,9 +587,17 @@ static void handleStyleLeave(DocNode *parent,QList<DocNode> &children,
...
@@ -577,9 +587,17 @@ static void handleStyleLeave(DocNode *parent,QList<DocNode> &children,
g_styleStack
.
top
()
->
position
()
!=
g_nodeStack
.
count
()
// wrong position
g_styleStack
.
top
()
->
position
()
!=
g_nodeStack
.
count
()
// wrong position
)
)
{
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: found </%s> tag without matching <%s> in the same paragraph"
,
if
(
g_styleStack
.
isEmpty
())
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: found </%s> tag without matching <%s>"
,
tagName
,
tagName
);
tagName
,
tagName
);
}
}
else
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: found </%s> tag while expecting </%s>"
,
tagName
,
g_styleStack
.
top
()
->
styleString
());
}
}
else
// end the section
else
// end the section
{
{
DocStyleChange
*
sc
=
new
DocStyleChange
(
parent
,
g_nodeStack
.
count
(),
s
,
FALSE
);
DocStyleChange
*
sc
=
new
DocStyleChange
(
parent
,
g_nodeStack
.
count
(),
s
,
FALSE
);
...
@@ -588,6 +606,10 @@ static void handleStyleLeave(DocNode *parent,QList<DocNode> &children,
...
@@ -588,6 +606,10 @@ static void handleStyleLeave(DocNode *parent,QList<DocNode> &children,
}
}
}
}
/*! Called at the end of a paragraph to close all open style changes
* (e.g. a <b> without a </b>). The closed styles are pushed onto a stack
* and entered again at the start of a new paragraph.
*/
static
void
handlePendingStyleCommands
(
DocNode
*
parent
,
QList
<
DocNode
>
&
children
)
static
void
handlePendingStyleCommands
(
DocNode
*
parent
,
QList
<
DocNode
>
&
children
)
{
{
if
(
!
g_styleStack
.
isEmpty
())
if
(
!
g_styleStack
.
isEmpty
())
...
@@ -595,27 +617,53 @@ static void handlePendingStyleCommands(DocNode *parent,QList<DocNode> &children)
...
@@ -595,27 +617,53 @@ static void handlePendingStyleCommands(DocNode *parent,QList<DocNode> &children)
DocStyleChange
*
sc
=
g_styleStack
.
top
();
DocStyleChange
*
sc
=
g_styleStack
.
top
();
while
(
sc
&&
sc
->
position
()
>=
g_nodeStack
.
count
())
while
(
sc
&&
sc
->
position
()
>=
g_nodeStack
.
count
())
{
// there are unclosed style modifiers in the paragraph
{
// there are unclosed style modifiers in the paragraph
const
char
*
cmd
=
""
;
switch
(
sc
->
style
())
{
case
DocStyleChange
:
:
Bold
:
cmd
=
"b"
;
break
;
case
DocStyleChange
:
:
Italic
:
cmd
=
"em"
;
break
;
case
DocStyleChange
:
:
Code
:
cmd
=
"code"
;
break
;
case
DocStyleChange
:
:
Center
:
cmd
=
"center"
;
break
;
case
DocStyleChange
:
:
Small
:
cmd
=
"small"
;
break
;
case
DocStyleChange
:
:
Subscript
:
cmd
=
"subscript"
;
break
;
case
DocStyleChange
:
:
Superscript
:
cmd
=
"superscript"
;
break
;
case
DocStyleChange
:
:
Preformatted
:
cmd
=
"pre"
;
break
;
}
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: end of paragraph without end of style "
"command </%s>"
,
cmd
);
children
.
append
(
new
DocStyleChange
(
parent
,
g_nodeStack
.
count
(),
sc
->
style
(),
FALSE
));
children
.
append
(
new
DocStyleChange
(
parent
,
g_nodeStack
.
count
(),
sc
->
style
(),
FALSE
));
g_initialStyleStack
.
push
(
sc
);
g_styleStack
.
pop
();
g_styleStack
.
pop
();
sc
=
g_styleStack
.
top
();
sc
=
g_styleStack
.
top
();
}
}
}
}
}
}
static
void
handleInitialStyleCommands
(
DocPara
*
parent
,
QList
<
DocNode
>
&
children
)
{
DocStyleChange
*
sc
;
while
((
sc
=
g_initialStyleStack
.
pop
()))
{
handleStyleEnter
(
parent
,
children
,
sc
->
style
(),
&
sc
->
attribs
());
}
}
const
char
*
DocStyleChange
::
styleString
()
const
{
switch
(
m_style
)
{
case
DocStyleChange
:
:
Bold
:
return
"b"
;
case
DocStyleChange
:
:
Italic
:
return
"em"
;
case
DocStyleChange
:
:
Code
:
return
"code"
;
case
DocStyleChange
:
:
Center
:
return
"center"
;
case
DocStyleChange
:
:
Small
:
return
"small"
;
case
DocStyleChange
:
:
Subscript
:
return
"subscript"
;
case
DocStyleChange
:
:
Superscript
:
return
"superscript"
;
case
DocStyleChange
:
:
Preformatted
:
return
"pre"
;
}
return
"<invalid>"
;
}
static
void
handleUnclosedStyleCommands
()
{
if
(
!
g_initialStyleStack
.
isEmpty
())
{
DocStyleChange
*
sc
=
g_initialStyleStack
.
top
();
g_initialStyleStack
.
pop
();
handleUnclosedStyleCommands
();
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: end of comment block while expecting "
"command </%s>"
,
sc
->
styleString
());
}
}
static
void
handleLinkedWord
(
DocNode
*
parent
,
QList
<
DocNode
>
&
children
)
static
void
handleLinkedWord
(
DocNode
*
parent
,
QList
<
DocNode
>
&
children
)
{
{
Definition
*
compound
=
0
;
Definition
*
compound
=
0
;
...
@@ -828,13 +876,13 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children
...
@@ -828,13 +876,13 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children
{
{
handleStyleEnter
(
parent
,
children
,
DocStyleChange
::
Preformatted
,
&
g_token
->
attribs
);
handleStyleEnter
(
parent
,
children
,
DocStyleChange
::
Preformatted
,
&
g_token
->
attribs
);
parent
->
setInsidePreformatted
(
TRUE
);
parent
->
setInsidePreformatted
(
TRUE
);
doctokenizerYYsetInsidePre
(
TRUE
);
//
doctokenizerYYsetInsidePre(TRUE);
}
}
else
else
{
{
handleStyleLeave
(
parent
,
children
,
DocStyleChange
::
Preformatted
,
tokenName
);
handleStyleLeave
(
parent
,
children
,
DocStyleChange
::
Preformatted
,
tokenName
);
parent
->
setInsidePreformatted
(
FALSE
);
parent
->
setInsidePreformatted
(
FALSE
);
doctokenizerYYsetInsidePre
(
FALSE
);
//
doctokenizerYYsetInsidePre(FALSE);
}
}
break
;
break
;
case
HTML_CODE
:
case
HTML_CODE
:
...
@@ -2394,8 +2442,78 @@ int DocHtmlDescTitle::parse()
...
@@ -2394,8 +2442,78 @@ int DocHtmlDescTitle::parse()
switch
(
tok
)
switch
(
tok
)
{
{
case
TK_COMMAND
:
case
TK_COMMAND
:
{
QString
cmdName
=
g_token
->
name
;
bool
isJavaLink
=
FALSE
;
switch
(
CmdMapper
::
map
(
cmdName
))
{
case
CMD_REF
:
{
int
tok
=
doctokenizerYYlex
();
if
(
tok
!=
TK_WHITESPACE
)
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: expected whitespace after %s command"
,
g_token
->
name
.
data
());
}
else
{
doctokenizerYYsetStateRef
();
tok
=
doctokenizerYYlex
();
// get the reference id
if
(
tok
!=
TK_WORD
)
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: unexpected token %s as the argument of %s"
,
tokToString
(
tok
),
cmdName
.
data
());
}
else
{
DocRef
*
ref
=
new
DocRef
(
this
,
g_token
->
name
);
m_children
.
append
(
ref
);
ref
->
parse
();
}
doctokenizerYYsetStatePara
();
}
}
break
;
case
CMD_JAVALINK
:
isJavaLink
=
TRUE
;
// fall through
case
CMD_LINK
:
{
int
tok
=
doctokenizerYYlex
();
if
(
tok
!=
TK_WHITESPACE
)
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: expected whitespace after %s command"
,
cmdName
.
data
());
}
else
{
doctokenizerYYsetStateLink
();
tok
=
doctokenizerYYlex
();
if
(
tok
!=
TK_WORD
)
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: unexpected token %s as the argument of %s"
,
tokToString
(
tok
),
cmdName
.
data
());
}
else
{
doctokenizerYYsetStatePara
();
DocLink
*
lnk
=
new
DocLink
(
this
,
g_token
->
name
);
m_children
.
append
(
lnk
);
QString
leftOver
=
lnk
->
parse
(
isJavaLink
);
if
(
!
leftOver
.
isEmpty
())
{
m_children
.
append
(
new
DocWord
(
this
,
leftOver
));
}
}
}
}
break
;
default
:
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: Illegal command %s as part of a <dt> tag"
,
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: Illegal command %s as part of a <dt> tag"
,
g_token
->
name
.
data
());
g_token
->
name
.
data
());
}
}
break
;
break
;
case
TK_SYMBOL
:
case
TK_SYMBOL
:
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: Unsupported symbol %s found"
,
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: Unsupported symbol %s found"
,
...
@@ -2413,6 +2531,17 @@ int DocHtmlDescTitle::parse()
...
@@ -2413,6 +2531,17 @@ int DocHtmlDescTitle::parse()
{
{
// ignore </dt> tag.
// ignore </dt> tag.
}
}
else
if
(
tagId
==
HTML_DT
)
{
// missing <dt> tag.
retval
=
RetVal_DescTitle
;
goto
endtitle
;
}
else
if
(
tagId
==
HTML_DL
&&
g_token
->
endTag
)
{
retval
=
RetVal_EndDesc
;
goto
endtitle
;
}
else
else
{
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: Unexpected html tag <%s%s> found within <dt> context"
,
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: Unexpected html tag <%s%s> found within <dt> context"
,
...
@@ -2518,7 +2647,7 @@ int DocHtmlDescList::parse()
...
@@ -2518,7 +2647,7 @@ int DocHtmlDescList::parse()
{
{
retval
=
dd
->
parse
();
retval
=
dd
->
parse
();
}
}
else
else
if
(
retval
!=
RetVal_DescTitle
)
{
{
// error
// error
break
;
break
;
...
@@ -3630,7 +3759,7 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
...
@@ -3630,7 +3759,7 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
case
HTML_PRE
:
case
HTML_PRE
:
handleStyleEnter
(
this
,
m_children
,
DocStyleChange
::
Preformatted
,
&
g_token
->
attribs
);
handleStyleEnter
(
this
,
m_children
,
DocStyleChange
::
Preformatted
,
&
g_token
->
attribs
);
setInsidePreformatted
(
TRUE
);
setInsidePreformatted
(
TRUE
);
doctokenizerYYsetInsidePre
(
TRUE
);
//
doctokenizerYYsetInsidePre(TRUE);
break
;
break
;
case
HTML_P
:
case
HTML_P
:
retval
=
TK_NEWPARA
;
retval
=
TK_NEWPARA
;
...
@@ -3759,13 +3888,20 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
...
@@ -3759,13 +3888,20 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
{
{
HtmlAttribListIterator
li
(
tagHtmlAttribs
);
HtmlAttribListIterator
li
(
tagHtmlAttribs
);
HtmlAttrib
*
opt
;
HtmlAttrib
*
opt
;
bool
found
=
FALSE
;
for
(
li
.
toFirst
();(
opt
=
li
.
current
());
++
li
)
for
(
li
.
toFirst
();(
opt
=
li
.
current
());
++
li
)
{
{
//printf("option name=%s value=%s\n",opt->name.data(),opt->value.data());
if
(
opt
->
name
==
"src"
&&
!
opt
->
value
.
isEmpty
())
if
(
opt
->
name
==
"src"
&&
!
opt
->
value
.
isEmpty
())
{
{
DocImage
*
img
=
new
DocImage
(
this
,
opt
->
value
,
DocImage
::
Html
);
DocImage
*
img
=
new
DocImage
(
this
,
opt
->
value
,
DocImage
::
Html
);
m_children
.
append
(
img
);
m_children
.
append
(
img
);
found
=
TRUE
;
}
}
}
if
(
!
found
)
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: IMG tag does not have a SRC attribute!
\n
"
);
}
}
}
}
break
;
break
;
...
@@ -3849,9 +3985,9 @@ int DocPara::handleHtmlEndTag(const QString &tagName)
...
@@ -3849,9 +3985,9 @@ int DocPara::handleHtmlEndTag(const QString &tagName)
handleStyleLeave
(
this
,
m_children
,
DocStyleChange
::
Small
,
"small"
);
handleStyleLeave
(
this
,
m_children
,
DocStyleChange
::
Small
,
"small"
);
break
;
break
;
case
HTML_PRE
:
case
HTML_PRE
:
handleStyleLeave
(
this
,
m_children
,
DocStyleChange
::
Preformatted
,
"pre
formatted
"
);
handleStyleLeave
(
this
,
m_children
,
DocStyleChange
::
Preformatted
,
"pre"
);
setInsidePreformatted
(
FALSE
);
setInsidePreformatted
(
FALSE
);
doctokenizerYYsetInsidePre
(
FALSE
);
//
doctokenizerYYsetInsidePre(FALSE);
break
;
break
;
case
HTML_P
:
case
HTML_P
:
// ignore </p> tag
// ignore </p> tag
...
@@ -3918,6 +4054,7 @@ int DocPara::parse()
...
@@ -3918,6 +4054,7 @@ int DocPara::parse()
{
{
DBG
((
"DocPara::parse() start
\n
"
));
DBG
((
"DocPara::parse() start
\n
"
));
g_nodeStack
.
push
(
this
);
g_nodeStack
.
push
(
this
);
handleInitialStyleCommands
(
this
,
m_children
);
int
tok
;
int
tok
;
int
retval
=
0
;
int
retval
=
0
;
while
((
tok
=
doctokenizerYYlex
()))
// get the next token
while
((
tok
=
doctokenizerYYlex
()))
// get the next token
...
@@ -4369,6 +4506,8 @@ void DocText::parse()
...
@@ -4369,6 +4506,8 @@ void DocText::parse()
}
}
}
}
handleUnclosedStyleCommands
();
DocNode
*
n
=
g_nodeStack
.
pop
();
DocNode
*
n
=
g_nodeStack
.
pop
();
ASSERT
(
n
==
this
);
ASSERT
(
n
==
this
);
}
}
...
@@ -4423,6 +4562,8 @@ void DocRoot::parse()
...
@@ -4423,6 +4562,8 @@ void DocRoot::parse()
retval
=
in
->
parse
();
retval
=
in
->
parse
();
}
}
handleUnclosedStyleCommands
();
DocNode
*
n
=
g_nodeStack
.
pop
();
DocNode
*
n
=
g_nodeStack
.
pop
();
ASSERT
(
n
==
this
);
ASSERT
(
n
==
this
);
}
}
...
@@ -4443,6 +4584,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
...
@@ -4443,6 +4584,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
g_memberDef
=
md
;
g_memberDef
=
md
;
g_nodeStack
.
clear
();
g_nodeStack
.
clear
();
g_styleStack
.
clear
();
g_styleStack
.
clear
();
g_initialStyleStack
.
clear
();
g_inSeeBlock
=
FALSE
;
g_inSeeBlock
=
FALSE
;
g_insideHtmlLink
=
FALSE
;
g_insideHtmlLink
=
FALSE
;
g_includeFileText
=
""
;
g_includeFileText
=
""
;
...
@@ -4491,6 +4633,7 @@ DocNode *validatingParseText(const char *input)
...
@@ -4491,6 +4633,7 @@ DocNode *validatingParseText(const char *input)
g_memberDef
=
0
;
g_memberDef
=
0
;
g_nodeStack
.
clear
();
g_nodeStack
.
clear
();
g_styleStack
.
clear
();
g_styleStack
.
clear
();
g_initialStyleStack
.
clear
();
g_inSeeBlock
=
FALSE
;
g_inSeeBlock
=
FALSE
;
g_insideHtmlLink
=
FALSE
;
g_insideHtmlLink
=
FALSE
;
g_includeFileText
=
""
;
g_includeFileText
=
""
;
...
...
src/docparser.h
View file @
04dd14e8
...
@@ -283,6 +283,7 @@ class DocStyleChange : public DocNode
...
@@ -283,6 +283,7 @@ class DocStyleChange : public DocNode
{
if
(
attribs
)
m_attribs
=*
attribs
;
}
{
if
(
attribs
)
m_attribs
=*
attribs
;
}
Kind
kind
()
const
{
return
Kind_StyleChange
;
}
Kind
kind
()
const
{
return
Kind_StyleChange
;
}
Style
style
()
const
{
return
m_style
;
}
Style
style
()
const
{
return
m_style
;
}
const
char
*
styleString
()
const
;
bool
enable
()
const
{
return
m_enable
;
}
bool
enable
()
const
{
return
m_enable
;
}
uint
position
()
const
{
return
m_position
;
}
uint
position
()
const
{
return
m_position
;
}
DocNode
*
parent
()
const
{
return
m_parent
;
}
DocNode
*
parent
()
const
{
return
m_parent
;
}
...
...
src/doctokenizer.l
View file @
04dd14e8
...
@@ -162,26 +162,27 @@ static void parseHtmlAttribs(const char *att)
...
@@ -162,26 +162,27 @@ static void parseHtmlAttribs(const char *att)
while (i<len && c==' ') { c=attribs.at(++i); }
while (i<len && c==' ') { c=attribs.at(++i); }
if (attribs.at(i)=='=') // option has value
if (attribs.at(i)=='=') // option has value
{
{
i++
;
c=attribs.at(++i)
;
// skip spaces
// skip spaces
while (i<len && c==' ') { c=attribs.at(++i); }
while (i<len && c==' ') { c=attribs.at(++i); }
if (attribs.at(i)=='\'') // option '...'
if (attribs.at(i)=='\'') // option '...'
{
{
i++
;
c=attribs.at(++i)
;
startAttrib=i;
startAttrib=i;
// search for matching quote
// search for matching quote
while (i<len && c!='\'') { c=attribs.at(++i); }
while (i<len && c!='\'') { c=attribs.at(++i); }
endAttrib=i;
endAttrib=i;
i++
;
c=attribs.at(++i)
;
}
}
else if (attribs.at(i)=='"') // option "..."
else if (attribs.at(i)=='"') // option "..."
{
{
i++
;
c=attribs.at(++i)
;
startAttrib=i;
startAttrib=i;
// search for matching quote
// search for matching quote
while (i<len && c!='"') { c=attribs.at(++i); }
while (i<len && c!='"') { c=attribs.at(++i); }
endAttrib=i;
endAttrib=i;
i++
;
c=attribs.at(++i)
;
}
}
else // value without any quotes
else // value without any quotes
{
{
...
@@ -189,7 +190,7 @@ static void parseHtmlAttribs(const char *att)
...
@@ -189,7 +190,7 @@ static void parseHtmlAttribs(const char *att)
// search for separator
// search for separator
while (i<len && c!=' ') { c=attribs.at(++i); }
while (i<len && c!=' ') { c=attribs.at(++i); }
endAttrib=i;
endAttrib=i;
i++
;
c=attribs.at(++i)
;
}
}
opt.value = attribs.mid(startAttrib,endAttrib-startAttrib);
opt.value = attribs.mid(startAttrib,endAttrib-startAttrib);
}
}
...
@@ -378,7 +379,7 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
...
@@ -378,7 +379,7 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
g_token->isEMailAddr=FALSE;
g_token->isEMailAddr=FALSE;
return TK_URL;
return TK_URL;
}
}
<St_Para>[a-z_A-Z0-9.-]+"@"[a-z_A-Z0-9-]+("."[a-z_A-Z0-9\-])+[a-z_A-Z0-9\-]+ { // Mail address
<St_Para>[a-z_A-Z0-9.-]+"@"[a-z_A-Z0-9-]+("."[a-z_A-Z0-9\-]
+
)+[a-z_A-Z0-9\-]+ { // Mail address
g_token->name=yytext;
g_token->name=yytext;
g_token->isEMailAddr=TRUE;
g_token->isEMailAddr=TRUE;
return TK_URL;
return TK_URL;
...
@@ -598,7 +599,7 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
...
@@ -598,7 +599,7 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
return 0;
return 0;
}
}
<St_Ref>
{ID}
{
<St_Ref>
({ID}[.-])*{ID}
{
g_token->name=yytext;
g_token->name=yytext;
return TK_WORD;
return TK_WORD;
}
}
...
...
src/doxygen.cpp
View file @
04dd14e8
...
@@ -2524,8 +2524,8 @@ static void transferFunctionDocumentation()
...
@@ -2524,8 +2524,8 @@ static void transferFunctionDocumentation()
// mdec->setGroupDef(mdef->getGroupDef(),mdef->getGroupPri(),mdef->docFile(),mdef->docLine(),mdef->hasDocumentation());
// mdec->setGroupDef(mdef->getGroupDef(),mdef->getGroupPri(),mdef->docFile(),mdef->docLine(),mdef->hasDocumentation());
//}
//}
mdec
->
setRefItems
(
mdef
->
specialListItems
()
);
mdec
->
mergeRefItems
(
mdef
);
mdef
->
setRefItems
(
mdec
->
specialListItems
()
);
mdef
->
mergeRefItems
(
mdec
);
mdef
->
setMemberDeclaration
(
mdec
);
mdef
->
setMemberDeclaration
(
mdec
);
mdec
->
setMemberDefinition
(
mdef
);
mdec
->
setMemberDefinition
(
mdef
);
...
...
src/htmldocvisitor.cpp
View file @
04dd14e8
...
@@ -166,7 +166,7 @@ void HtmlDocVisitor::visit(DocStyleChange *s)
...
@@ -166,7 +166,7 @@ void HtmlDocVisitor::visit(DocStyleChange *s)
else
else
{
{
m_insidePre
=
FALSE
;
m_insidePre
=
FALSE
;
m_t
<<
"</pre>
\n
"
;
m_t
<<
"</pre>"
;
}
}
}
}
}
}
...
@@ -279,24 +279,26 @@ void HtmlDocVisitor::visitPre(DocAutoList *l)
...
@@ -279,24 +279,26 @@ void HtmlDocVisitor::visitPre(DocAutoList *l)
{
{
if
(
l
->
isEnumList
())
if
(
l
->
isEnumList
())
{
{
m_t
<<
"<ol>
\n
"
;
m_t
<<
"<ol>"
;
}
}
else
else
{
{
m_t
<<
"<ul>
\n
"
;
m_t
<<
"<ul>"
;
}
}
if
(
!
l
->
isPreformatted
())
m_t
<<
"
\n
"
;
}
}
void
HtmlDocVisitor
::
visitPost
(
DocAutoList
*
l
)
void
HtmlDocVisitor
::
visitPost
(
DocAutoList
*
l
)
{
{
if
(
l
->
isEnumList
())
if
(
l
->
isEnumList
())
{
{
m_t
<<
"</ol>
\n
"
;
m_t
<<
"</ol>"
;
}
}
else
else
{
{
m_t
<<
"</ul>
\n
"
;
m_t
<<
"</ul>"
;
}
}
if
(
!
l
->
isPreformatted
())
m_t
<<
"
\n
"
;
}
}
void
HtmlDocVisitor
::
visitPre
(
DocAutoListItem
*
)
void
HtmlDocVisitor
::
visitPre
(
DocAutoListItem
*
)
...
@@ -319,7 +321,10 @@ void HtmlDocVisitor::visitPost(DocPara *p)
...
@@ -319,7 +321,10 @@ void HtmlDocVisitor::visitPost(DocPara *p)
!
(
p
->
parent
()
&&
// and for parameter sections
!
(
p
->
parent
()
&&
// and for parameter sections
p
->
parent
()
->
kind
()
==
DocNode
::
Kind_ParamSect
p
->
parent
()
->
kind
()
==
DocNode
::
Kind_ParamSect
)
)
)
m_t
<<
"
\n
<p>
\n
"
;
)
{
m_t
<<
"<p>"
;
}
}
}
void
HtmlDocVisitor
::
visitPre
(
DocRoot
*
)
void
HtmlDocVisitor
::
visitPre
(
DocRoot
*
)
...
@@ -391,14 +396,16 @@ void HtmlDocVisitor::visitPost(DocTitle *)
...
@@ -391,14 +396,16 @@ void HtmlDocVisitor::visitPost(DocTitle *)
m_t
<<
"</b></dt><dd>"
;
m_t
<<
"</b></dt><dd>"
;
}
}
void
HtmlDocVisitor
::
visitPre
(
DocSimpleList
*
)
void
HtmlDocVisitor
::
visitPre
(
DocSimpleList
*
sl
)
{
{
m_t
<<
"<ul>
\n
"
;
m_t
<<
"<ul>"
;
if
(
!
sl
->
isPreformatted
())
m_t
<<
"
\n
"
;
}
}
void
HtmlDocVisitor
::
visitPost
(
DocSimpleList
*
)
void
HtmlDocVisitor
::
visitPost
(
DocSimpleList
*
sl
)
{
{
m_t
<<
"</ul>
\n
"
;
m_t
<<
"</ul>"
;
if
(
!
sl
->
isPreformatted
())
m_t
<<
"
\n
"
;
}
}
void
HtmlDocVisitor
::
visitPre
(
DocSimpleListItem
*
)
void
HtmlDocVisitor
::
visitPre
(
DocSimpleListItem
*
)
...
@@ -406,9 +413,10 @@ void HtmlDocVisitor::visitPre(DocSimpleListItem *)
...
@@ -406,9 +413,10 @@ void HtmlDocVisitor::visitPre(DocSimpleListItem *)
m_t
<<
"<li>"
;
m_t
<<
"<li>"
;
}
}
void
HtmlDocVisitor
::
visitPost
(
DocSimpleListItem
*
)
void
HtmlDocVisitor
::
visitPost
(
DocSimpleListItem
*
li
)
{
{
m_t
<<
"</li>
\n
"
;
m_t
<<
"</li>"
;
if
(
!
li
->
isPreformatted
())
m_t
<<
"
\n
"
;
}
}
void
HtmlDocVisitor
::
visitPre
(
DocSection
*
s
)
void
HtmlDocVisitor
::
visitPre
(
DocSection
*
s
)
...
@@ -435,14 +443,16 @@ void HtmlDocVisitor::visitPre(DocHtmlList *s)
...
@@ -435,14 +443,16 @@ void HtmlDocVisitor::visitPre(DocHtmlList *s)
void
HtmlDocVisitor
::
visitPost
(
DocHtmlList
*
s
)
void
HtmlDocVisitor
::
visitPost
(
DocHtmlList
*
s
)
{
{
if
(
s
->
type
()
==
DocHtmlList
::
Ordered
)
if
(
s
->
type
()
==
DocHtmlList
::
Ordered
)
m_t
<<
"</ol>
\n
"
;
m_t
<<
"</ol>"
;
else
else
m_t
<<
"</ul>
\n
"
;
m_t
<<
"</ul>"
;
if
(
!
s
->
isPreformatted
())
m_t
<<
"
\n
"
;
}
}
void
HtmlDocVisitor
::
visitPre
(
DocHtmlListItem
*
i
)
void
HtmlDocVisitor
::
visitPre
(
DocHtmlListItem
*
i
)
{
{
m_t
<<
"<li"
<<
htmlAttribsToString
(
i
->
attribs
())
<<
">
\n
"
;
m_t
<<
"<li"
<<
htmlAttribsToString
(
i
->
attribs
())
<<
">"
;
if
(
!
i
->
isPreformatted
())
m_t
<<
"
\n
"
;
}
}
void
HtmlDocVisitor
::
visitPost
(
DocHtmlListItem
*
)
void
HtmlDocVisitor
::
visitPost
(
DocHtmlListItem
*
)
...
...
src/memberdef.cpp
View file @
04dd14e8
...
@@ -706,6 +706,11 @@ void MemberDef::writeDeclaration(OutputList &ol,
...
@@ -706,6 +706,11 @@ void MemberDef::writeDeclaration(OutputList &ol,
if
(
cd
)
d
=
cd
;
else
if
(
nd
)
d
=
nd
;
else
if
(
fd
)
d
=
fd
;
else
d
=
gd
;
if
(
cd
)
d
=
cd
;
else
if
(
nd
)
d
=
nd
;
else
if
(
fd
)
d
=
fd
;
else
d
=
gd
;
QCString
cname
=
d
->
name
();
QCString
cname
=
d
->
name
();
QCString
cfname
=
d
->
getOutputFileBase
();
QCString
cfname
=
d
->
getOutputFileBase
();
QCString
osname
=
cname
;
// in case of class members that are put in a group the name of the outerscope
// differs from the cname.
if
(
getOuterScope
())
osname
=
getOuterScope
()
->
name
();
HtmlHelp
*
htmlHelp
=
0
;
HtmlHelp
*
htmlHelp
=
0
;
bool
hasHtmlHelp
=
Config_getBool
(
"GENERATE_HTML"
)
&&
Config_getBool
(
"GENERATE_HTMLHELP"
);
bool
hasHtmlHelp
=
Config_getBool
(
"GENERATE_HTML"
)
&&
Config_getBool
(
"GENERATE_HTMLHELP"
);
...
@@ -926,7 +931,7 @@ void MemberDef::writeDeclaration(OutputList &ol,
...
@@ -926,7 +931,7 @@ void MemberDef::writeDeclaration(OutputList &ol,
!
annMemb
)
!
annMemb
)
{
{
ol
.
startMemberDescription
();
ol
.
startMemberDescription
();
ol
.
parseDoc
(
briefFile
(),
briefLine
(),
c
name
,
this
,
briefDescription
(),
FALSE
);
ol
.
parseDoc
(
briefFile
(),
briefLine
(),
os
name
,
this
,
briefDescription
(),
FALSE
);
if
(
detailsVisible
)
if
(
detailsVisible
)
{
{
ol
.
pushGeneratorState
();
ol
.
pushGeneratorState
();
...
@@ -1590,8 +1595,8 @@ void MemberDef::warnIfUndocumented()
...
@@ -1590,8 +1595,8 @@ void MemberDef::warnIfUndocumented()
(
prot
!=
Private
||
Config_getBool
(
"EXTRACT_PRIVATE"
))
(
prot
!=
Private
||
Config_getBool
(
"EXTRACT_PRIVATE"
))
)
)
{
{
warn_undoc
(
m_defFileName
,
m_defLine
,
"Warning: Member %s of %s %s is not documented."
,
warn_undoc
(
m_defFileName
,
m_defLine
,
"Warning: Member %s
%s
of %s %s is not documented."
,
name
().
data
(),
t
,
d
->
name
().
data
());
name
().
data
(),
argsString
()
?
argsString
()
:
""
,
t
,
d
->
name
().
data
());
}
}
}
}
...
...
src/rtfstyle.cpp
View file @
04dd14e8
...
@@ -442,7 +442,7 @@ void loadStylesheet(const char *name, QDict<StyleData>& dict)
...
@@ -442,7 +442,7 @@ void loadStylesheet(const char *name, QDict<StyleData>& dict)
{
{
QCString
s
(
4096
);
// string buffer of max line length
QCString
s
(
4096
);
// string buffer of max line length
s
=
t
.
readLine
().
stripWhiteSpace
();
s
=
t
.
readLine
().
stripWhiteSpace
();
if
(
s
.
length
()
==
0
||
s
.
at
(
0
)
==
'#'
)
continue
;
// skip blanks & comments
if
(
s
.
isEmpty
()
||
s
.
at
(
0
)
==
'#'
)
continue
;
// skip blanks & comments
int
sepLength
;
int
sepLength
;
int
sepStart
=
separator
.
match
(
s
,
0
,
&
sepLength
);
int
sepStart
=
separator
.
match
(
s
,
0
,
&
sepLength
);
if
(
sepStart
<=
0
)
// no valid assignment statement
if
(
sepStart
<=
0
)
// no valid assignment statement
...
...
src/scanner.l
View file @
04dd14e8
...
@@ -851,11 +851,6 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
...
@@ -851,11 +851,6 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
<FindMembers>{BN}{1,80} {
<FindMembers>{BN}{1,80} {
lineCount();
lineCount();
}
}
<FindMembers>{B}*"package"{BN}+ { // Java package
lineCount();
BEGIN(PackageName);
}
<PackageName>{ID}("."{ID})* {
<PackageName>{ID}("."{ID})* {
//current->name = yytext;
//current->name = yytext;
//current->fileName = yyFileName;
//current->fileName = yyFileName;
...
@@ -1284,6 +1279,11 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
...
@@ -1284,6 +1279,11 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
else // insideJava
else // insideJava
BEGIN(JavaImport);
BEGIN(JavaImport);
}
}
else if (insideJava && strcmp(yytext,"package")==0)
{
lineCount();
BEGIN(PackageName);
}
else if (insideIDL && strcmp(yytext,"case")==0)
else if (insideIDL && strcmp(yytext,"case")==0)
{
{
BEGIN(IDLUnionCase);
BEGIN(IDLUnionCase);
...
@@ -1913,7 +1913,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
...
@@ -1913,7 +1913,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
current = new Entry(*current);
current = new Entry(*current);
if (current->section==Entry::NAMESPACE_SEC ||
if (current->section==Entry::NAMESPACE_SEC ||
current->section==Entry::INTERFACE_SEC ||
current->section==Entry::INTERFACE_SEC ||
insideJava
insideJava
|| insidePHP
)
)
{ // namespaces and interfaces and java classes ends with a closing bracket without semicolon
{ // namespaces and interfaces and java classes ends with a closing bracket without semicolon
current->reset();
current->reset();
...
...
src/translator_de.h
View file @
04dd14e8
...
@@ -101,7 +101,7 @@ class TranslatorGerman : public Translator
...
@@ -101,7 +101,7 @@ class TranslatorGerman : public Translator
{
{
QCString
result
=
"
\\
usepackage{ngerman}
\n
"
;
QCString
result
=
"
\\
usepackage{ngerman}
\n
"
;
result
+=
"
\\
usepackage{t1enc}% Trennung verbessern bei Umlauten
\n
"
;
result
+=
"
\\
usepackage{t1enc}% Trennung verbessern bei Umlauten
\n
"
;
result
+=
"%
\\
usepackage[latin1]{inputenc}% Kodierung (cp850,latin1,ansinew)"
;
result
+=
"%
\\
usepackage[latin1]{inputenc}% Kodierung (cp850,latin1,ansinew)
\n
"
;
return
result
;
return
result
;
}
}
...
...
src/translator_en.h
View file @
04dd14e8
...
@@ -669,25 +669,25 @@ class TranslatorEnglish : public Translator
...
@@ -669,25 +669,25 @@ class TranslatorEnglish : public Translator
}
}
virtual
QCString
trPublicMembers
()
virtual
QCString
trPublicMembers
()
{
return
"Public Me
thod
s"
;
}
{
return
"Public Me
mber Function
s"
;
}
virtual
QCString
trPublicSlots
()
virtual
QCString
trPublicSlots
()
{
return
"Public Slots"
;
}
{
return
"Public Slots"
;
}
virtual
QCString
trSignals
()
virtual
QCString
trSignals
()
{
return
"Signals"
;
}
{
return
"Signals"
;
}
virtual
QCString
trStaticPublicMembers
()
virtual
QCString
trStaticPublicMembers
()
{
return
"Static Public Me
thod
s"
;
}
{
return
"Static Public Me
mber Function
s"
;
}
virtual
QCString
trProtectedMembers
()
virtual
QCString
trProtectedMembers
()
{
return
"Protected Me
thod
s"
;
}
{
return
"Protected Me
mber Function
s"
;
}
virtual
QCString
trProtectedSlots
()
virtual
QCString
trProtectedSlots
()
{
return
"Protected Slots"
;
}
{
return
"Protected Slots"
;
}
virtual
QCString
trStaticProtectedMembers
()
virtual
QCString
trStaticProtectedMembers
()
{
return
"Static Protected Me
thod
s"
;
}
{
return
"Static Protected Me
mber Function
s"
;
}
virtual
QCString
trPrivateMembers
()
virtual
QCString
trPrivateMembers
()
{
return
"Private Me
thod
s"
;
}
{
return
"Private Me
mber Function
s"
;
}
virtual
QCString
trPrivateSlots
()
virtual
QCString
trPrivateSlots
()
{
return
"Private Slots"
;
}
{
return
"Private Slots"
;
}
virtual
QCString
trStaticPrivateMembers
()
virtual
QCString
trStaticPrivateMembers
()
{
return
"Static Private Me
thod
s"
;
}
{
return
"Static Private Me
mber Function
s"
;
}
/*! this function is used to produce a comma-separated list of items.
/*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put.
* use generateMarker(i) to indicate where item i should be put.
...
@@ -1126,7 +1126,7 @@ class TranslatorEnglish : public Translator
...
@@ -1126,7 +1126,7 @@ class TranslatorEnglish : public Translator
/*! Used as a section header for KDE-2 IDL methods */
/*! Used as a section header for KDE-2 IDL methods */
virtual
QCString
trDCOPMethods
()
virtual
QCString
trDCOPMethods
()
{
{
return
"DCOP Me
thod
s"
;
return
"DCOP Me
mber Function
s"
;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
...
...
src/translator_sr.h
View file @
04dd14e8
...
@@ -1414,6 +1414,22 @@ private:
...
@@ -1414,6 +1414,22 @@ private:
{
{
return
decode
(
"Spisak zastarelih funkcija èlanica"
);
return
decode
(
"Spisak zastarelih funkcija èlanica"
);
}
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.18
//////////////////////////////////////////////////////////////////////////
/*! Used as a header for declaration section of the events found in
* a C# program
*/
virtual
QCString
trEvents
()
{
return
"Dogaðaji"
;
}
/*! Header used for the documentation section of a class' events. */
virtual
QCString
trEventDocumentation
()
{
return
"Dokumentacija dogaðaja"
;
}
};
};
...
...
src/util.cpp
View file @
04dd14e8
...
@@ -317,15 +317,16 @@ QCString generateMarker(int id)
...
@@ -317,15 +317,16 @@ QCString generateMarker(int id)
*/
*/
QCString
stripFromPath
(
const
QCString
&
path
)
QCString
stripFromPath
(
const
QCString
&
path
)
{
{
const
char
*
s
=
Config_getList
(
"STRIP_FROM_PATH"
).
first
();
QStrList
&
l
=
Config_getList
(
"STRIP_FROM_PATH"
);
const
char
*
s
=
l
.
first
();
while
(
s
)
while
(
s
)
{
{
QCString
prefix
=
s
;
QCString
prefix
=
s
;
if
(
path
.
left
(
prefix
.
length
())
==
prefix
)
if
(
stricmp
(
path
.
left
(
prefix
.
length
()),
prefix
)
==
0
)
// case insensitive compare
{
{
return
path
.
right
(
path
.
length
()
-
prefix
.
length
());
return
path
.
right
(
path
.
length
()
-
prefix
.
length
());
}
}
s
=
Config_getList
(
"STRIP_FROM_PATH"
)
.
next
();
s
=
l
.
next
();
}
}
return
path
;
return
path
;
}
}
...
@@ -1691,7 +1692,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
...
@@ -1691,7 +1692,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
{
{
dstPos
++
;
dstPos
++
;
while
(
dstPos
<
dstAType
.
length
()
&&
isId
(
dstAType
.
at
(
dstPos
)))
dstPos
++
;
while
(
dstPos
<
dstAType
.
length
()
&&
isId
(
dstAType
.
at
(
dstPos
)))
dstPos
++
;
if
(
dstPos
!=
dstAType
.
length
())
if
(
dstPos
!=
dstAType
.
length
()
||
!
srcA
->
name
.
isEmpty
()
)
{
{
NOMATCH
NOMATCH
return
FALSE
;
// nope not a name -> no match
return
FALSE
;
// nope not a name -> no match
...
@@ -1718,13 +1719,17 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
...
@@ -1718,13 +1719,17 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
{
{
srcPos
++
;
srcPos
++
;
while
(
srcPos
<
srcAType
.
length
()
&&
isId
(
srcAType
.
at
(
srcPos
)))
srcPos
++
;
while
(
srcPos
<
srcAType
.
length
()
&&
isId
(
srcAType
.
at
(
srcPos
)))
srcPos
++
;
if
(
srcPos
!=
srcAType
.
length
())
if
(
srcPos
!=
srcAType
.
length
()
||
!
dstA
->
name
.
isEmpty
()
)
{
{
NOMATCH
NOMATCH
return
FALSE
;
// nope not a name -> no match
return
FALSE
;
// nope not a name -> no match
}
}
}
}
}
}
else
{
printf
(
"something else!
\n
"
);
}
}
}
MATCH
MATCH
return
TRUE
;
return
TRUE
;
...
@@ -2574,8 +2579,6 @@ bool resolveLink(/* in */ const char *scName,
...
@@ -2574,8 +2579,6 @@ bool resolveLink(/* in */ const char *scName,
/* out */
QCString
&
resAnchor
/* out */
QCString
&
resAnchor
)
)
{
{
//printf("resolveLink clName=`%s' lr=`%s'\n",scName,lr);
*
resContext
=
0
;
*
resContext
=
0
;
*
resPageInfo
=
0
;
*
resPageInfo
=
0
;
...
@@ -2583,6 +2586,8 @@ bool resolveLink(/* in */ const char *scName,
...
@@ -2583,6 +2586,8 @@ bool resolveLink(/* in */ const char *scName,
FileDef
*
fd
;
FileDef
*
fd
;
GroupDef
*
gd
;
GroupDef
*
gd
;
PageInfo
*
pi
;
PageInfo
*
pi
;
ClassDef
*
cd
;
NamespaceDef
*
nd
;
bool
ambig
;
bool
ambig
;
if
(
linkRef
.
isEmpty
())
// no reference name!
if
(
linkRef
.
isEmpty
())
// no reference name!
{
{
...
@@ -2620,7 +2625,17 @@ bool resolveLink(/* in */ const char *scName,
...
@@ -2620,7 +2625,17 @@ bool resolveLink(/* in */ const char *scName,
*
resContext
=
fd
;
*
resContext
=
fd
;
return
TRUE
;
return
TRUE
;
}
}
else
// probably a class or member reference
else
if
((
cd
=
getClass
(
linkRef
)))
{
*
resContext
=
cd
;
return
TRUE
;
}
else
if
((
nd
=
Doxygen
::
namespaceSDict
.
find
(
linkRef
)))
{
*
resContext
=
nd
;
return
TRUE
;
}
else
// probably a member reference
{
{
MemberDef
*
md
;
MemberDef
*
md
;
bool
res
=
resolveRef
(
scName
,
lr
,
inSeeBlock
,
resContext
,
&
md
);
bool
res
=
resolveRef
(
scName
,
lr
,
inSeeBlock
,
resContext
,
&
md
);
...
...
src/xmlgen.cpp
View file @
04dd14e8
...
@@ -58,7 +58,16 @@ inline void writeXMLCodeString(QTextStream &t,const char *s)
...
@@ -58,7 +58,16 @@ inline void writeXMLCodeString(QTextStream &t,const char *s)
char
c
;
char
c
;
while
((
c
=*
s
++
))
while
((
c
=*
s
++
))
{
{
if
(
c
==
' '
)
t
<<
"<sp/>"
;
else
t
<<
c
;
switch
(
c
)
{
case
' '
:
t
<<
"<sp/>"
;
break
;
case
'<'
:
t
<<
"<"
;
break
;
case
'>'
:
t
<<
">"
;
break
;
case
'&'
:
t
<<
"&"
;
break
;
case
'\''
:
t
<<
"'"
;
break
;
case
'"'
:
t
<<
"""
;
break
;
default:
t
<<
c
;
break
;
}
}
}
}
}
...
@@ -367,7 +376,7 @@ static void writeXMLDocBlock(QTextStream &t,
...
@@ -367,7 +376,7 @@ static void writeXMLDocBlock(QTextStream &t,
QCString
stext
=
text
.
stripWhiteSpace
();
QCString
stext
=
text
.
stripWhiteSpace
();
if
(
stext
.
isEmpty
())
return
;
if
(
stext
.
isEmpty
())
return
;
// convert the documentation string into an abstract syntax tree
// convert the documentation string into an abstract syntax tree
DocNode
*
root
=
validatingParseDoc
(
fileName
,
lineNr
,
scope
,
md
,
stext
,
FALSE
);
DocNode
*
root
=
validatingParseDoc
(
fileName
,
lineNr
,
scope
,
md
,
text
+
"
\n
"
,
FALSE
);
// create a code generator
// create a code generator
XMLCodeGenerator
*
xmlCodeGen
=
new
XMLCodeGenerator
(
t
);
XMLCodeGenerator
*
xmlCodeGen
=
new
XMLCodeGenerator
(
t
);
// create a parse tree visitor for XML
// create a parse tree visitor for XML
...
...
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