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
ecdf7c39
Commit
ecdf7c39
authored
May 24, 2003
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.3-20030524
parent
20bd371f
Changes
21
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
399 additions
and
392 deletions
+399
-392
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
commands.doc
doc/commands.doc
+8
-4
language.doc
doc/language.doc
+13
-13
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+2
-2
config.l
src/config.l
+1
-1
defgen.cpp
src/defgen.cpp
+2
-2
doctokenizer.l
src/doctokenizer.l
+1
-1
dot.cpp
src/dot.cpp
+71
-50
dot.h
src/dot.h
+31
-27
doxygen.cpp
src/doxygen.cpp
+10
-3
htmlgen.cpp
src/htmlgen.cpp
+117
-202
memberdef.cpp
src/memberdef.cpp
+28
-25
pre.l
src/pre.l
+1
-1
scanner.l
src/scanner.l
+1
-0
translator_hr.h
src/translator_hr.h
+45
-3
util.cpp
src/util.cpp
+49
-37
util.h
src/util.h
+1
-1
xmlgen.cpp
src/xmlgen.cpp
+12
-14
No files found.
INSTALL
View file @
ecdf7c39
DOXYGEN Version 1.3-200305
1
4
DOXYGEN Version 1.3-200305
2
4
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (
1
4 May 2003)
Dimitri van Heesch (
2
4 May 2003)
README
View file @
ecdf7c39
DOXYGEN Version 1.3_200305
1
4
DOXYGEN Version 1.3_200305
2
4
Please read INSTALL for compilation instructions.
...
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (
1
4 May 2003)
Dimitri van Heesch (dimitri@stack.nl) (
2
4 May 2003)
VERSION
View file @
ecdf7c39
1.3-200305
1
4
1.3-200305
2
4
doc/commands.doc
View file @
ecdf7c39
...
...
@@ -1439,10 +1439,14 @@ ALIASES = "english=\if english" \
duplicated or it can be used to extend the documentation of an inherited
member.
The link object can point to a member, a class, a namespace, a group,
a page, or a file (checked in that order). To copy the
documentation for a member of a class for instance one can put the
following in the documentation
The link object can point to a member (of a class, file or group),
a class, a namespace, a group, a page, or a file (checked in that order).
Note that if the object pointed to is a member (function, variable,
typedef, etc), the compound (class, file, or group) containing it
should also be documented for the copying to work.
To copy the documentation for a member of a
class for instance one can put the following in the documentation
\verbatim
/*! @copydoc MyClass::myfunction()
...
...
doc/language.doc
View file @
ecdf7c39
...
...
@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
that the text fragments that doxygen generates can be produced in
languages other than English (the default) at configuration time.
Currently (version 1.
2.14-20020317
), 28 languages
Currently (version 1.
3-20030430
), 28 languages
are supported (sorted alphabetically):
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Czech, Danish, Dutch, English, Finnish,
...
...
@@ -55,7 +55,7 @@ when the translator was updated.
<TD>Brazilian Portuguese</TD>
<TD>Fabio "FJTC" Jun Takada Chino</TD>
<TD>chino@NOSPAM.icmc.sc.usp.br</TD>
<TD>
strang
e</TD>
<TD>
up-to-dat
e</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>Catalan</TD>
...
...
@@ -79,13 +79,13 @@ when the translator was updated.
<TD>Croatian</TD>
<TD>Boris Bralo</TD>
<TD>boris.bralo@NOSPAM.zg.tel.hr</TD>
<TD>
strang
e</TD>
<TD>
up-to-dat
e</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>Czech</TD>
<TD>Petr Přikryl</TD>
<TD>prikrylp@NOSPAM.skil.cz</TD>
<TD>
strang
e</TD>
<TD>
up-to-dat
e</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>Danish</TD>
...
...
@@ -115,13 +115,13 @@ when the translator was updated.
<TD>French</TD>
<TD>Xavier Outhier</TD>
<TD>xouthier@NOSPAM.yahoo.fr</TD>
<TD>
strang
e</TD>
<TD>
up-to-dat
e</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>German</TD>
<TD>Jens Seidel</TD>
<TD>jensseidel@NOSPAM.users.sf.net</TD>
<TD>
strang
e</TD>
<TD>
up-to-dat
e</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>Greek</TD>
...
...
@@ -139,7 +139,7 @@ when the translator was updated.
<TD>Italian</TD>
<TD>Alessandro Falappa<br>Ahmed Aldo Faisal</TD>
<TD>alessandro@NOSPAM.falappa.net<br>aaf23@NOSPAM.cam.ac.uk</TD>
<TD>
strang
e</TD>
<TD>
up-to-dat
e</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>Japanese</TD>
...
...
@@ -230,7 +230,7 @@ when the translator was updated.
{\bf Language} & {\bf Maintainer} & {\bf Contact address} & {\bf Status} \\
\hline
\hline
Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt chino@icmc.sc.usp.br} &
strang
e \\
Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt chino@icmc.sc.usp.br} &
up-to-dat
e \\
\hline
Catalan & Albert Mora & {\tt amora@iua.upf.es} & 1.2.17 \\
\hline
...
...
@@ -239,9 +239,9 @@ when the translator was updated.
\hline
Chinese Traditional & Gary Lee & {\tt garylee@ecosine.com.tw} & 1.2.16 \\
\hline
Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} &
strang
e \\
Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} &
up-to-dat
e \\
\hline
Czech & Petr P\v{r}ikryl & {\tt prikrylp@skil.cz} &
strang
e \\
Czech & Petr P\v{r}ikryl & {\tt prikrylp@skil.cz} &
up-to-dat
e \\
\hline
Danish & Erik S\o{}e S\o{}rensen & {\tt erik@mail.nu} & strange \\
\hline
...
...
@@ -251,15 +251,15 @@ when the translator was updated.
\hline
Finnish & Olli Korhonen & {\tt Olli.Korhonen@ccc.fi} & obsolete \\
\hline
French & Xavier Outhier & {\tt xouthier@yahoo.fr} &
strang
e \\
French & Xavier Outhier & {\tt xouthier@yahoo.fr} &
up-to-dat
e \\
\hline
German & Jens Seidel & {\tt jensseidel@users.sf.net} &
strang
e \\
German & Jens Seidel & {\tt jensseidel@users.sf.net} &
up-to-dat
e \\
\hline
Greek & Harry Kalogirou & {\tt harkal@rainbow.cs.unipi.gr} & 1.2.11 \\
\hline
Hungarian & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt foldvari@diatronltd.com} & 1.2.1 \\
\hline
Italian & Alessandro Falappa & {\tt alessandro@falappa.net} &
strang
e \\
Italian & Alessandro Falappa & {\tt alessandro@falappa.net} &
up-to-dat
e \\
& Ahmed Aldo Faisal & {\tt aaf23@cam.ac.uk} & \\
\hline
Japanese & Ryunosuke Satoh & {\tt sun594@hotmail.com} & strange \\
...
...
packages/rpm/doxygen.spec
View file @
ecdf7c39
Summary: A documentation system for C/C++.
Name: doxygen
Version: 1.3_200305
1
4
Version: 1.3_200305
2
4
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
...
...
src/classdef.cpp
View file @
ecdf7c39
...
...
@@ -1057,7 +1057,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
if
(
Config_getBool
(
"HAVE_DOT"
)
&&
Config_getBool
(
"CLASS_GRAPH"
))
// write class diagram using dot
{
DotClassGraph
inheritanceGraph
(
this
,
Dot
ClassGraph
::
Inheritance
,
Config_getInt
(
"MAX_DOT_GRAPH_DEPTH"
));
DotClassGraph
inheritanceGraph
(
this
,
Dot
Node
::
Inheritance
,
Config_getInt
(
"MAX_DOT_GRAPH_DEPTH"
));
if
(
!
inheritanceGraph
.
isTrivial
())
{
ol
.
pushGeneratorState
();
...
...
@@ -1092,7 +1092,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
if
(
Config_getBool
(
"HAVE_DOT"
)
&&
Config_getBool
(
"COLLABORATION_GRAPH"
))
{
DotClassGraph
usageImplGraph
(
this
,
Dot
ClassGraph
::
Implement
ation
,
Config_getInt
(
"MAX_DOT_GRAPH_DEPTH"
));
DotClassGraph
usageImplGraph
(
this
,
Dot
Node
::
Collabor
ation
,
Config_getInt
(
"MAX_DOT_GRAPH_DEPTH"
));
if
(
!
usageImplGraph
.
isTrivial
())
{
ol
.
pushGeneratorState
();
...
...
src/config.l
View file @
ecdf7c39
...
...
@@ -2474,7 +2474,7 @@ void Config::create()
"TEMPLATE_RELATIONS",
"If set to YES, the inheritance and collaboration graphs will show the \n"
"relations between templates and their instances. \n",
TRU
E
FALS
E
);
cb->addDependency("HAVE_DOT");
cb = addBool(
...
...
src/defgen.cpp
View file @
ecdf7c39
...
...
@@ -453,7 +453,7 @@ void generateDEFForClass(ClassDef *cd,QTextStream &t)
t
<<
" cp-documentation = <<_EnD_oF_dEf_TeXt_"
<<
endl
<<
cd
->
documentation
()
<<
endl
<<
"_EnD_oF_dEf_TeXt_;"
<<
endl
;
DotClassGraph
inheritanceGraph
(
cd
,
Dot
ClassGraph
::
Inheritance
,
DotClassGraph
inheritanceGraph
(
cd
,
Dot
Node
::
Inheritance
,
Config_getInt
(
"MAX_DOT_GRAPH_DEPTH"
));
if
(
!
inheritanceGraph
.
isTrivial
())
{
...
...
@@ -461,7 +461,7 @@ void generateDEFForClass(ClassDef *cd,QTextStream &t)
inheritanceGraph
.
writeDEF
(
t
);
t
<<
endl
<<
"_EnD_oF_dEf_TeXt_;"
<<
endl
;
}
DotClassGraph
collaborationGraph
(
cd
,
Dot
ClassGraph
::
Implement
ation
,
DotClassGraph
collaborationGraph
(
cd
,
Dot
Node
::
Collabor
ation
,
Config_getInt
(
"MAX_DOT_GRAPH_DEPTH"
));
if
(
!
collaborationGraph
.
isTrivial
())
{
...
...
src/doctokenizer.l
View file @
ecdf7c39
...
...
@@ -279,7 +279,7 @@ OPNEW {BLANK}+"new"({BLANK}*"[]")?
OPDEL {BLANK}+"delete"({BLANK}*"[]")?
OPNORM {OPNEW}|{OPDEL}|"+"|"-"|"*"|"/"|"%"|"^"|"&"|"|"|"~"|"!"|"="|"<"|">"|"+="|"-="|"*="|"/="|"%="|"^="|"&="|"|="|"<<"|">>"|"<<="|">>="|"=="|"!="|"<="|">="|"&&"|"||"|"++"|"--"|","|"->*"|"->"|"[]"|"()"
OPCAST {BLANK}+[^(\r\n.,]+
OPMASK ({BLANK}*{OPNORM}
({FUNCARG}?)
)|({OPCAST}{FUNCARG})
OPMASK ({BLANK}*{OPNORM}
{FUNCARG}
)|({OPCAST}{FUNCARG})
LNKWORD1 ("::"|"#")?{SCOPEMASK}
CVSPEC {BLANK}*("const"|"volatile")
LNKWORD2 {SCOPEPRE}*"operator"{OPMASK}
...
...
src/dot.cpp
View file @
ecdf7c39
This diff is collapsed.
Click to expand it.
src/dot.h
View file @
ecdf7c39
...
...
@@ -47,21 +47,9 @@ struct EdgeInfo
class
DotNode
{
friend
class
DotGfxHierarchyTable
;
friend
class
DotClassGraph
;
friend
class
DotInclDepGraph
;
friend
class
DotNodeList
;
friend
void
writeDotGraph
(
DotNode
*
root
,
GraphOutputFormat
f
,
const
QCString
&
baseName
,
bool
lrRank
,
bool
renderParents
,
int
distance
,
bool
backArrow
);
public
:
DotNode
(
int
n
,
const
char
*
lab
,
const
char
*
url
,
int
distance
=
0
,
bool
rootNode
=
FALSE
);
enum
GraphType
{
Dependency
,
Inheritance
,
Collaboration
,
Hierarchy
};
DotNode
(
int
n
,
const
char
*
lab
,
const
char
*
url
,
int
distance
=
0
,
bool
rootNode
=
FALSE
,
ClassDef
*
cd
=
0
);
~
DotNode
();
void
addChild
(
DotNode
*
n
,
int
edgeColor
=
EdgeInfo
::
Purple
,
...
...
@@ -75,8 +63,8 @@ class DotNode
void
deleteNode
(
DotNodeList
&
deletedList
,
SDict
<
DotNode
>
*
skipNodes
=
0
);
void
removeChild
(
DotNode
*
n
);
void
removeParent
(
DotNode
*
n
);
void
write
(
QTextStream
&
t
,
Graph
OutputFormat
f
,
bool
topDown
,
bool
toChildren
,
int
maxDistance
,
bool
backArrows
);
void
write
(
QTextStream
&
t
,
Graph
Type
gt
,
GraphOutputFormat
f
,
bool
topDown
,
bool
toChildren
,
int
maxDistance
,
bool
backArrows
);
int
m_subgraphId
;
void
clearWriteFlag
();
void
writeXML
(
QTextStream
&
t
,
bool
isClassGraph
);
...
...
@@ -86,9 +74,9 @@ class DotNode
private
:
void
colorConnectedNodes
(
int
curColor
);
void
writeBox
(
QTextStream
&
t
,
GraphOutputFormat
f
,
void
writeBox
(
QTextStream
&
t
,
Graph
Type
gt
,
Graph
OutputFormat
f
,
bool
hasNonReachableChildren
);
void
writeArrow
(
QTextStream
&
t
,
GraphOutputFormat
f
,
DotNode
*
cn
,
void
writeArrow
(
QTextStream
&
t
,
Graph
Type
gt
,
Graph
OutputFormat
f
,
DotNode
*
cn
,
EdgeInfo
*
ei
,
bool
topDown
,
bool
pointBack
=
TRUE
);
const
DotNode
*
findDocNode
()
const
;
// only works for acyclic graphs!
int
m_number
;
...
...
@@ -102,6 +90,22 @@ class DotNode
bool
m_hasDoc
;
//!< used to mark a node as documented
int
m_distance
;
//!< distance to the root node
bool
m_isRoot
;
//!< indicates if this is a root node
ClassDef
*
m_classDef
;
//!< class representing this node (can be 0)
friend
class
DotGfxHierarchyTable
;
friend
class
DotClassGraph
;
friend
class
DotInclDepGraph
;
friend
class
DotNodeList
;
friend
void
writeDotGraph
(
DotNode
*
root
,
GraphType
gt
,
GraphOutputFormat
f
,
const
QCString
&
baseName
,
bool
lrRank
,
bool
renderParents
,
int
distance
,
bool
backArrow
);
};
class
DotGfxHierarchyTable
...
...
@@ -124,8 +128,8 @@ class DotGfxHierarchyTable
class
DotClassGraph
{
public
:
enum
GraphType
{
Interface
,
Implementation
,
Inheritance
};
DotClassGraph
(
ClassDef
*
cd
,
GraphType
t
,
int
maxRecusionDepth
);
//
enum GraphType { Interface, Implementation, Inheritance };
DotClassGraph
(
ClassDef
*
cd
,
DotNode
::
GraphType
t
,
int
maxRecusionDepth
);
~
DotClassGraph
();
bool
isTrivial
()
const
;
QCString
writeGraph
(
QTextStream
&
t
,
GraphOutputFormat
f
,
const
char
*
path
,
...
...
@@ -140,13 +144,13 @@ class DotClassGraph
void
addClass
(
ClassDef
*
cd
,
DotNode
*
n
,
int
prot
,
const
char
*
label
,
int
level
,
const
char
*
usedName
,
const
char
*
templSpec
,
bool
base
);
DotNode
*
m_startNode
;
QDict
<
DotNode
>
*
m_usedNodes
;
static
int
m_curNodeNumber
;
GraphType
m_graphType
;
int
m_recDepth
;
QCString
m_diskName
;
int
m_maxDistance
;
DotNode
*
m_startNode
;
QDict
<
DotNode
>
*
m_usedNodes
;
static
int
m_curNodeNumber
;
DotNode
::
GraphType
m_graphType
;
int
m_recDepth
;
QCString
m_diskName
;
int
m_maxDistance
;
};
class
DotInclDepGraph
...
...
src/doxygen.cpp
View file @
ecdf7c39
...
...
@@ -2133,9 +2133,16 @@ static void buildFunctionList(Entry *root)
//printf("root->parent=`%s' cd=%p root->type.find(re,0)=%d\n",
// root->parent->name.data(),getClass(root->parent->name),
// root->type.find(re,0));
QCString
scope
=
stripAnonymousNamespaceScope
(
root
->
parent
->
name
.
copy
()
);
QCString
scope
=
stripAnonymousNamespaceScope
(
root
->
parent
->
name
);
scope
=
stripTemplateSpecifiersFromScope
(
scope
,
FALSE
);
cd
=
getClass
(
scope
);
if
(
cd
&&
scope
+
"::"
==
rname
.
left
(
scope
.
length
()
+
2
))
// found A::f inside A
{
// strip scope from name
rname
=
rname
.
right
(
rname
.
length
()
-
root
->
parent
->
name
.
length
()
-
2
);
}
bool
isMember
=
FALSE
;
int
memIndex
=
rname
.
find
(
"::"
);
if
(
memIndex
!=-
1
)
...
...
@@ -2154,7 +2161,7 @@ static void buildFunctionList(Entry *root)
if
(
root
->
parent
&&
!
root
->
parent
->
name
.
isEmpty
()
&&
(
root
->
parent
->
section
&
Entry
::
COMPOUND_MASK
)
&&
(
cd
=
getClass
(
scope
))
&&
cd
&&
// do some fuzzy things to exclude function pointers
(
root
->
type
.
isEmpty
()
||
root
->
type
.
find
(
re
,
0
)
==-
1
||
root
->
type
.
find
(
")("
)
!=-
1
||
root
->
type
.
find
(
"operator"
)
!=-
1
...
...
@@ -4379,7 +4386,7 @@ static void findMember(Entry *root,
{
Debug
::
print
(
Debug
::
FindMembers
,
0
,
"1. funcName=`%s'
\n
"
,
funcName
.
data
());
if
(
funcName
.
left
(
9
)
==
"operator "
)
if
(
funcName
.
left
(
9
)
==
"operator "
)
// strip class scope from cast operator
{
funcName
=
substitute
(
funcName
,
className
+
"::"
,
""
);
}
...
...
src/htmlgen.cpp
View file @
ecdf7c39
This diff is collapsed.
Click to expand it.
src/memberdef.cpp
View file @
ecdf7c39
...
...
@@ -75,7 +75,7 @@ static QCString addTemplateNames(const QCString &s,const QCString &n,const QCStr
}
static
void
writeDefArgumentList
(
OutputList
&
ol
,
ClassDef
*
cd
,
const
QCString
&
scopeName
,
MemberDef
*
md
)
const
QCString
&
/*scopeName*/
,
MemberDef
*
md
)
{
ArgumentList
*
defArgList
=
md
->
isDocsForDefinition
()
?
md
->
argumentList
()
:
md
->
declArgumentList
();
...
...
@@ -96,10 +96,6 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd,
Argument
*
a
=
defArgList
->
first
();
QCString
cName
;
//if (md->scopeDefTemplateArguments())
//{
// cName=tempArgListToString(md->scopeDefTemplateArguments());
//}
if
(
cd
)
{
cName
=
cd
->
name
();
...
...
@@ -138,13 +134,13 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd,
//printf("a->type=`%s' a->name=`%s'\n",a->type.data(),a->name.data());
QCString
n
=
a
->
type
.
left
(
vp
);
if
(
!
cName
.
isEmpty
())
n
=
addTemplateNames
(
n
,
cd
->
name
(),
cName
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
scopeName
,
md
->
name
(),
n
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
cd
,
md
->
name
(),
n
);
}
else
// non-function pointer type
{
QCString
n
=
a
->
type
;
if
(
!
cName
.
isEmpty
())
n
=
addTemplateNames
(
n
,
cd
->
name
(),
cName
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
scopeName
,
md
->
name
(),
n
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
cd
,
md
->
name
(),
n
);
}
if
(
!
md
->
isDefine
())
{
...
...
@@ -169,7 +165,7 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd,
if
(
vp
!=-
1
)
// write the part of the argument type
// that comes after the name
{
linkifyText
(
TextGeneratorOLImpl
(
ol
),
scopeName
,
linkifyText
(
TextGeneratorOLImpl
(
ol
),
cd
,
md
->
name
(),
a
->
type
.
right
(
a
->
type
.
length
()
-
vp
));
}
if
(
!
a
->
defval
.
isEmpty
())
// write the default value
...
...
@@ -177,7 +173,7 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd,
QCString
n
=
a
->
defval
;
if
(
!
cName
.
isEmpty
())
n
=
addTemplateNames
(
n
,
cd
->
name
(),
cName
);
ol
.
docify
(
" = "
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
scopeName
,
md
->
name
(),
n
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
cd
,
md
->
name
(),
n
);
}
a
=
defArgList
->
next
();
if
(
a
)
...
...
@@ -799,21 +795,21 @@ void MemberDef::writeDeclaration(OutputList &ol,
{
if
(
getAnonymousEnumType
())
// type is an anonymous enum
{
linkifyText
(
TextGeneratorOLImpl
(
ol
),
cname
,
name
(),
ltype
.
left
(
i
),
TRUE
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
d
,
name
(),
ltype
.
left
(
i
),
TRUE
);
getAnonymousEnumType
()
->
writeEnumDeclaration
(
ol
,
cd
,
nd
,
fd
,
gd
);
//ol+=*getAnonymousEnumType()->enumDecl();
linkifyText
(
TextGeneratorOLImpl
(
ol
),
cname
,
name
(),
ltype
.
right
(
ltype
.
length
()
-
i
-
l
),
TRUE
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
d
,
name
(),
ltype
.
right
(
ltype
.
length
()
-
i
-
l
),
TRUE
);
}
else
{
ltype
=
ltype
.
left
(
i
)
+
" { ... } "
+
ltype
.
right
(
ltype
.
length
()
-
i
-
l
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
cname
,
name
(),
ltype
,
TRUE
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
d
,
name
(),
ltype
,
TRUE
);
}
}
}
else
{
linkifyText
(
TextGeneratorOLImpl
(
ol
),
cname
,
name
(),
ltype
,
TRUE
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
d
,
name
(),
ltype
,
TRUE
);
}
bool
htmlOn
=
ol
.
isEnabled
(
OutputGenerator
::
Html
);
if
(
htmlOn
&&
Config_getBool
(
"HTML_ALIGN_MEMBERS"
)
&&
!
ltype
.
isEmpty
())
...
...
@@ -884,7 +880,7 @@ void MemberDef::writeDeclaration(OutputList &ol,
{
if
(
!
isDefine
())
ol
.
writeString
(
" "
);
//ol.docify(argsString());
linkifyText
(
TextGeneratorOLImpl
(
ol
),
cname
,
name
(),
argsString
());
linkifyText
(
TextGeneratorOLImpl
(
ol
),
d
,
name
(),
argsString
());
}
if
(
excpString
())
...
...
@@ -895,7 +891,7 @@ void MemberDef::writeDeclaration(OutputList &ol,
if
(
!
bitfields
.
isEmpty
())
// add bitfields
{
linkifyText
(
TextGeneratorOLImpl
(
ol
),
cname
,
name
(),
bitfields
.
simplifyWhiteSpace
());
linkifyText
(
TextGeneratorOLImpl
(
ol
),
d
,
name
(),
bitfields
.
simplifyWhiteSpace
());
}
else
if
(
hasOneLineInitializer
()
//!init.isEmpty() && initLines==0 && // one line initializer
...
...
@@ -905,12 +901,12 @@ void MemberDef::writeDeclaration(OutputList &ol,
if
(
!
isDefine
())
{
ol
.
writeString
(
" = "
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
cname
,
name
(),
init
.
simplifyWhiteSpace
());
linkifyText
(
TextGeneratorOLImpl
(
ol
),
d
,
name
(),
init
.
simplifyWhiteSpace
());
}
else
{
ol
.
writeNonBreakableSpace
(
3
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
cname
,
name
(),
init
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
d
,
name
(),
init
);
}
}
...
...
@@ -1087,10 +1083,10 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
{
htmlHelp
->
addIndexItem
(
cname
,
name
(),
cfname
,
anchor
());
}
linkifyText
(
TextGeneratorOLImpl
(
ol
),
scopeName
,
name
(),
ldef
.
left
(
i
));
linkifyText
(
TextGeneratorOLImpl
(
ol
),
container
,
name
(),
ldef
.
left
(
i
));
//ol+=*vmd->enumDecl();
vmd
->
writeEnumDeclaration
(
ol
,
getClassDef
(),
getNamespaceDef
(),
getFileDef
(),
getGroupDef
());
linkifyText
(
TextGeneratorOLImpl
(
ol
),
scopeName
,
name
(),
ldef
.
right
(
ldef
.
length
()
-
i
-
l
));
linkifyText
(
TextGeneratorOLImpl
(
ol
),
container
,
name
(),
ldef
.
right
(
ldef
.
length
()
-
i
-
l
));
found
=
TRUE
;
}
...
...
@@ -1115,7 +1111,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
// last ei characters of ldef contain pointer/reference specifiers
int
ni
=
ldef
.
find
(
"::"
,
si
);
if
(
ni
>=
ei
)
ei
=
ni
+
2
;
linkifyText
(
TextGeneratorOLImpl
(
ol
),
scopeName
,
name
(),
ldef
.
right
(
ldef
.
length
()
-
ei
));
linkifyText
(
TextGeneratorOLImpl
(
ol
),
container
,
name
(),
ldef
.
right
(
ldef
.
length
()
-
ei
));
}
}
else
// not an enum value
...
...
@@ -1177,25 +1173,25 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
}
}
ol
.
startMemberDocName
();
linkifyText
(
TextGeneratorOLImpl
(
ol
),
scopeName
,
name
(),
ldef
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
container
,
name
(),
ldef
);
writeDefArgumentList
(
ol
,
cd
,
scopeName
,
this
);
if
(
hasOneLineInitializer
())
// add initializer
{
if
(
!
isDefine
())
{
ol
.
docify
(
" = "
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
scopeName
,
name
(),
init
.
simplifyWhiteSpace
());
linkifyText
(
TextGeneratorOLImpl
(
ol
),
container
,
name
(),
init
.
simplifyWhiteSpace
());
}
else
{
ol
.
writeNonBreakableSpace
(
3
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
scopeName
,
name
(),
init
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
container
,
name
(),
init
);
}
}
if
(
excpString
())
// add exception list
{
ol
.
docify
(
" "
);
linkifyText
(
TextGeneratorOLImpl
(
ol
),
scopeName
,
name
(),
excpString
());
linkifyText
(
TextGeneratorOLImpl
(
ol
),
container
,
name
(),
excpString
());
}
}
...
...
@@ -1809,7 +1805,14 @@ void MemberDef::addListReference(Definition *d)
Definition
*
pd
=
getOuterScope
();
if
(
pd
&&
pd
!=
Doxygen
::
globalScope
)
{
memName
.
prepend
(
pd
->
name
()
+
"::"
);
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_JAVA"
))
{
memName
.
prepend
(
pd
->
name
()
+
"."
);
}
else
{
memName
.
prepend
(
pd
->
name
()
+
"::"
);
}
}
}
//printf("*** addListReference %s todo=%d test=%d bug=%d\n",name().data(),todoId(),testId(),bugId());
...
...
src/pre.l
View file @
ecdf7c39
...
...
@@ -1659,7 +1659,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
<SkipCComment>"/*" {
outputChar('/');outputChar('*');
g_commentCount++;
//
g_commentCount++;
}
<SkipCComment>[^*\n\/]+ {
outputArray(yytext,yyleng);
...
...
src/scanner.l
View file @
ecdf7c39
...
...
@@ -1731,6 +1731,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
<CopyCurly>[^"'{}\/\n]+ {
*pCopyCurlyString+=yytext;
}
<CopyCurly>"/" { *pCopyCurlyString+=yytext; }
<CopyCurly>\n {
yyLineNr++;
*pCopyCurlyString+=*yytext;
...
...
src/translator_hr.h
View file @
ecdf7c39
...
...
@@ -49,11 +49,14 @@
//
// 2003/02/26
// - Added strings for 1.2.18
//
// 2003/04/29
// - Added strings for 1.3.0
#ifndef TRANSLATOR_HR_H
#define TRANSLATOR_HR_H
class
TranslatorCroatian
:
public
Translator
Adapter_1_3
class
TranslatorCroatian
:
public
Translator
{
private
:
/*! to avoid macro redefinition from translator_cz.h */
...
...
@@ -887,12 +890,12 @@ class TranslatorCroatian : public TranslatorAdapter_1_3
/*! Used as a marker that is put before a \\bug item */
virtual
QCString
trBug
()
{
return
decode
(
"Greka"
);
return
decode
(
"Greka"
);
}
/*! Used as the header of the bug list */
virtual
QCString
trBugList
()
{
return
decode
(
"Popis greaka"
);
return
decode
(
"Popis greaka"
);
}
//////////////////////////////////////////////////////////////////////////
...
...
@@ -1089,6 +1092,45 @@ class TranslatorCroatian : public TranslatorAdapter_1_3
{
return
decode
(
"Dokumentacija dogaaja"
);
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3
//////////////////////////////////////////////////////////////////////////
/*! Used as a heading for a list of Java class types with package scope.
*/
virtual
QCString
trPackageTypes
()
{
return
"Tipovi u paketu"
;
}
/*! Used as a heading for a list of Java class functions with package
* scope.
*/
virtual
QCString
trPackageMembers
()
{
return
"Funkcije u paketu"
;
}
/*! Used as a heading for a list of static Java class functions with
* package scope.
*/
virtual
QCString
trStaticPackageMembers
()
{
return
decode
(
"Statike funkcije u paketu"
);
}
/*! Used as a heading for a list of Java class variables with package
* scope.
*/
virtual
QCString
trPackageAttribs
()
{
return
"Atributi u paketu"
;
}
/*! Used as a heading for a list of static Java class variables with
* package scope.
*/
virtual
QCString
trStaticPackageAttribs
()
{
return
decode
(
"Statiki atributi u paketu"
);
}
};
#endif
src/util.cpp
View file @
ecdf7c39
...
...
@@ -416,10 +416,6 @@ QCString resolveTypeDef(Definition *context,const QCString &qualifiedName,
{
resName
=
qualifiedName
.
right
(
qualifiedName
.
length
()
-
scopeIndex
-
2
);
}
else
{
resName
=
qualifiedName
;
}
MemberDef
*
md
=
0
;
while
(
mContext
&&
md
==
0
)
{
...
...
@@ -445,6 +441,7 @@ QCString resolveTypeDef(Definition *context,const QCString &qualifiedName,
ps
=
is
+
l
;
}
}
//printf("resScope=%s\n",resScope?resScope->name().data():"<none>");
// step 2: get the member
if
(
resScope
)
// no scope or scope found in the current context
...
...
@@ -471,9 +468,14 @@ QCString resolveTypeDef(Definition *context,const QCString &qualifiedName,
// tmd->name().data(), resScope->name().data(),
// tmd->getOuterScope()->name().data(), mContext);
if
(
tmd
->
isTypedef
()
/*&& tmd->getOuterScope()==resScope*/
)
/*! TODO: look if resScope is visible within tmd->getOuterScope() */
{
md
=
tmd
;
// look if resScope is visible within tmd->getOuterScope()
Definition
*
d
=
tmd
->
getOuterScope
();
while
(
d
&&
d
!=
resScope
)
d
=
d
->
getOuterScope
();
if
(
d
)
{
md
=
tmd
;
}
}
}
}
...
...
@@ -544,13 +546,13 @@ ClassDef *getResolvedClass(
QCString
name
=
n
;
if
(
scope
==
0
)
scope
=
Doxygen
::
globalScope
;
if
(
name
.
isEmpty
())
return
0
;
//int index = name.findRev("::");
ClassDef
*
cd
=
0
;
//printf("===================\n");
do
{
Definition
*
typedefScope
=
0
;
//printf("-----------------------------------------------------\n");
QCString
subst
=
resolveTypeDef
(
scope
,
name
,
&
typedefScope
);
//printf("trying getResolvedClass(%s,%s) => subst=%s\n",
// scope ? scope->name().data() : "<none>", name.data(),subst.data());
...
...
@@ -753,11 +755,12 @@ bool leftScopeMatch(const QCString &scope, const QCString &name)
}
void
linkifyText
(
const
TextGeneratorIntf
&
out
,
const
char
*
scName
,
const
char
*
name
,
const
char
*
text
,
bool
autoBreak
,
bool
external
)
void
linkifyText
(
const
TextGeneratorIntf
&
out
,
Definition
*
scope
,
const
char
*
/*name*/
,
const
char
*
text
,
bool
autoBreak
,
bool
external
)
{
//printf("scope=`%s' name=`%s' Text: `%s'\n",scName,name,text);
static
QRegExp
regExp
(
"[a-z_A-Z][a-z_A-Z0-9:]*"
);
QCString
txtStr
=
text
;
QCString
scopeName
;
int
strLen
=
txtStr
.
length
();
//printf("linkifyText strtxt=%s strlen=%d\n",txtStr.data(),strLen);
int
matchLen
;
...
...
@@ -803,39 +806,38 @@ void linkifyText(const TextGeneratorIntf &out,const char *scName,const char *nam
NamespaceDef
*
nd
=
0
;
GroupDef
*
gd
=
0
;
QCString
scopeName
=
scName
;
QCString
searchName
=
name
;
//printf("word=`%s' scopeName=`%s' searchName=`%s'\n",
// word.data(),scopeName.data(),searchName.data()
//QCString searchName=name;
//printf("word=`%s' scope=`%s'\n",
// word.data(),scope ? scope->name().data() : "<none>"
// );
Definition
*
curScope
=
scope
;
// check if `word' is a documented class name
if
(
//!word.isEmpty() &&
//!(isdigit(word.at(0)) || word.at(0)=='-') &&
// // do not try to link digits
// // (saves a lot of time for large arrays)
!
rightScopeMatch
(
word
,
searchName
)
&&
!
rightScopeMatch
(
scopeName
,
word
)
if
(
1
/* !rightScopeMatch(word,searchName) &&
!rightScopeMatch(scopeName,word) */
)
{
//printf("Searching...\n");
int
scopeOffset
=
scopeName
.
length
();
//
int scopeOffset=scopeName.length();
bool
found
=
FALSE
;
do
// for each scope (starting with full scope and going to empty scope)
{
QCString
fullName
=
word
;
QCString
prefix
;
replaceNamespaceAliases
(
fullName
,
fullName
.
length
());
if
(
scopeOffset
>
0
)
//if (scopeOffset>0)
if
(
curScope
)
{
prefix
=
scopeName
.
left
(
scopeOffset
);
replaceNamespaceAliases
(
prefix
,
scopeOffset
);
//prefix = scopeName.left(scopeOffset);
prefix
=
curScope
->
name
(
);
replaceNamespaceAliases
(
prefix
,
prefix
.
length
()
);
fullName
.
prepend
(
prefix
+
"::"
);
}
//printf("Trying class %s\n",fullName.data());
bool
isTypeDef
=
FALSE
;
if
((
cd
=
getResolvedClass
(
Doxygen
::
globalS
cope
,
fullName
,
&
isTypeDef
)))
if
((
cd
=
getResolvedClass
(
s
cope
,
fullName
,
&
isTypeDef
)))
{
// add link to the result
if
(
external
?
cd
->
isLinkable
()
:
cd
->
isLinkableInProject
())
...
...
@@ -850,20 +852,30 @@ void linkifyText(const TextGeneratorIntf &out,const char *scName,const char *nam
goto
endloop
;
}
if
(
scopeOffset
==
0
)
{
scopeOffset
=-
1
;
}
else
if
((
scopeOffset
=
scopeName
.
findRev
(
"::"
,
scopeOffset
-
1
))
==-
1
)
{
scopeOffset
=
0
;
}
}
while
(
!
found
&&
scopeOffset
>=
0
);
//if (scopeOffset==0)
//{
// scopeOffset=-1;
//}
//else if ((scopeOffset=scopeName.findRev("::",scopeOffset-1))==-1)
//{
// scopeOffset=0;
//}
if
(
curScope
)
curScope
=
curScope
->
getOuterScope
();
}
//while (!found && scopeOffset>=0);
while
(
!
found
&&
curScope
);
endloop:
if
(
scope
&&
(
scope
->
definitionType
()
==
Definition
::
TypeClass
||
scope
->
definitionType
()
==
Definition
::
TypeNamespace
)
)
{
scopeName
=
scope
->
name
();
}
//if (!found) printf("Trying to link %s in %s\n",word.data(),scName);
if
(
!
found
&&
getDefs
(
scName
,
word
,
0
,
md
,
cd
,
fd
,
nd
,
gd
)
&&
getDefs
(
sc
ope
Name
,
word
,
0
,
md
,
cd
,
fd
,
nd
,
gd
)
&&
(
md
->
isTypedef
()
||
md
->
isEnumerate
()
||
md
->
isReference
()
||
md
->
isVariable
()
)
&&
...
...
@@ -2265,7 +2277,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
{
fd
=
md
->
getFileDef
();
gd
=
md
->
getGroupDef
();
//printf("md->name()=`%s' md->args=`%s' fd=%p gd=%p\n",
//printf("
md->name()=`%s' md->args=`%s' fd=%p gd=%p\n",
// md->name().data(),args,fd,gd);
if
(
(
gd
&&
gd
->
isLinkable
())
||
(
fd
&&
fd
->
isLinkable
())
...
...
@@ -3416,14 +3428,14 @@ QCString substituteTemplateArgumentsInString(
if
(
formArg
->
name
==
n
&&
actArg
&&
!
actArg
->
type
.
isEmpty
())
// base class is a template argument
{
// replace formal argument with the actual argument of the instance
result
+=
actArg
->
type
;
result
+=
actArg
->
type
+
" "
;
found
=
TRUE
;
}
else
if
(
formArg
->
name
==
n
&&
actArg
==
0
&&
!
formArg
->
defval
.
isEmpty
()
&&
formArg
->
defval
!=
name
/* to prevent recursion */
)
{
result
+=
substituteTemplateArgumentsInString
(
formArg
->
defval
,
formalArgs
,
actualArgs
);
result
+=
substituteTemplateArgumentsInString
(
formArg
->
defval
,
formalArgs
,
actualArgs
)
+
" "
;
found
=
TRUE
;
}
}
...
...
src/util.h
View file @
ecdf7c39
...
...
@@ -76,7 +76,7 @@ class TextGeneratorOLImpl : public TextGeneratorIntf
//--------------------------------------------------------------------
void
linkifyText
(
const
TextGeneratorIntf
&
ol
,
const
char
*
clNam
e
,
const
char
*
name
,
void
linkifyText
(
const
TextGeneratorIntf
&
ol
,
Definition
*
scop
e
,
const
char
*
name
,
const
char
*
text
,
bool
autoBreak
=
FALSE
,
bool
external
=
TRUE
);
void
setAnchors
(
ClassDef
*
cd
,
char
id
,
MemberList
*
ml
,
int
groupId
=-
1
);
QCString
fileToString
(
const
char
*
name
,
bool
filter
=
FALSE
);
...
...
src/xmlgen.cpp
View file @
ecdf7c39
...
...
@@ -320,7 +320,7 @@ class XMLCodeGenerator : public BaseCodeDocInterface
};
static
void
writeTemplateArgumentList
(
ArgumentList
*
al
,
QTextStream
&
t
,
const
char
*
nam
e
,
int
indent
)
static
void
writeTemplateArgumentList
(
ArgumentList
*
al
,
QTextStream
&
t
,
Definition
*
scop
e
,
int
indent
)
{
QCString
indentStr
;
indentStr
.
fill
(
' '
,
indent
);
...
...
@@ -335,7 +335,7 @@ static void writeTemplateArgumentList(ArgumentList *al,QTextStream &t,const char
if
(
!
a
->
type
.
isEmpty
())
{
t
<<
indentStr
<<
" <type>"
;
linkifyText
(
TextGeneratorXMLImpl
(
t
),
nam
e
,
0
,
a
->
type
);
linkifyText
(
TextGeneratorXMLImpl
(
t
),
scop
e
,
0
,
a
->
type
);
t
<<
"</type>"
<<
endl
;
}
if
(
!
a
->
name
.
isEmpty
())
...
...
@@ -346,7 +346,7 @@ static void writeTemplateArgumentList(ArgumentList *al,QTextStream &t,const char
if
(
!
a
->
defval
.
isEmpty
())
{
t
<<
indentStr
<<
" <defval>"
;
linkifyText
(
TextGeneratorXMLImpl
(
t
),
nam
e
,
0
,
a
->
defval
);
linkifyText
(
TextGeneratorXMLImpl
(
t
),
scop
e
,
0
,
a
->
defval
);
t
<<
"</defval>"
<<
endl
;
}
t
<<
indentStr
<<
" </param>"
<<
endl
;
...
...
@@ -357,17 +357,15 @@ static void writeTemplateArgumentList(ArgumentList *al,QTextStream &t,const char
static
void
writeMemberTemplateLists
(
MemberDef
*
md
,
QTextStream
&
t
)
{
ClassDef
*
cd
=
md
->
getClassDef
();
const
char
*
cname
=
cd
?
cd
->
name
().
data
()
:
0
;
if
(
md
->
templateArguments
())
// function template prefix
{
writeTemplateArgumentList
(
md
->
templateArguments
(),
t
,
cname
,
8
);
writeTemplateArgumentList
(
md
->
templateArguments
(),
t
,
md
->
getClassDef
()
,
8
);
}
}
static
void
writeTemplateList
(
ClassDef
*
cd
,
QTextStream
&
t
)
{
writeTemplateArgumentList
(
cd
->
templateArguments
(),
t
,
cd
->
name
()
,
4
);
writeTemplateArgumentList
(
cd
->
templateArguments
(),
t
,
cd
,
4
);
}
static
void
writeXMLDocBlock
(
QTextStream
&
t
,
...
...
@@ -556,7 +554,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
}
QCString
typeStr
=
md
->
typeString
();
//replaceAnonymousScopes(md->typeString());
t
<<
" <type>"
;
linkifyText
(
TextGeneratorXMLImpl
(
t
),
scopeName
,
md
->
name
(),
typeStr
);
linkifyText
(
TextGeneratorXMLImpl
(
t
),
def
,
md
->
name
(),
typeStr
);
t
<<
"</type>"
<<
endl
;
t
<<
" <definition>"
<<
convertToXML
(
md
->
definition
())
<<
"</definition>"
<<
endl
;
t
<<
" <argsstring>"
<<
convertToXML
(
md
->
argsString
())
<<
"</argsstring>"
<<
endl
;
...
...
@@ -604,7 +602,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
if
(
!
a
->
type
.
isEmpty
())
{
t
<<
" <type>"
;
linkifyText
(
TextGeneratorXMLImpl
(
t
),
scopeName
,
md
->
name
(),
a
->
type
);
linkifyText
(
TextGeneratorXMLImpl
(
t
),
def
,
md
->
name
(),
a
->
type
);
t
<<
"</type>"
<<
endl
;
}
if
(
!
a
->
name
.
isEmpty
())
...
...
@@ -628,7 +626,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
if
(
!
a
->
defval
.
isEmpty
())
{
t
<<
" <defval>"
;
linkifyText
(
TextGeneratorXMLImpl
(
t
),
scopeName
,
md
->
name
(),
a
->
defval
);
linkifyText
(
TextGeneratorXMLImpl
(
t
),
def
,
md
->
name
(),
a
->
defval
);
t
<<
"</defval>"
<<
endl
;
}
if
(
defArg
&&
defArg
->
hasDocumentation
())
...
...
@@ -656,14 +654,14 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
if
(
!
md
->
initializer
().
isEmpty
())
{
t
<<
" <initializer>"
;
linkifyText
(
TextGeneratorXMLImpl
(
t
),
scopeName
,
md
->
name
(),
md
->
initializer
());
linkifyText
(
TextGeneratorXMLImpl
(
t
),
def
,
md
->
name
(),
md
->
initializer
());
t
<<
"</initializer>"
<<
endl
;
}
if
(
md
->
excpString
())
{
t
<<
" <exceptions>"
;
linkifyText
(
TextGeneratorXMLImpl
(
t
),
scopeName
,
md
->
name
(),
md
->
excpString
());
linkifyText
(
TextGeneratorXMLImpl
(
t
),
def
,
md
->
name
(),
md
->
excpString
());
t
<<
"</exceptions>"
<<
endl
;
}
...
...
@@ -983,7 +981,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti)
t
<<
" <detaileddescription>"
<<
endl
;
writeXMLDocBlock
(
t
,
cd
->
docFile
(),
cd
->
docLine
(),
cd
->
name
(),
0
,
cd
->
documentation
());
t
<<
" </detaileddescription>"
<<
endl
;
DotClassGraph
inheritanceGraph
(
cd
,
Dot
ClassGraph
::
Inheritance
,
DotClassGraph
inheritanceGraph
(
cd
,
Dot
Node
::
Inheritance
,
Config_getInt
(
"MAX_DOT_GRAPH_DEPTH"
));
if
(
!
inheritanceGraph
.
isTrivial
())
{
...
...
@@ -991,7 +989,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti)
inheritanceGraph
.
writeXML
(
t
);
t
<<
" </inheritancegraph>"
<<
endl
;
}
DotClassGraph
collaborationGraph
(
cd
,
Dot
ClassGraph
::
Implement
ation
,
DotClassGraph
collaborationGraph
(
cd
,
Dot
Node
::
Collabor
ation
,
Config_getInt
(
"MAX_DOT_GRAPH_DEPTH"
));
if
(
!
collaborationGraph
.
isTrivial
())
{
...
...
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