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
de611600
Commit
de611600
authored
Mar 12, 2000
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release 1.1.1
parent
000241f7
Changes
35
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
1610 additions
and
400 deletions
+1610
-400
INSTALL
INSTALL
+4
-4
Makefile.in
Makefile.in
+1
-1
README
README
+2
-2
VERSION
VERSION
+1
-1
config.doc
doc/config.doc
+11
-0
classdef.cpp
src/classdef.cpp
+105
-39
classdef.h
src/classdef.h
+11
-2
classlist.cpp
src/classlist.cpp
+1
-1
code.l
src/code.l
+3
-2
config.h
src/config.h
+1
-0
config.l
src/config.l
+318
-94
define.h
src/define.h
+2
-2
dot.cpp
src/dot.cpp
+1
-1
doxygen.cpp
src/doxygen.cpp
+100
-35
doxygen.h
src/doxygen.h
+1
-0
entry.cpp
src/entry.cpp
+1
-0
filedef.cpp
src/filedef.cpp
+17
-18
formula.cpp
src/formula.cpp
+7
-4
groupdef.cpp
src/groupdef.cpp
+140
-19
groupdef.h
src/groupdef.h
+18
-2
index.cpp
src/index.cpp
+35
-32
index.h
src/index.h
+1
-1
latexgen.cpp
src/latexgen.cpp
+1
-7
memberdef.cpp
src/memberdef.cpp
+30
-18
memberdef.h
src/memberdef.h
+17
-10
membergroup.cpp
src/membergroup.cpp
+1
-1
memberlist.cpp
src/memberlist.cpp
+36
-28
memberlist.h
src/memberlist.h
+6
-3
namespacedef.cpp
src/namespacedef.cpp
+1
-1
namespacedef.h
src/namespacedef.h
+1
-1
scanner.l
src/scanner.l
+71
-20
translator.h
src/translator.h
+47
-6
translator_jp.h
src/translator_jp.h
+572
-30
util.cpp
src/util.cpp
+40
-13
util.h
src/util.h
+6
-2
No files found.
INSTALL
View file @
de611600
DOXYGEN Version 1.1.
0-20000305
DOXYGEN Version 1.1.
1
CONTENTS
--------
...
...
@@ -15,8 +15,8 @@ INSTALLATION INSTRUCTIONS FOR UNIX:
1. Unpack the archive, unless you already have:
gunzip doxygen-1.1.
0-20000305
.src.tar.gz # uncompress the archive
tar xf doxygen-1.1.
0-20000305
.src.tar # unpack it
gunzip doxygen-1.1.
1
.src.tar.gz # uncompress the archive
tar xf doxygen-1.1.
1
.src.tar # unpack it
2. Run the configure script:
...
...
@@ -252,4 +252,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Dimitri van Heesch (
05
March 2000)
Dimitri van Heesch (
12
March 2000)
Makefile.in
View file @
de611600
...
...
@@ -51,7 +51,7 @@ ps: docs
pdf
:
docs
cd
latex
;
$(MAKE)
archive
:
dist
clean
archive
:
clean
tar
zcvf dx
`
date
+%y%m%d
`
.tgz tmake doc wintools examples bin objects
\
src configure configure.bin Makefile.in Makefile.win.in INSTALL
\
make.bat LANGUAGE.HOWTO LICENSE PLATFORMS VERSION
...
...
README
View file @
de611600
DOXYGEN Version 1.1.
0-20000305
DOXYGEN Version 1.1.
1
Please read INSTALL for compilation instructions.
...
...
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Dimitri van Heesch (
05
March 2000)
Dimitri van Heesch (
12
March 2000)
VERSION
View file @
de611600
1.1.
0-20000305
1.1.
1
doc/config.doc
View file @
de611600
...
...
@@ -104,6 +104,7 @@ followed by the descriptions of the tags grouped by category.
<
li
>
\
refitem
cfg_input_filter
INPUT_FILTER
<
li
>
\
refitem
cfg_internal_docs
INTERNAL_DOCS
<
li
>
\
refitem
cfg_javadoc_autobrief
JAVADOC_AUTOBRIEF
<
li
>
\
refitem
cfg_latex_batchmode
LATEX_BATCHMODE
<
li
>
\
refitem
cfg_latex_header
LATEX_HEADER
<
li
>
\
refitem
cfg_latex_output
LATEX_OUTPUT
<
li
>
\
refitem
cfg_macro_expansion
MACRO_EXPANSION
...
...
@@ -694,6 +695,16 @@ EXTRA_PACKAGES = times
the
version
number
of
doxygen
,
the
project
name
(
see
PROJECT_NAME
),
or
the
project
number
(
see
PROJECT_NUMBER
).
\
anchor
cfg_latex_batchmode
<
dt
>\
c
LATEX_BATCHMODE
<
dd
>
\
addindex
LATEX_BATCHMODE
If
the
\
c
LATEX_BATCHMODE
tag
is
set
to
\
c
YES
,
doxygen
will
add
the
\\
batchmode
.
command
to
the
generated
\
f
$\
mbox
{\
LaTeX
}\
f
$
files
.
This
will
instruct
\
f
$\
mbox
{\
LaTeX
}\
f
$
to
keep
running
if
errors
occur
,
instead
of
asking
the
user
for
help
.
This
option
is
also
used
when
generating
formulas
in
HTML
.
</
dl
>
\
subsection
rtf_output
RTF
related
options
...
...
src/classdef.cpp
View file @
de611600
...
...
@@ -174,26 +174,65 @@ void ClassDef::insertMember(const MemberDef *md)
default
:
// any of the other members
if
(
md
->
isStatic
())
{
switch
(
md
->
protection
())
if
(
md
->
isVariable
())
{
case
Protected
:
proStaticMembers
.
append
(
md
);
break
;
case
Public
:
pubStaticMembers
.
append
(
md
);
break
;
case
Private
:
priStaticMembers
.
append
(
md
);
break
;
switch
(
md
->
protection
())
{
case
Protected
:
proStaticAttribs
.
append
(
md
);
break
;
case
Public
:
pubStaticAttribs
.
append
(
md
);
break
;
case
Private
:
priStaticAttribs
.
append
(
md
);
break
;
}
}
else
// function
{
switch
(
md
->
protection
())
{
case
Protected
:
proStaticMembers
.
append
(
md
);
break
;
case
Public
:
pubStaticMembers
.
append
(
md
);
break
;
case
Private
:
priStaticMembers
.
append
(
md
);
break
;
}
}
}
else
else
// not static
{
switch
(
md
->
protection
())
if
(
md
->
isVariable
())
{
case
Protected
:
proMembers
.
append
(
md
);
break
;
case
Public
:
pubMembers
.
append
(
md
);
break
;
case
Private
:
priMembers
.
append
(
md
);
break
;
switch
(
md
->
protection
())
{
case
Protected
:
proAttribs
.
append
(
md
);
break
;
case
Public
:
pubAttribs
.
append
(
md
);
break
;
case
Private
:
priAttribs
.
append
(
md
);
break
;
}
}
else
if
(
md
->
isTypedef
()
||
md
->
isEnumerate
())
{
switch
(
md
->
protection
())
{
case
Protected
:
proTypes
.
append
(
md
);
break
;
case
Public
:
pubTypes
.
append
(
md
);
break
;
case
Private
:
priTypes
.
append
(
md
);
break
;
}
}
else
// member function
{
switch
(
md
->
protection
())
{
case
Protected
:
proMembers
.
append
(
md
);
break
;
case
Public
:
pubMembers
.
append
(
md
);
break
;
case
Private
:
priMembers
.
append
(
md
);
break
;
}
}
}
if
(
md
->
protection
()
!=
Private
||
Config
::
extractPrivateFlag
)
...
...
@@ -282,6 +321,15 @@ void ClassDef::computeAnchors()
setAnchors
(
'j'
,
&
signals
);
setAnchors
(
'k'
,
&
related
);
setAnchors
(
'l'
,
&
friends
);
setAnchors
(
'm'
,
&
pubAttribs
);
setAnchors
(
'n'
,
&
proAttribs
);
setAnchors
(
'o'
,
&
priAttribs
);
setAnchors
(
'p'
,
&
pubStaticAttribs
);
setAnchors
(
'q'
,
&
proStaticAttribs
);
setAnchors
(
'r'
,
&
priStaticAttribs
);
setAnchors
(
's'
,
&
pubTypes
);
setAnchors
(
't'
,
&
proTypes
);
setAnchors
(
'u'
,
&
priTypes
);
}
// add a file name to the used files set
...
...
@@ -549,21 +597,39 @@ void ClassDef::writeDocumentation(OutputList &ol)
// write member groups
ol
.
startMemberSections
();
pubMembers
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
theTranslator
->
trPublicMembers
(),
0
);
pubSlots
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
theTranslator
->
trPublicSlots
(),
0
);
signals
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
theTranslator
->
trSignals
(),
0
);
pubStaticMembers
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
theTranslator
->
trStaticPublicMembers
(),
0
);
proMembers
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
theTranslator
->
trProtectedMembers
(),
0
);
proSlots
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
theTranslator
->
trProtectedSlots
(),
0
);
proStaticMembers
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
theTranslator
->
trStaticProtectedMembers
(),
0
);
// non static public members
pubTypes
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trPublicTypes
(),
0
);
pubMembers
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trPublicMembers
(),
0
);
pubAttribs
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trPublicAttribs
(),
0
);
pubSlots
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trPublicSlots
(),
0
);
signals
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trSignals
(),
0
);
// static public members
pubStaticMembers
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trStaticPublicMembers
(),
0
);
pubStaticAttribs
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trStaticPublicAttribs
(),
0
);
// protected non-static members
proTypes
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trProtectedTypes
(),
0
);
proMembers
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trProtectedMembers
(),
0
);
proAttribs
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trProtectedAttribs
(),
0
);
proSlots
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trProtectedSlots
(),
0
);
// protected static members
proStaticMembers
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trStaticProtectedMembers
(),
0
);
proStaticAttribs
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trStaticProtectedAttribs
(),
0
);
if
(
Config
::
extractPrivateFlag
)
{
priMembers
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
theTranslator
->
trPrivateMembers
(),
0
);
priSlots
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
theTranslator
->
trPrivateSlots
(),
0
);
priStaticMembers
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
theTranslator
->
trStaticPrivateMembers
(),
0
);
// private non-static members
priTypes
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trPrivateTypes
(),
0
);
priMembers
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trPrivateMembers
(),
0
);
priAttribs
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trPrivateAttribs
(),
0
);
priSlots
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trPrivateSlots
(),
0
);
// private static members
priStaticMembers
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trStaticPrivateMembers
(),
0
);
priStaticAttribs
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trStaticPrivateAttribs
(),
0
);
}
friends
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
theTranslator
->
trFriends
(),
0
);
related
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
friends
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trFriends
(),
0
);
related
.
writeDeclarations
(
ol
,
this
,
0
,
0
,
0
,
theTranslator
->
trRelatedFunctions
(),
theTranslator
->
trRelatedSubscript
()
);
...
...
@@ -1130,21 +1196,21 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md)
ol
.
endMemberItem
(
FALSE
,
0
,
0
,
FALSE
);
// TODO: pass correct group parameters
// insert members of this class
pubMembers
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
);
pubSlots
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
);
signals
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
);
pubStaticMembers
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
);
proMembers
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
);
proSlots
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
);
proStaticMembers
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
);
pubMembers
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
pubSlots
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
signals
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
pubStaticMembers
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
proMembers
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
proSlots
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
proStaticMembers
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
if
(
Config
::
extractPrivateFlag
)
{
priMembers
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
);
priSlots
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
);
priStaticMembers
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
);
priMembers
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
priSlots
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
priStaticMembers
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
}
friends
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
);
related
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
);
friends
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
related
.
writePlainDeclarations
(
ol
,
this
,
0
,
0
,
0
);
}
/*! a link to this class is possible within this project */
...
...
src/classdef.h
View file @
de611600
...
...
@@ -125,7 +125,7 @@ class ClassDef : public Definition
BaseClassList
*
inheritedBy
;
NamespaceDef
*
nspace
;
// the namespace this class is in
/* member list by protection */
/* member list
s
by protection */
MemberList
pubMembers
;
MemberList
proMembers
;
MemberList
priMembers
;
...
...
@@ -135,6 +135,15 @@ class ClassDef : public Definition
MemberList
pubSlots
;
MemberList
proSlots
;
MemberList
priSlots
;
MemberList
pubAttribs
;
MemberList
proAttribs
;
MemberList
priAttribs
;
MemberList
pubStaticAttribs
;
MemberList
proStaticAttribs
;
MemberList
priStaticAttribs
;
MemberList
pubTypes
;
MemberList
proTypes
;
MemberList
priTypes
;
MemberList
related
;
MemberList
signals
;
MemberList
friends
;
...
...
@@ -218,7 +227,7 @@ class BaseClassList : public QList<BaseClassDef>
if
(
c1
==
0
||
c2
==
0
)
return
FALSE
;
else
return
str
case
cmp
(
c1
->
name
(),
c2
->
name
());
return
str
i
cmp
(
c1
->
name
(),
c2
->
name
());
}
};
...
...
src/classlist.cpp
View file @
de611600
...
...
@@ -34,7 +34,7 @@ int ClassList::compareItems(GCI item1, GCI item2)
//int prefixLength = Config::ignorePrefix.length();
//int i1 = c1->name().left(prefixLength)==Config::ignorePrefix ? prefixLength : 0;
//int i2 = c2->name().left(prefixLength)==Config::ignorePrefix ? prefixLength : 0;
return
str
case
cmp
(
c1
->
name
().
data
()
+
getPrefixIndex
(
c1
->
name
()),
return
str
i
cmp
(
c1
->
name
().
data
()
+
getPrefixIndex
(
c1
->
name
()),
c2
->
name
().
data
()
+
getPrefixIndex
(
c2
->
name
())
);
}
...
...
src/code.l
View file @
de611600
...
...
@@ -301,10 +301,11 @@ static bool getLink(const char *className,
ClassDef *cd;
FileDef *fd;
NamespaceDef *nd;
GroupDef *gd;
QCString m=memberName;
QCString c=className;
//printf("Trying `%s'::`%s'\n",c.data(),m.data());
if (getDefs(c,m,"()",md,cd,fd,nd) && md->isLinkable())
if (getDefs(c,m,"()",md,cd,fd,nd
,gd
) && md->isLinkable())
{
//printf("Found!\n");
if (g_exampleBlock)
...
...
@@ -326,7 +327,7 @@ static bool getLink(const char *className,
}
}
Definition *d=0;
if (cd) d=cd; else if (cd) d=nd; else
d=f
d;
if (cd) d=cd; else if (cd) d=nd; else
if (fd) d=fd; else d=g
d;
if (d)
{
...
...
src/config.h
View file @
de611600
...
...
@@ -115,6 +115,7 @@ struct Config
static
bool
showIncFileFlag
;
// show include file in file documentation?
static
bool
stripCommentsFlag
;
// strip special comments from code fragments?
static
bool
sortMembersFlag
;
// sort members alphabetically?
static
bool
latexBatchModeFlag
;
// continue after latex errors?
};
#endif
src/config.l
View file @
de611600
This diff is collapsed.
Click to expand it.
src/define.h
View file @
de611600
...
...
@@ -53,7 +53,7 @@ class DefineList : public QList<Define>
~
DefineList
()
{}
int
compareItems
(
GCI
i1
,
GCI
i2
)
{
return
str
case
cmp
(((
Define
*
)
i1
)
->
name
,((
Define
*
)
i2
)
->
name
);
return
str
i
cmp
(((
Define
*
)
i1
)
->
name
,((
Define
*
)
i2
)
->
name
);
}
};
...
...
@@ -65,7 +65,7 @@ class DefineName : public QList<Define>
const
char
*
nameString
()
const
{
return
name
;
}
int
compareItems
(
GCI
i1
,
GCI
i2
)
{
return
str
case
cmp
(((
Define
*
)
i1
)
->
name
,((
Define
*
)
i2
)
->
name
);
return
str
i
cmp
(((
Define
*
)
i1
)
->
name
,((
Define
*
)
i2
)
->
name
);
}
private
:
...
...
src/dot.cpp
View file @
de611600
...
...
@@ -159,7 +159,7 @@ class DotNodeList : public QList<DotNode>
~
DotNodeList
()
{}
int
compareItems
(
GCI
item1
,
GCI
item2
)
{
return
str
case
cmp
(((
DotNode
*
)
item1
)
->
m_label
,((
DotNode
*
)
item2
)
->
m_label
);
return
str
i
cmp
(((
DotNode
*
)
item1
)
->
m_label
,((
DotNode
*
)
item2
)
->
m_label
);
}
};
...
...
src/doxygen.cpp
View file @
de611600
...
...
@@ -141,6 +141,7 @@ int annotatedClasses;
int
hierarchyClasses
;
int
documentedFunctions
;
int
documentedMembers
;
int
documentedHtmlFiles
;
int
documentedFiles
;
int
documentedGroups
;
int
documentedNamespaces
;
...
...
@@ -432,6 +433,48 @@ static bool addNamespace(Entry *root,ClassDef *cd)
return
FALSE
;
}
static
void
addClassToGroups
(
Entry
*
root
,
ClassDef
*
cd
)
{
QListIterator
<
QCString
>
sli
(
*
root
->
groups
);
QCString
*
s
;
for
(;(
s
=
sli
.
current
());
++
sli
)
{
GroupDef
*
gd
=
0
;
if
(
!
s
->
isEmpty
()
&&
(
gd
=
groupDict
[
*
s
]))
{
gd
->
addClass
(
cd
);
//printf("Compound %s: in group %s\n",cd->name().data(),s->data());
}
}
}
static
void
addMemberToGroups
(
Entry
*
root
,
MemberDef
*
md
)
{
QListIterator
<
QCString
>
sli
(
*
root
->
groups
);
QCString
*
s
;
for
(;(
s
=
sli
.
current
());
++
sli
)
{
GroupDef
*
gd
=
0
;
if
(
!
s
->
isEmpty
()
&&
(
gd
=
groupDict
[
*
s
]))
{
GroupDef
*
mgd
=
md
->
groupDef
();
if
(
mgd
==
0
)
{
gd
->
addMember
(
md
);
md
->
setGroupDef
(
gd
);
}
else
if
(
mgd
!=
gd
)
{
warn
(
"Warning: Member %s found in multiple groups.!
\n
"
"The member will be put in group %s, and not in group %s"
,
md
->
name
().
data
(),
mgd
->
name
().
data
(),
gd
->
name
().
data
()
);
}
//printf("Member %s: in group %s\n",md->name().data(),s->data());
}
}
}
//----------------------------------------------------------------------
// build a list of all classes mentioned in the documentation
...
...
@@ -518,6 +561,7 @@ void buildClassList(Entry *root)
// );
fd
->
insertClass
(
cd
);
}
addClassToGroups
(
root
,
cd
);
}
else
// new class
{
...
...
@@ -555,17 +599,7 @@ void buildClassList(Entry *root)
cd
->
setBodySegment
(
root
->
bodyLine
,
root
->
endBodyLine
);
cd
->
setBodyDef
(
fd
);
QListIterator
<
QCString
>
sli
(
*
root
->
groups
);
QCString
*
s
;
for
(;(
s
=
sli
.
current
());
++
sli
)
{
GroupDef
*
gd
=
0
;
if
(
!
s
->
isEmpty
()
&&
(
gd
=
groupDict
[
*
s
]))
{
gd
->
addClass
(
cd
);
//printf("Compound %s: in group %s\n",cd->name().data(),s->data());
}
}
addClassToGroups
(
root
,
cd
);
// see if the class is found inside a namespace
bool
found
=
addNamespace
(
root
,
cd
);
...
...
@@ -1340,6 +1374,8 @@ void buildMemberList(Entry *root)
cd
->
insertMember
(
md
);
// add file to list of used files
cd
->
insertUsedFile
(
root
->
fileName
);
addMemberToGroups
(
root
,
md
);
}
else
if
(
root
->
parent
&&
!
(
root
->
parent
->
section
&
Entry
::
COMPOUND_MASK
)
&&
...
...
@@ -1493,6 +1529,7 @@ void buildMemberList(Entry *root)
functionNameDict
.
insert
(
name
,
mn
);
functionNameList
.
inSort
(
mn
);
}
addMemberToGroups
(
root
,
md
);
}
else
{
...
...
@@ -1874,7 +1911,7 @@ void computeClassRelations(Entry *root)
}
//-----------------------------------------------------------------------
// compute the references (anchors in HTML) for each
member in the class
// compute the references (anchors in HTML) for each
function in the file
void
computeMemberReferences
()
{
...
...
@@ -1884,13 +1921,6 @@ void computeMemberReferences()
cd
->
computeAnchors
();
cd
=
classList
.
next
();
}
}
//-----------------------------------------------------------------------
// compute the references (anchors in HTML) for each function in the file
void
computeFunctionReferences
()
{
FileName
*
fn
=
inputNameList
.
first
();
while
(
fn
)
{
...
...
@@ -1908,6 +1938,12 @@ void computeFunctionReferences()
nd
->
computeAnchors
();
nd
=
namespaceList
.
next
();
}
GroupDef
*
gd
=
groupList
.
first
();
while
(
gd
)
{
gd
->
computeAnchors
();
gd
=
groupList
.
next
();
}
}
...
...
@@ -1994,6 +2030,7 @@ void addMemberDocs(Entry *root,MemberDef *md, const char *funcDecl,
md
->
setDefLine
(
root
->
startLine
);
if
(
root
->
inLine
&&
!
md
->
isInline
())
md
->
setInline
(
TRUE
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
addMemberToGroups
(
root
,
md
);
if
(
cd
)
cd
->
insertUsedFile
(
root
->
fileName
);
if
(
root
->
mGrpId
!=-
1
)
{
...
...
@@ -3373,7 +3410,7 @@ void computeMemberRelations()
// mcd->name().data(),md->name().data(),
// bmcd->name().data(),bmd->name().data()
// );
if
(
md
!=
bmd
&&
bmcd
&&
mcd
&&
mcd
->
isBaseClass
(
bmcd
))
if
(
md
!=
bmd
&&
bmcd
&&
mcd
&&
bmcd
!=
mcd
&&
mcd
->
isBaseClass
(
bmcd
))
{
//printf(" Base argList=`%s'\n Super argList=`%s'\n",
// argListToString(bmd->argumentList()).data(),
...
...
@@ -3386,7 +3423,14 @@ void computeMemberRelations()
mcd
->
isLinkable
()
&&
bmcd
->
isLinkable
()
)
{
md
->
setReimplements
(
bmd
);
MemberDef
*
rmd
;
if
((
rmd
=
md
->
reimplements
())
==
0
||
minClassDistance
(
mcd
,
bmcd
)
<
minClassDistance
(
mcd
,
rmd
->
memberClass
())
)
{
//printf("setting (new) reimplements member\n");
md
->
setReimplements
(
bmd
);
}
bmd
->
insertReimplementedBy
(
md
);
}
}
...
...
@@ -3450,7 +3494,7 @@ void buildCompleteMemberLists()
void
generateFileDocs
()
{
if
(
documentedFiles
==
0
)
return
;
if
(
documented
Html
Files
==
0
)
return
;
writeFileIndex
(
*
outputList
);
if
(
inputNameList
.
count
()
>
0
)
...
...
@@ -4628,15 +4672,17 @@ void readFormulaRepository()
void
usage
(
const
char
*
name
)
{
msg
(
"Doxygen version %s
\n
Copyright Dimitri van Heesch 1997-2000
\n\n
"
,
versionString
);
msg
(
"You can use doxygen in t
wo
ways:
\n\n
"
);
msg
(
"You can use doxygen in t
hree
ways:
\n\n
"
);
msg
(
"1) Use doxygen to generate a template configuration file:
\n
"
);
msg
(
" %s [-s] -g [configName]
\n\n
"
,
name
);
msg
(
" If -s is specified the comments in the config file will be omitted.
\n
"
);
msg
(
" If - is used for configName doxygen will write to standard output.
\n\n
"
);
msg
(
"2) Use doxygen to generate documentation using an existing "
);
msg
(
"2) Use doxygen to update an old configuration file:
\n
"
);
msg
(
" %s [-s] -u [configName]
\n\n
"
,
name
);
msg
(
"3) Use doxygen to generate documentation using an existing "
);
msg
(
"configuration file:
\n
"
);
msg
(
" %s [configName]
\n\n
"
,
name
);
msg
(
" If - is used for configName doxygen will read from standard input.
\n\n
"
);
msg
(
"If -s is specified the comments in the config file will be omitted.
\n
"
);
msg
(
"If configName is omitted `Doxyfile' will be used as a default.
\n\n
"
);
exit
(
1
);
}
...
...
@@ -4672,6 +4718,7 @@ int main(int argc,char **argv)
const
char
*
debugLabel
;
bool
genConfig
=
FALSE
;
bool
shortList
=
FALSE
;
bool
updateConfig
=
FALSE
;
while
(
optind
<
argc
&&
argv
[
optind
][
0
]
==
'-'
&&
(
isalpha
(
argv
[
optind
][
1
])
||
argv
[
optind
][
1
]
==
'?'
)
)
...
...
@@ -4690,6 +4737,9 @@ int main(int argc,char **argv)
case
's'
:
shortList
=
TRUE
;
break
;
case
'u'
:
updateConfig
=
TRUE
;
break
;
case
'h'
:
case
'?'
:
usage
(
argv
[
0
]);
...
...
@@ -4711,21 +4761,19 @@ int main(int argc,char **argv)
exit
(
1
);
}
compoundKeywordDict
.
insert
(
"class"
,(
void
*
)
8
);
compoundKeywordDict
.
insert
(
"struct"
,(
void
*
)
8
);
compoundKeywordDict
.
insert
(
"union"
,(
void
*
)
8
);
compoundKeywordDict
.
insert
(
"interface"
,(
void
*
)
8
);
compoundKeywordDict
.
insert
(
"exception"
,(
void
*
)
8
);
QFileInfo
configFileInfo1
(
"Doxyfile"
),
configFileInfo2
(
"doxyfile"
);
QCString
config
;
if
(
optind
>=
argc
)
{
if
(
configFileInfo1
.
exists
())
{
config
=
fileToString
(
"Doxyfile"
);
configName
=
"Doxyfile"
;
}
else
if
(
configFileInfo2
.
exists
())
{
config
=
fileToString
(
"doxyfile"
);
configName
=
"doxyfile"
;
}
else
{
...
...
@@ -4734,11 +4782,31 @@ int main(int argc,char **argv)
}
}
else
{
config
=
fileToString
(
argv
[
optind
]);
configName
=
argv
[
optind
];
}
parseConfig
(
config
);
if
(
updateConfig
)
{
generateConfigFile
(
configName
,
shortList
);
exit
(
1
);
}
checkConfig
();
/**************************************************************************
* Initialize some global constants
**************************************************************************/
spaces
.
fill
(
' '
,
Config
::
tabSize
);
compoundKeywordDict
.
insert
(
"class"
,(
void
*
)
8
);
compoundKeywordDict
.
insert
(
"struct"
,(
void
*
)
8
);
compoundKeywordDict
.
insert
(
"union"
,(
void
*
)
8
);
compoundKeywordDict
.
insert
(
"interface"
,(
void
*
)
8
);
compoundKeywordDict
.
insert
(
"exception"
,(
void
*
)
8
);
/**************************************************************************
* Initialize output generators *
...
...
@@ -4943,9 +5011,6 @@ int main(int argc,char **argv)
msg
(
"Computing member references...
\n
"
);
computeMemberReferences
();
msg
(
"Computing function references...
\n
"
);
computeFunctionReferences
();
msg
(
"Computing member relations...
\n
"
);
computeMemberRelations
();
...
...
@@ -4990,7 +5055,7 @@ int main(int argc,char **argv)
hierarchyClasses
=
countClassHierarchy
();
documentedMembers
=
countClassMembers
();
documentedFunctions
=
countFileMembers
();
documentedFiles
=
countFiles
(
);
countFiles
(
documentedHtmlFiles
,
documentedFiles
);
documentedGroups
=
countGroups
();
documentedNamespaces
=
countNamespaces
();
documentedNamespaceMembers
=
countNamespaceMembers
();
...
...
src/doxygen.h
View file @
de611600
...
...
@@ -124,6 +124,7 @@ extern int documentedFunctions;
extern
int
documentedMembers
;
extern
int
documentedDefines
;
extern
int
documentedFiles
;
extern
int
documentedHtmlFiles
;
extern
int
documentedGroups
;
extern
int
documentedNamespaces
;
extern
int
documentedNamespaceMembers
;
...
...
src/entry.cpp
View file @
de611600
...
...
@@ -23,6 +23,7 @@ Entry::Entry()
num
++
;
//printf("New Entry %d\n",num);
parent
=
0
;
section
=
EMPTY_SEC
;
sublist
=
new
QList
<
Entry
>
;
sublist
->
setAutoDelete
(
TRUE
);
extends
=
new
QList
<
BaseInfo
>
;
...
...
src/filedef.cpp
View file @
de611600
...
...
@@ -294,7 +294,7 @@ void FileDef::writeDocumentation(OutputList &ol)
if
(
found
)
ol
.
endMemberList
();
}
allMemberList
.
writeDeclarations
(
ol
,
0
,
0
,
this
,
0
,
0
);
allMemberList
.
writeDeclarations
(
ol
,
0
,
0
,
this
,
0
,
0
,
0
);
ol
.
endMemberSections
();
//doc=doc.stripWhiteSpace();
...
...
@@ -346,75 +346,74 @@ void FileDef::writeDocumentation(OutputList &ol)
}
}
//memList->countDocMembers();
defineMembers
.
countDocMembers
();
if
(
/*memList->defineCount()>0*/
defineMembers
.
totalCount
()
>
0
)
if
(
defineMembers
.
totalCount
()
>
0
)
{
ol
.
writeRuler
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trDefineDocumentation
());
ol
.
endGroupHeader
();
/*memList->*/
defineMembers
.
writeDocumentation
(
ol
,
name
()
/*,MemberDef::Define*/
);
defineMembers
.
writeDocumentation
(
ol
,
name
()
);
}
protoMembers
.
countDocMembers
();
if
(
/*memList->protoCount()>0*/
protoMembers
.
totalCount
()
>
0
)
if
(
protoMembers
.
totalCount
()
>
0
)
{
ol
.
writeRuler
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trFunctionPrototypeDocumentation
());
ol
.
endGroupHeader
();
/*memList->*/
protoMembers
.
writeDocumentation
(
ol
,
name
()
/*,MemberDef::Prototype*/
);
protoMembers
.
writeDocumentation
(
ol
,
name
()
);
}
typedefMembers
.
countDocMembers
();
if
(
/*memList->typedefCount()>0*/
typedefMembers
.
totalCount
()
>
0
)
if
(
typedefMembers
.
totalCount
()
>
0
)
{
ol
.
writeRuler
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trTypedefDocumentation
());
ol
.
endGroupHeader
();
/*memList->*/
typedefMembers
.
writeDocumentation
(
ol
,
name
()
/*,MemberDef::Typedef*/
);
typedefMembers
.
writeDocumentation
(
ol
,
name
()
);
}
enumMembers
.
countDocMembers
();
if
(
/*memList->enumCount()>0*/
enumMembers
.
totalCount
()
>
0
)
if
(
enumMembers
.
totalCount
()
>
0
)
{
ol
.
writeRuler
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trEnumerationTypeDocumentation
());
ol
.
endGroupHeader
();
/*memList->*/
enumMembers
.
writeDocumentation
(
ol
,
name
()
/*,MemberDef::Enumeration*/
);
enumMembers
.
writeDocumentation
(
ol
,
name
()
);
}
enumValMembers
.
countDocMembers
();
if
(
/*memList->enumValueCount()>0*/
enumValMembers
.
totalCount
()
>
0
)
if
(
enumValMembers
.
totalCount
()
>
0
)
{
ol
.
writeRuler
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trEnumerationValueDocumentation
());
ol
.
endGroupHeader
();
/*memList->*/
enumValMembers
.
writeDocumentation
(
ol
,
name
()
/*,MemberDef::EnumValue*/
);
enumValMembers
.
writeDocumentation
(
ol
,
name
()
);
}
funcMembers
.
countDocMembers
();
if
(
/*memList->funcCount()>0*/
funcMembers
.
totalCount
()
>
0
)
if
(
funcMembers
.
totalCount
()
>
0
)
{
ol
.
writeRuler
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trFunctionDocumentation
());
ol
.
endGroupHeader
();
/*memList->*/
funcMembers
.
writeDocumentation
(
ol
,
name
()
/*,MemberDef::Function*/
);
funcMembers
.
writeDocumentation
(
ol
,
name
()
);
}
varMembers
.
countDocMembers
();
if
(
/*memList->varCount()>0*/
varMembers
.
totalCount
()
>
0
)
if
(
varMembers
.
totalCount
()
>
0
)
{
ol
.
writeRuler
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trVariableDocumentation
());
ol
.
endGroupHeader
();
/*memList->*/
varMembers
.
writeDocumentation
(
ol
,
name
()
/*,MemberDef::Variable*/
);
varMembers
.
writeDocumentation
(
ol
,
name
()
);
}
// write Author section (Man only)
...
...
@@ -573,8 +572,8 @@ int FileList::compareItems(GCI item1, GCI item2)
FileDef
*
f2
=
(
FileDef
*
)
item2
;
ASSERT
(
f1
!=
0
&&
f2
!=
0
);
return
Config
::
fullPathNameFlag
?
str
case
cmp
(
f1
->
absFilePath
(),
f2
->
absFilePath
())
:
str
case
cmp
(
f1
->
name
(),
f2
->
name
());
str
i
cmp
(
f1
->
absFilePath
(),
f2
->
absFilePath
())
:
str
i
cmp
(
f1
->
name
(),
f2
->
name
());
}
/*! Create a file list iterator. */
...
...
src/formula.cpp
View file @
de611600
...
...
@@ -62,11 +62,13 @@ void FormulaList::generateBitmaps(const char *path)
FormulaListIterator
fli
(
*
this
);
Formula
*
formula
;
QFile
f
(
texName
);
bool
formulaError
=
FALSE
;
if
(
f
.
open
(
IO_WriteOnly
))
{
QTextStream
t
(
&
f
);
if
(
Config
::
latexBatchModeFlag
)
t
<<
"
\\
batchmode"
<<
endl
;
t
<<
"
\\
documentclass{article}"
<<
endl
;
t
<<
"
\\
usepackage{epsf}"
<<
endl
;
// for those who want to include images
t
<<
"
\\
usepackage{epsf
ig
}"
<<
endl
;
// for those who want to include images
const
char
*
s
=
Config
::
extraPackageList
.
first
();
while
(
s
)
{
...
...
@@ -99,8 +101,9 @@ void FormulaList::generateBitmaps(const char *path)
//system("latex _formulas.tex </dev/null >/dev/null");
if
(
system
(
"latex _formulas.tex"
)
!=
0
)
{
err
(
"Problems running latex. Check your installation or look at _formulas.tex!
\n
"
);
return
;
err
(
"Problems running latex. Check your installation or look for typos in _formulas.tex!
\n
"
);
formulaError
=
TRUE
;
//return;
}
//printf("Running dvips...\n");
QListIterator
<
int
>
pli
(
pagesToGenerate
);
...
...
@@ -281,7 +284,7 @@ void FormulaList::generateBitmaps(const char *path)
thisDir
.
remove
(
"_formulas.aux"
);
}
// remove the latex file itself
thisDir
.
remove
(
"_formulas.tex"
);
if
(
!
formulaError
)
thisDir
.
remove
(
"_formulas.tex"
);
// write/update the formula repository so we know what text the
// generated gifs represent (we use this next time to avoid regeneration
// of the gifs, and to avoid forcing the user to delete all gifs in order
...
...
src/groupdef.cpp
View file @
de611600
...
...
@@ -25,13 +25,18 @@
#include "namespacedef.h"
#include "language.h"
#include "util.h"
#include "memberlist.h"
#include "message.h"
GroupDef
::
GroupDef
(
const
char
*
na
,
const
char
*
t
)
:
Definition
(
na
)
GroupDef
::
GroupDef
(
const
char
*
na
,
const
char
*
t
)
:
Definition
(
na
)
{
fileList
=
new
FileList
;
classList
=
new
ClassList
;
// groupList = new GroupList;
// name = n;
allMemberList
=
new
MemberList
;
allMemberDict
=
new
QDict
<
MemberDef
>
;
if
(
t
)
title
=
t
;
else
...
...
@@ -64,6 +69,28 @@ void GroupDef::addNamespace(const NamespaceDef *def)
namespaceList
->
append
(
def
);
}
void
GroupDef
::
addMember
(
const
MemberDef
*
md
)
{
QCString
funcDecl
=
md
->
name
()
+
md
->
argsString
();
if
(
allMemberDict
->
find
(
funcDecl
)
==
0
)
{
allMemberList
->
append
(
md
);
allMemberDict
->
insert
(
funcDecl
,
md
);
switch
(
md
->
memberType
())
{
case
MemberDef
:
:
Variable
:
varMembers
.
inSort
(
md
);
break
;
case
MemberDef
:
:
Function
:
funcMembers
.
inSort
(
md
);
break
;
case
MemberDef
:
:
Typedef
:
typedefMembers
.
inSort
(
md
);
break
;
case
MemberDef
:
:
Enumeration
:
enumMembers
.
inSort
(
md
);
break
;
case
MemberDef
:
:
EnumValue
:
enumValMembers
.
inSort
(
md
);
break
;
case
MemberDef
:
:
Prototype
:
protoMembers
.
inSort
(
md
);
break
;
case
MemberDef
:
:
Define
:
defineMembers
.
inSort
(
md
);
break
;
default
:
err
(
"FileDef::insertMembers(): unexpected member insert in file!
\n
"
);
}
}
}
//void GroupDef::addGroup(const GroupDef *def)
//{
// groupList->append(def);
...
...
@@ -71,7 +98,13 @@ void GroupDef::addNamespace(const NamespaceDef *def)
int
GroupDef
::
countMembers
()
const
{
return
fileList
->
count
()
+
classList
->
count
();
return
fileList
->
count
()
+
classList
->
count
()
+
allMemberList
->
count
();
}
/*! Compute the HTML anchor names for all members in the class */
void
GroupDef
::
computeAnchors
()
{
setAnchors
(
'a'
,
allMemberList
);
}
void
GroupDef
::
writeDocumentation
(
OutputList
&
ol
)
...
...
@@ -100,20 +133,29 @@ void GroupDef::writeDocumentation(OutputList &ol)
//ol.enable(OutputGenerator::Latex);
ol
.
popGeneratorState
();
}
ol
.
startMemberSections
();
if
(
fileList
->
count
()
>
0
)
{
ol
.
start
Group
Header
();
ol
.
start
Member
Header
();
parseText
(
ol
,
theTranslator
->
trFiles
());
ol
.
endGroupHeader
();
ol
.
startIndexList
();
ol
.
endMemberHeader
();
FileDef
*
fd
=
fileList
->
first
();
while
(
fd
)
{
ol
.
writeStartAnnoItem
(
"file "
,
fd
->
getOutputFileBase
(),
0
,
fd
->
name
());
ol
.
writeEndAnnoItem
(
fd
->
name
());
ol
.
startMemberItem
(
FALSE
,
0
);
ol
.
docify
(
"file"
);
ol
.
insertMemberAlign
();
ol
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
getOutputFileBase
(),
0
,
fd
->
name
());
ol
.
endMemberItem
(
FALSE
,
0
,
0
,
FALSE
);
if
(
!
fd
->
briefDescription
().
isEmpty
()
&&
Config
::
briefMemDescFlag
)
{
ol
.
startMemberDescription
();
parseDoc
(
ol
,
0
,
0
,
fd
->
briefDescription
());
ol
.
endMemberDescription
();
ol
.
newParagraph
();
}
fd
=
fileList
->
next
();
}
ol
.
endIndexList
();
}
if
(
classList
->
count
()
>
0
)
{
...
...
@@ -123,10 +165,9 @@ void GroupDef::writeDocumentation(OutputList &ol)
{
if
(
!
found
)
{
ol
.
start
Group
Header
();
ol
.
start
Member
Header
();
parseText
(
ol
,
theTranslator
->
trCompounds
());
ol
.
endGroupHeader
();
ol
.
startIndexList
();
ol
.
endMemberHeader
();
found
=
TRUE
;
}
QCString
type
;
...
...
@@ -138,24 +179,35 @@ void GroupDef::writeDocumentation(OutputList &ol)
case
ClassDef
:
:
Interface
:
type
=
"interface"
;
break
;
case
ClassDef
:
:
Exception
:
type
=
"exception"
;
break
;
}
ol
.
writeStartAnnoItem
(
type
,
cd
->
getOutputFileBase
(),
0
,
cd
->
name
());
ol
.
writeEndAnnoItem
(
cd
->
name
());
ol
.
startMemberItem
(
FALSE
,
0
);
ol
.
docify
(
type
);
ol
.
insertMemberAlign
();
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
0
,
cd
->
name
());
ol
.
endMemberItem
(
FALSE
,
0
,
0
,
FALSE
);
if
(
!
cd
->
briefDescription
().
isEmpty
()
&&
Config
::
briefMemDescFlag
)
{
ol
.
startMemberDescription
();
parseDoc
(
ol
,
0
,
0
,
cd
->
briefDescription
());
ol
.
endMemberDescription
();
ol
.
newParagraph
();
}
cd
=
classList
->
next
();
}
ol
.
endIndexList
();
}
if
(
allMemberList
->
count
()
>
0
)
{
allMemberList
->
writeDeclarations
(
ol
,
0
,
0
,
0
,
this
,
0
,
0
);
}
ol
.
endMemberSections
();
//int dl=doc.length();
//doc=doc.stripWhiteSpace();
if
(
!
briefDescription
().
isEmpty
()
||
!
documentation
().
isEmpty
())
{
ol
.
writeRuler
();
ol
.
pushGeneratorState
();
//bool latexOn = ol.isEnabled(OutputGenerator::Latex);
//if (latexOn) ol.disable(OutputGenerator::Latex);
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
writeAnchor
(
"_details"
);
//if (latexOn) ol.enable(OutputGenerator::Latex);
ol
.
popGeneratorState
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trDetailedDescription
());
...
...
@@ -173,7 +225,76 @@ void GroupDef::writeDocumentation(OutputList &ol)
}
}
defineMembers
.
countDocMembers
();
if
(
defineMembers
.
totalCount
()
>
0
)
{
ol
.
writeRuler
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trDefineDocumentation
());
ol
.
endGroupHeader
();
defineMembers
.
writeDocumentation
(
ol
,
name
());
}
protoMembers
.
countDocMembers
();
if
(
protoMembers
.
totalCount
()
>
0
)
{
ol
.
writeRuler
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trFunctionPrototypeDocumentation
());
ol
.
endGroupHeader
();
protoMembers
.
writeDocumentation
(
ol
,
name
());
}
typedefMembers
.
countDocMembers
();
if
(
typedefMembers
.
totalCount
()
>
0
)
{
ol
.
writeRuler
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trTypedefDocumentation
());
ol
.
endGroupHeader
();
typedefMembers
.
writeDocumentation
(
ol
,
name
());
}
enumMembers
.
countDocMembers
();
if
(
enumMembers
.
totalCount
()
>
0
)
{
ol
.
writeRuler
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trEnumerationTypeDocumentation
());
ol
.
endGroupHeader
();
enumMembers
.
writeDocumentation
(
ol
,
name
());
}
enumValMembers
.
countDocMembers
();
if
(
enumValMembers
.
totalCount
()
>
0
)
{
ol
.
writeRuler
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trEnumerationValueDocumentation
());
ol
.
endGroupHeader
();
enumValMembers
.
writeDocumentation
(
ol
,
name
());
}
funcMembers
.
countDocMembers
();
if
(
funcMembers
.
totalCount
()
>
0
)
{
ol
.
writeRuler
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trFunctionDocumentation
());
ol
.
endGroupHeader
();
funcMembers
.
writeDocumentation
(
ol
,
name
());
}
varMembers
.
countDocMembers
();
if
(
varMembers
.
totalCount
()
>
0
)
{
ol
.
writeRuler
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trVariableDocumentation
());
ol
.
endGroupHeader
();
varMembers
.
writeDocumentation
(
ol
,
name
());
}
endFile
(
ol
);
//ol.enable(OutputGenerator::Man);
ol
.
popGeneratorState
();
}
src/groupdef.h
View file @
de611600
...
...
@@ -19,7 +19,10 @@
#include "qtbc.h"
#include <qlist.h>
#include <qdict.h>
#include "definition.h"
#include "memberlist.h"
#include "memberdef.h"
class
FileList
;
class
ClassList
;
...
...
@@ -41,6 +44,7 @@ class GroupDef : public Definition
void
addFile
(
const
FileDef
*
def
);
void
addClass
(
const
ClassDef
*
def
);
void
addNamespace
(
const
NamespaceDef
*
def
);
void
addMember
(
const
MemberDef
*
def
);
void
writeDocumentation
(
OutputList
&
ol
);
int
countMembers
()
const
;
bool
isLinkableInProject
()
...
...
@@ -51,13 +55,25 @@ class GroupDef : public Definition
{
return
isLinkableInProject
()
||
isReference
();
}
void
computeAnchors
();
private
:
QCString
title
;
// title of the group
QCString
fileName
;
// base name of the generated file
QCString
title
;
// title of the group
QCString
fileName
;
// base name of the generated file
FileList
*
fileList
;
// list of all files in the group
ClassList
*
classList
;
// list of all classes in the group
NamespaceList
*
namespaceList
;
// list of all namespace in the group
MemberList
*
allMemberList
;
// list of all members in the group
QDict
<
MemberDef
>
*
allMemberDict
;
// members sorted to type
MemberList
defineMembers
;
MemberList
protoMembers
;
MemberList
typedefMembers
;
MemberList
enumMembers
;
MemberList
enumValMembers
;
MemberList
funcMembers
;
MemberList
varMembers
;
};
class
GroupList
:
public
QList
<
GroupDef
>
...
...
src/index.cpp
View file @
de611600
...
...
@@ -300,9 +300,10 @@ void writeGraphicalClassHierarchy(OutputList &ol)
//----------------------------------------------------------------------------
int
countFiles
(
)
void
countFiles
(
int
&
htmlFiles
,
int
&
files
)
{
int
count
=
0
;
htmlFiles
=
0
;
files
=
0
;
FileNameListIterator
fnli
(
inputNameList
);
FileName
*
fn
;
for
(;(
fn
=
fnli
.
current
());
++
fnli
)
...
...
@@ -311,22 +312,28 @@ int countFiles()
FileDef
*
fd
;
for
(;(
fd
=
fni
.
current
());
++
fni
)
{
if
(
fd
->
isLinkableInProject
()
||
fd
->
generateSource
()
||
(
!
fd
->
isReference
()
&&
Config
::
sourceBrowseFlag
)
)
count
++
;
bool
doc
=
fd
->
isLinkableInProject
();
bool
src
=
fd
->
generateSource
()
||
Config
::
sourceBrowseFlag
;
if
(
doc
||
src
)
{
htmlFiles
++
;
}
if
(
doc
)
{
files
++
;
}
}
}
return
count
;
}
//----------------------------------------------------------------------------
void
writeFileIndex
(
OutputList
&
ol
)
{
if
(
documentedFiles
==
0
)
return
;
if
(
documented
Html
Files
==
0
)
return
;
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Man
);
if
(
documentedFiles
==
0
)
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
startFile
(
ol
,
"files"
,
"File Index"
);
startTitle
(
ol
,
0
);
QCString
title
=
theTranslator
->
trFileList
();
...
...
@@ -366,32 +373,28 @@ void writeFileIndex(OutputList &ol)
path
=
stripFromPath
(
fd
->
getPath
().
copy
());
}
// --------------- LaTeX only -----------------------------
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Html
);
ol
.
writeStartAnnoItem
(
"file"
,
fd
->
getOutputFileBase
(),
path
,
fd
->
name
()
);
if
(
!
fd
->
briefDescription
().
isEmpty
())
// --------------- LaTeX/RTF only -------------------------
if
(
doc
)
{
ol
.
docify
(
" ("
);
OutputList
briefOutput
(
&
ol
);
parseDoc
(
briefOutput
,
0
,
0
,
abbreviate
(
fd
->
briefDescription
(),
fd
->
name
()));
ol
+=
briefOutput
;
ol
.
docify
(
")"
);
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Html
);
ol
.
writeStartAnnoItem
(
"file"
,
fd
->
getOutputFileBase
(),
path
,
fd
->
name
()
);
if
(
!
fd
->
briefDescription
().
isEmpty
())
{
ol
.
docify
(
" ("
);
OutputList
briefOutput
(
&
ol
);
parseDoc
(
briefOutput
,
0
,
0
,
abbreviate
(
fd
->
briefDescription
(),
fd
->
name
()));
ol
+=
briefOutput
;
ol
.
docify
(
")"
);
}
ol
.
writeEndAnnoItem
(
fd
->
getOutputFileBase
());
ol
.
popGeneratorState
();
}
//else
//{
// ol.startEmphasis();
// parseText(ol,theTranslator->trNoDescriptionAvailable());
// ol.endEmphasis();
//}
ol
.
writeEndAnnoItem
(
fd
->
getOutputFileBase
());
//ol.enable(OutputGenerator::Html);
ol
.
popGeneratorState
();
// --------------------------------------------------------
// ----------------- HTML only ----------------------------
...
...
src/index.h
View file @
de611600
...
...
@@ -65,7 +65,7 @@ void writeGraphicalClassHierarchy(OutputList &ol);
int
countClassHierarchy
();
int
countClassMembers
();
int
countFileMembers
();
int
countFiles
(
);
void
countFiles
(
int
&
htmlFiles
,
int
&
files
);
int
countGroups
();
int
countNamespaces
();
int
countAnnotatedClasses
();
...
...
src/latexgen.cpp
View file @
de611600
...
...
@@ -168,6 +168,7 @@ void LatexGenerator::startIndexSection(IndexSections is)
{
if
(
Config
::
latexHeaderFile
.
isEmpty
())
{
if
(
Config
::
latexBatchModeFlag
)
t
<<
"
\\
batchmode"
<<
endl
;
if
(
Config
::
paperType
==
"a4wide"
)
paperName
=
"a4"
;
else
paperName
=
Config
::
paperType
;
t
<<
"
\\
documentclass["
<<
paperName
<<
"paper"
;
if
(
Config
::
pdfHyperFlag
)
t
<<
",ps2pdf"
;
...
...
@@ -207,13 +208,6 @@ void LatexGenerator::startIndexSection(IndexSections is)
"
\\
vspace*{7cm}
\n
"
"
\\
begin{center}
\n
"
"{
\\
Large "
;
//docify(projectName);
//t << " Reference Manual";
//if (!projectNumber.isEmpty())
//{
// t << "\\\\[1ex]\\large ";
// docify(projectNumber);
//}
}
else
{
...
...
src/memberdef.cpp
View file @
de611600
...
...
@@ -27,6 +27,7 @@
#include "example.h"
#include "membergroup.h"
#include "scanner.h"
#include "groupdef.h"
//-----------------------------------------------------------------------------
...
...
@@ -219,6 +220,7 @@ MemberDef::MemberDef(const char *t,const char *na,const char *a,const char *e,
nspace
=
0
;
memDef
=
0
;
memDec
=
0
;
group
=
0
;
exampleList
=
0
;
exampleDict
=
0
;
enumFields
=
0
;
...
...
@@ -426,24 +428,29 @@ void MemberDef::setGroupId(int groupId)
}
void
MemberDef
::
writeLink
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
MemberGroup
*
mg
)
FileDef
*
fd
,
GroupDef
*
gd
,
MemberGroup
*
mg
)
{
if
(
mg
)
ol
.
writeObjectLink
(
0
,
mg
->
getOutputFileBase
(),
anchor
(),
name
());
else
if
(
nd
)
ol
.
writeObjectLink
(
nd
->
getReference
(),
nd
->
getOutputFileBase
(),
anchor
(),
name
());
else
if
(
fd
)
ol
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
getOutputFileBase
(),
anchor
(),
name
());
else
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
anchor
(),
name
());
Definition
*
d
;
if
(
mg
)
d
=
mg
;
else
if
(
cd
)
d
=
cd
;
else
if
(
nd
)
d
=
nd
;
else
if
(
fd
)
d
=
fd
;
else
if
(
gd
)
d
=
gd
;
//if (mg)
// ol.writeObjectLink(0,mg->getOutputFileBase(),
// anchor(),name());
//else if (cd)
// ol.writeObjectLink(cd->getReference(),cd->getOutputFileBase(),
// anchor(),name());
//else if (nd)
// ol.writeObjectLink(nd->getReference(),nd->getOutputFileBase(),
// anchor(),name());
//else if (fd)
// ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),
// anchor(),name());
//else
ol
.
writeObjectLink
(
d
->
getReference
(),
d
->
getOutputFileBase
(),
anchor
(),
name
());
}
void
MemberDef
::
writeDeclaration
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
void
MemberDef
::
writeDeclaration
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
GroupDef
*
gd
,
int
prevGroupId
,
bool
inGroup
)
{
int
i
,
l
;
...
...
@@ -481,7 +488,8 @@ void MemberDef::writeDeclaration(OutputList &ol,ClassDef *cd,NamespaceDef *nd,Fi
}
Definition
*
d
=
0
;
if
(
cd
)
d
=
cd
;
else
if
(
nd
)
d
=
nd
;
else
d
=
fd
;
ASSERT
(
cd
!=
0
||
nd
!=
0
||
fd
!=
0
||
gd
!=
0
);
// member should belong to something
if
(
cd
)
d
=
cd
;
else
if
(
nd
)
d
=
nd
;
else
if
(
fd
)
d
=
fd
;
else
d
=
gd
;
QCString
cname
=
d
->
name
();
QCString
cfname
=
d
->
getOutputFileBase
();
...
...
@@ -664,11 +672,11 @@ void MemberDef::writeDeclaration(OutputList &ol,ClassDef *cd,NamespaceDef *nd,Fi
if
(
annMemb
)
{
//printf("anchor=%s ann_anchor=%s\n",anchor(),annMemb->anchor());
annMemb
->
writeLink
(
ol
,
cd
,
nd
,
fd
,
inGroup
?
memberGroup
:
0
);
annMemb
->
writeLink
(
ol
,
cd
,
nd
,
fd
,
gd
,
inGroup
?
memberGroup
:
0
);
annMemb
->
annUsed
=
annUsed
=
TRUE
;
}
else
writeLink
(
ol
,
0
,
0
,
0
,
memberGroup
);
writeLink
(
ol
,
0
,
0
,
0
,
0
,
memberGroup
);
//ol.writeBoldString(name());
}
else
if
(
isLinkable
())
...
...
@@ -680,13 +688,14 @@ void MemberDef::writeDeclaration(OutputList &ol,ClassDef *cd,NamespaceDef *nd,Fi
annMemb
->
memberClass
(),
annMemb
->
getNamespace
(),
annMemb
->
getFileDef
(),
annMemb
->
groupDef
(),
inGroup
?
memberGroup
:
0
);
annMemb
->
annUsed
=
annUsed
=
TRUE
;
}
else
//printf("writeLink %s->%d\n",name.data(),hasDocumentation());
writeLink
(
ol
,
cd
,
nd
,
fd
,
inGroup
?
memberGroup
:
0
);
writeLink
(
ol
,
cd
,
nd
,
fd
,
gd
,
inGroup
?
memberGroup
:
0
);
}
else
// there is a brief member description and brief member
// descriptions are enabled or there is no detailed description.
...
...
@@ -795,6 +804,8 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
if
(
isEnumValue
()
&&
(
smd
=
getEnumScope
())
&&
r
.
match
(
smd
->
name
(),
0
,
&
dummy
)
==-
1
)
return
;
ol
.
pushGeneratorState
();
bool
hasHtmlHelp
=
Config
::
generateHtml
&&
Config
::
htmlHelpFlag
;
HtmlHelp
*
htmlHelp
=
0
;
if
(
hasHtmlHelp
)
htmlHelp
=
HtmlHelp
::
getInstance
();
...
...
@@ -1236,6 +1247,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
ol
.
endIndent
();
// enable LaTeX again
//if (Config::extractAllFlag && !hasDocs) ol.enable(OutputGenerator::Latex);
ol
.
popGeneratorState
();
}
}
...
...
src/memberdef.h
View file @
de611600
...
...
@@ -24,14 +24,16 @@
#include "entry.h"
#include "definition.h"
class
FileDef
;
class
ClassDef
;
class
NamespaceDef
;
class
GroupDef
;
class
FileDef
;
class
MemberList
;
class
MemberGroup
;
class
ExampleList
;
class
ExampleDict
;
class
OutputList
;
class
GroupDef
;
class
MemberDef
:
public
Definition
{
...
...
@@ -62,10 +64,12 @@ class MemberDef : public Definition
const
ArgumentList
*
al
);
~
MemberDef
();
void
writeLink
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
MemberGroup
*
mg
);
void
writeDeclaration
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
int
prevGroupId
,
bool
inGroup
);
void
writeLink
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
GroupDef
*
gd
,
MemberGroup
*
mg
);
void
writeDeclaration
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
GroupDef
*
gd
,
int
prevGroupId
,
bool
inGroup
);
void
writeDocumentation
(
MemberList
*
ml
,
OutputList
&
ol
,
const
char
*
scopeName
/*,MemberType m*/
);
void
warnIfUndocumented
();
...
...
@@ -83,6 +87,12 @@ class MemberDef : public Definition
Protection
protection
()
const
{
return
prot
;
}
Specifier
virtualness
()
const
{
return
virt
;
}
MemberType
memberType
()
const
{
return
mtype
;
}
GroupDef
*
groupDef
()
const
{
return
group
;
}
FileDef
*
getFileDef
()
{
return
fileDef
;
}
FileDef
*
getFileDec
()
{
return
fileDec
;
}
bool
isRelated
()
const
{
return
related
;
}
bool
isStatic
()
const
{
return
stat
;
}
bool
isInline
()
const
{
return
inLine
;
}
void
setMemberType
(
MemberType
t
)
{
mtype
=
t
;
}
void
setDefinition
(
const
char
*
d
)
{
def
=
d
;
}
void
setDefFile
(
const
char
*
f
)
{
defFile
=
f
;
}
...
...
@@ -96,13 +106,9 @@ class MemberDef : public Definition
init
=
init
.
stripWhiteSpace
();
initLines
=
init
.
contains
(
'\n'
);
}
FileDef
*
getFileDef
()
{
return
fileDef
;
}
FileDef
*
getFileDec
()
{
return
fileDec
;
}
void
setMemberClass
(
ClassDef
*
cd
)
{
classDef
=
cd
;
}
void
makeRelated
()
{
related
=
TRUE
;
}
bool
isRelated
()
const
{
return
related
;
}
bool
isStatic
()
const
{
return
stat
;
}
bool
isInline
()
const
{
return
inLine
;
}
void
setGroupDef
(
GroupDef
*
gd
)
{
group
=
gd
;
}
bool
hasDocumentation
()
// overrides hasDocumentation in definition.h
{
return
Definition
::
hasDocumentation
();
}
...
...
@@ -236,6 +242,7 @@ class MemberDef : public Definition
int
grpId
;
// group id
QCString
grpHeader
;
// group header
MemberGroup
*
memberGroup
;
// group's member definition
GroupDef
*
group
;
// group in which this member is in
// disable copying of member defs
MemberDef
(
const
MemberDef
&
);
...
...
src/membergroup.cpp
View file @
de611600
...
...
@@ -134,7 +134,7 @@ void MemberGroup::writeDocumentation(OutputList &ol)
ol
.
docify
(
">"
);
}
ol
.
startMemberSections
();
memberList
->
writeDeclarations
(
ol
,
cd
,
nd
,
fd
,
"Synopsis"
,
0
,
TRUE
);
memberList
->
writeDeclarations
(
ol
,
cd
,
nd
,
fd
,
0
,
"Synopsis"
,
0
,
TRUE
);
ol
.
endMemberSections
();
if
((
!
briefDescription
().
isEmpty
()
&&
Config
::
repeatBriefFlag
)
||
...
...
src/memberlist.cpp
View file @
de611600
...
...
@@ -14,15 +14,17 @@
*
*/
#include <qregexp.h>
#include "memberlist.h"
#include "classdef.h"
#include "message.h"
#include <qregexp.h>
#include "util.h"
#include "language.h"
#include "doxygen.h"
#include "outputlist.h"
#include "scanner.h"
#include "groupdef.h"
MemberList
::
MemberList
()
:
QList
<
MemberDef
>
()
{
...
...
@@ -36,7 +38,7 @@ int MemberList::compareItems(GCI item1, GCI item2)
{
MemberDef
*
c1
=
(
MemberDef
*
)
item1
;
MemberDef
*
c2
=
(
MemberDef
*
)
item2
;
return
str
case
cmp
(
c1
->
name
(),
c2
->
name
());
return
str
i
cmp
(
c1
->
name
(),
c2
->
name
());
}
void
MemberList
::
countDecMembers
()
...
...
@@ -187,17 +189,21 @@ MemberListIterator::MemberListIterator(const QList<MemberDef> &l) :
{
}
void
MemberList
::
writePlainDeclarations
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
bool
inGroup
)
void
MemberList
::
writePlainDeclarations
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
GroupDef
*
gd
,
bool
inGroup
)
{
countDecMembers
();
if
(
totalCount
()
==
0
)
return
;
// no members in this list
ol
.
pushGeneratorState
();
int
prevGroupId
=
-
1
;
if
(
!
fd
&&
!
nd
)
ol
.
startMemberList
();
bool
sectionPerType
=
fd
||
nd
||
gd
;
if
(
!
sectionPerType
)
ol
.
startMemberList
();
MemberDef
*
md
;
if
(
fd
&&
defineCount
()
>
0
)
if
(
sectionPerType
&&
defineCount
()
>
0
)
{
ol
.
startMemberHeader
();
parseText
(
ol
,
theTranslator
->
trDefines
());
...
...
@@ -210,14 +216,14 @@ void MemberList::writePlainDeclarations(OutputList &ol,ClassDef *cd,
(
md
->
argsString
()
||
md
->
hasDocumentation
()
||
Config
::
extractAllFlag
)
)
{
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
prevGroupId
,
inGroup
);
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
gd
,
prevGroupId
,
inGroup
);
prevGroupId
=
md
->
groupId
();
}
}
ol
.
endMemberList
();
}
if
(
(
fd
||
nd
)
&&
protoCount
()
>
0
)
if
(
sectionPerType
&&
protoCount
()
>
0
)
{
ol
.
startMemberHeader
();
parseText
(
ol
,
theTranslator
->
trFuncProtos
());
...
...
@@ -228,7 +234,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,ClassDef *cd,
{
if
(
md
->
isPrototype
())
{
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
prevGroupId
,
inGroup
);
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
gd
,
prevGroupId
,
inGroup
);
prevGroupId
=
md
->
groupId
();
}
}
...
...
@@ -237,7 +243,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,ClassDef *cd,
if
(
typedefCount
()
>
0
)
{
if
(
fd
||
nd
)
if
(
sectionPerType
)
{
ol
.
startMemberHeader
();
parseText
(
ol
,
theTranslator
->
trTypedefs
());
...
...
@@ -250,17 +256,17 @@ void MemberList::writePlainDeclarations(OutputList &ol,ClassDef *cd,
{
if
(
md
->
isTypedef
())
{
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
prevGroupId
,
inGroup
);
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
gd
,
prevGroupId
,
inGroup
);
prevGroupId
=
md
->
groupId
();
}
}
if
(
fd
||
nd
)
ol
.
endMemberList
();
if
(
sectionPerType
)
ol
.
endMemberList
();
}
// write enums
if
(
enumCount
()
>
0
)
{
if
(
fd
||
nd
)
if
(
sectionPerType
)
{
ol
.
startMemberHeader
();
parseText
(
ol
,
theTranslator
->
trEnumerations
());
...
...
@@ -302,7 +308,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,ClassDef *cd,
if
(
!
Config
::
genTagFile
.
isEmpty
())
tagFile
<<
md
->
name
()
<<
" "
<<
md
->
anchor
()
<<
"
\"\"
"
<<
endl
;
md
->
writeLink
(
typeDecl
,
cd
,
nd
,
fd
,
0
);
md
->
writeLink
(
typeDecl
,
cd
,
nd
,
fd
,
gd
,
0
);
}
else
{
...
...
@@ -323,7 +329,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,ClassDef *cd,
if
(
!
Config
::
genTagFile
.
isEmpty
())
tagFile
<<
fmd
->
name
()
<<
" "
<<
fmd
->
anchor
()
<<
"
\"
"
<<
fmd
->
argsString
()
<<
"
\"
"
;
fmd
->
writeLink
(
typeDecl
,
cd
,
nd
,
fd
,
0
);
fmd
->
writeLink
(
typeDecl
,
cd
,
nd
,
fd
,
gd
,
0
);
}
else
// no docs for this enum value
{
...
...
@@ -395,13 +401,13 @@ void MemberList::writePlainDeclarations(OutputList &ol,ClassDef *cd,
}
}
// md->isEnumerate()
}
// enum loop
if
(
fd
||
nd
)
ol
.
endMemberList
();
if
(
sectionPerType
)
ol
.
endMemberList
();
}
// write enums
// write functions
if
(
funcCount
()
>
0
)
{
if
(
fd
||
nd
)
if
(
sectionPerType
)
{
ol
.
startMemberHeader
();
parseText
(
ol
,
theTranslator
->
trFunctions
());
...
...
@@ -416,11 +422,11 @@ void MemberList::writePlainDeclarations(OutputList &ol,ClassDef *cd,
(
!
md
->
isRelated
()
||
md
->
memberClass
()
)
)
{
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
prevGroupId
,
inGroup
);
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
gd
,
prevGroupId
,
inGroup
);
prevGroupId
=
md
->
groupId
();
}
}
if
(
fd
||
nd
)
ol
.
endMemberList
();
if
(
sectionPerType
)
ol
.
endMemberList
();
}
if
(
friendCount
()
>
0
)
...
...
@@ -434,7 +440,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,ClassDef *cd,
//printf("Friend: type=%s name=%s\n",type.data(),md->name().data());
if
(
md
->
hasDocumentation
()
&&
type
!=
"friend class"
)
{
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
prevGroupId
,
inGroup
);
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
gd
,
prevGroupId
,
inGroup
);
prevGroupId
=
md
->
groupId
();
}
else
// friend is undocumented as a member but it is a class,
...
...
@@ -479,7 +485,7 @@ void MemberList::writePlainDeclarations(OutputList &ol,ClassDef *cd,
// write variables
if
(
varCount
()
>
0
)
{
if
(
fd
||
nd
)
if
(
sectionPerType
)
{
ol
.
startMemberHeader
();
parseText
(
ol
,
theTranslator
->
trVariables
());
...
...
@@ -491,11 +497,11 @@ void MemberList::writePlainDeclarations(OutputList &ol,ClassDef *cd,
{
if
(
md
->
isVariable
())
{
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
prevGroupId
,
inGroup
);
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
gd
,
prevGroupId
,
inGroup
);
prevGroupId
=
md
->
groupId
();
}
}
if
(
fd
||
nd
)
ol
.
endMemberList
();
if
(
sectionPerType
)
ol
.
endMemberList
();
}
// handle members that are inside annonymous compounds and for which
...
...
@@ -508,24 +514,26 @@ void MemberList::writePlainDeclarations(OutputList &ol,ClassDef *cd,
if
(
md
->
fromAnnonymousScope
()
&&
!
md
->
annonymousDeclShown
())
{
md
->
setFromAnnonymousScope
(
FALSE
);
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
prevGroupId
,
inGroup
);
md
->
writeDeclaration
(
ol
,
cd
,
nd
,
fd
,
gd
,
prevGroupId
,
inGroup
);
md
->
setFromAnnonymousScope
(
TRUE
);
prevGroupId
=
md
->
groupId
();
}
}
}
if
(
!
fd
&&
!
nd
)
{
ol
.
endMemberList
();
/*ol.writeChar('\n');*/
}
if
(
!
sectionPerType
)
{
ol
.
endMemberList
();
/*ol.writeChar('\n');*/
}
if
(
prevGroupId
!=-
1
&&
!
inGroup
)
{
ol
.
memberGroupSpacing
(
TRUE
);
ol
.
memberGroupSeparator
();
}
ol
.
popGeneratorState
();
}
void
MemberList
::
writeDeclarations
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
const
char
*
title
,
const
char
*
subtitle
,
bool
inGroup
)
void
MemberList
::
writeDeclarations
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
GroupDef
*
gd
,
const
char
*
title
,
const
char
*
subtitle
,
bool
inGroup
)
{
countDecMembers
();
if
(
totalCount
()
==
0
)
return
;
...
...
@@ -542,7 +550,7 @@ void MemberList::writeDeclarations(OutputList &ol,ClassDef *cd,NamespaceDef *nd,
ol
.
endMemberSubtitle
();
}
writePlainDeclarations
(
ol
,
cd
,
nd
,
fd
,
inGroup
);
writePlainDeclarations
(
ol
,
cd
,
nd
,
fd
,
gd
,
inGroup
);
}
void
MemberList
::
writeDocumentation
(
OutputList
&
ol
,
...
...
src/memberlist.h
View file @
de611600
...
...
@@ -19,6 +19,7 @@
#include <qlist.h>
#include "memberdef.h"
class
GroupDef
;
class
MemberList
:
public
QList
<
MemberDef
>
{
...
...
@@ -44,9 +45,11 @@ class MemberList : public QList<MemberDef>
//protoCnt+defCnt+friendCnt;
m_count
;
}
void
writePlainDeclarations
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
bool
inGroup
=
FALSE
);
void
writeDeclarations
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
void
writePlainDeclarations
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
GroupDef
*
gd
,
bool
inGroup
=
FALSE
);
void
writeDeclarations
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
GroupDef
*
gd
,
const
char
*
title
,
const
char
*
subtitle
,
bool
inGroup
=
FALSE
);
void
writeDocumentation
(
OutputList
&
ol
,
const
char
*
scopeName
/*,MemberDef::MemberType m*/
);
...
...
src/namespacedef.cpp
View file @
de611600
...
...
@@ -163,7 +163,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
if
(
found
)
ol
.
endMemberList
();
}
/*memList->*/
allMemberList
.
writeDeclarations
(
ol
,
0
,
this
,
0
,
0
,
0
);
allMemberList
.
writeDeclarations
(
ol
,
0
,
this
,
0
,
0
,
0
,
0
);
ol
.
endMemberSections
();
if
(
!
briefDescription
().
isEmpty
()
||
!
documentation
().
isEmpty
())
...
...
src/namespacedef.h
View file @
de611600
...
...
@@ -91,7 +91,7 @@ class NamespaceList : public QList<NamespaceDef>
~
NamespaceList
()
{}
int
compareItems
(
GCI
item1
,
GCI
item2
)
{
return
str
case
cmp
(((
NamespaceDef
*
)
item1
)
->
name
(),
return
str
i
cmp
(((
NamespaceDef
*
)
item1
)
->
name
(),
((
NamespaceDef
*
)
item2
)
->
name
()
);
}
...
...
src/scanner.l
View file @
de611600
...
...
@@ -130,6 +130,7 @@ static bool inDeprecatedBlock;
static bool inVersionBlock;
static bool inDateBlock;
static bool inBugBlock;
static bool inNoteBlock;
static bool inPreBlock;
static bool inPostBlock;
static bool inInvarBlock;
...
...
@@ -214,6 +215,7 @@ static void initParser()
inVersionBlock = FALSE;
inDateBlock = FALSE;
inBugBlock = FALSE;
inNoteBlock = FALSE;
inPreBlock = FALSE;
inPostBlock = FALSE;
inInvarBlock = FALSE;
...
...
@@ -643,7 +645,7 @@ static void tryEndItemList()
static bool inBlock()
{
return inParamBlock || inRetValBlock || inSeeBlock || inReturnBlock || inAuthorBlock ||
inVersionBlock || inDateBlock || inWarningBlock || inBugBlock ||
inVersionBlock || inDateBlock || inWarningBlock || inBugBlock ||
inNoteBlock ||
inParBlock || inExceptionBlock || inDeprecatedBlock || inPreBlock ||
inPostBlock || inInvarBlock;
}
...
...
@@ -657,7 +659,7 @@ static void endBlock()
}
outDoc->endDescList();
inParamBlock=inRetValBlock=inSeeBlock=inReturnBlock=inAuthorBlock=
inVersionBlock=inDateBlock=inBugBlock=inWarningBlock=
inVersionBlock=inDateBlock=inBugBlock=in
NoteBlock=in
WarningBlock=
inParBlock=inExceptionBlock=inDeprecatedBlock=inPreBlock=inPostBlock=
inInvarBlock=FALSE;
}
...
...
@@ -899,6 +901,7 @@ TR [tT][rR]
TT [tT][tT]
UL [uU][lL]
VAR [vV][aA][rR]
DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
%option noyywrap
...
...
@@ -1039,6 +1042,7 @@ VAR [vV][aA][rR]
%x CopyArgSharp
%x CopyArgComment
%x CopyArgCommentLine
%x SkipUnionSwitch
%x ReadFuncArgType
%x ReadTempArgs
%x Specialization
...
...
@@ -1050,6 +1054,7 @@ VAR [vV][aA][rR]
%x CopyString
%x CopyRound
%x CopyCurly
%x IDLUnionCase
%%
...
...
@@ -1297,7 +1302,25 @@ VAR [vV][aA][rR]
outDoc->writeDescItem();
}
}
<DocScan>{CMD}"pre"[s]?/{BN} {
<DocScan>{CMD}"note"[s]?/{BN} {
endArgumentList();
if (!inNoteBlock)
{
if (inBlock()) endBlock();
inNoteBlock=TRUE;
outDoc->startDescList();
outDoc->startBold();
scanString(theTranslator->trNote()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
else
{
outDoc->writeDescItem();
}
}
<DocScan>{CMD}"pre"/{BN} {
endArgumentList();
if (!inPreBlock)
{
...
...
@@ -1315,7 +1338,7 @@ VAR [vV][aA][rR]
outDoc->writeDescItem();
}
}
<DocScan>{CMD}"post"
[s]?
/{BN} {
<DocScan>{CMD}"post"/{BN} {
endArgumentList();
if (!inPostBlock)
{
...
...
@@ -1333,7 +1356,7 @@ VAR [vV][aA][rR]
outDoc->writeDescItem();
}
}
<DocScan>{CMD}"invariant"
[s]?/{BN}
{
<DocScan>{CMD}"invariant"
/{BN}
{
endArgumentList();
if (!inInvarBlock)
{
...
...
@@ -1516,7 +1539,7 @@ VAR [vV][aA][rR]
BEGIN(DocException);
}
<DocScan>"\\capt".*
<DocParam>(
[a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
{
<DocParam>(
{DOCPARAM}{BN}*","{BN}*)*{DOCPARAM}
{
outDoc->startDescTableTitle();
outDoc->startEmphasis();
outDoc->docify(yytext);
...
...
@@ -1746,7 +1769,7 @@ VAR [vV][aA][rR]
<DocScan>{CMD}"b"{BN}+ { BEGIN( DocBold ); }
<DocScan>{CMD}"c"{BN}+ { BEGIN( DocCode ); }
<DocScan>{CMD}"l"{BN}+
<DocScan>
{CMD}"n"
{ outDoc->lineBreak(); }
<DocScan>
"\\n"/[^a-z_A-Z0-9]
{ outDoc->lineBreak(); }
<DocScan>{CMD}"include"{BN}+ { BEGIN( DocInclude ); }
<DocScan>{CMD}"dontinclude"{BN}+ { BEGIN( DocDontInclude ); }
<DocScan>{CMD}"skip"{BN}+ { BEGIN( DocSkipKey ); }
...
...
@@ -2422,6 +2445,10 @@ VAR [vV][aA][rR]
{
BEGIN(CppQuote);
}
else if (insideIDL && strcmp(yytext,"case")==0)
{
BEGIN(IDLUnionCase);
}
else
{
lineCount();
...
...
@@ -2445,6 +2472,10 @@ VAR [vV][aA][rR]
insideCppQuote=TRUE;
BEGIN(FindMembers);
}
<IDLUnionCase>"::"
<IDLUnionCase>":" { BEGIN(FindMembers); }
<IDLUnionCase>\n { yyLineNr++; }
<IDLUnionCase>.
<EndCppQuote>")" {
insideCppQuote=FALSE;
BEGIN(FindMembers);
...
...
@@ -3581,19 +3612,28 @@ VAR [vV][aA][rR]
BEGIN( ClassVar );
}
<ClassVar>{ID} {
if (isTypedef
)
if (insideIDL && strcmp(yytext,"switch")==0
)
{
// typedefDict.insert(yytext,new QCString(current->name));
// current->type.prepend("typedef ");
// current->extends
current->extends->append(
new BaseInfo(yytext,Public,Normal)
);
// Corba IDL style union
roundCount=0;
BEGIN(SkipUnionSwitch);
}
else
{
if (isTypedef)
{
// typedefDict.insert(yytext,new QCString(current->name));
// current->type.prepend("typedef ");
// current->extends
current->extends->append(
new BaseInfo(yytext,Public,Normal)
);
}
current->type += ' ' ;
current->type += current->name ;
current->name = yytext ;
//BEGIN( FindMembers );
}
current->type += ' ' ;
current->type += current->name ;
current->name = yytext ;
//BEGIN( FindMembers );
}
<ClassVar>[(\[] {
// probably a function anyway
...
...
@@ -3702,6 +3742,17 @@ VAR [vV][aA][rR]
curlyCount=0;
BEGIN( Curly ) ;
}
<SkipUnionSwitch>"(" {
roundCount++;
}
<SkipUnionSwitch>")" {
if (--roundCount==0)
{
BEGIN(ClassVar);
}
}
<SkipUnionSwitch>\n { yyLineNr++; }
<SkipUnionSwitch>.
<Comment>{BN}+ { current->program += yytext ;
lineCount() ;
}
...
...
@@ -3797,7 +3848,7 @@ VAR [vV][aA][rR]
}
<JavaDoc>"@" {
unput(*yytext);
BEGIN(Doc);
BEGIN(
Class
Doc);
}
<JavaDoc>^{B}*"*"+/[^/] {
//printf("---> removing %s\n",yytext);
...
...
@@ -3820,7 +3871,7 @@ VAR [vV][aA][rR]
current->brief+=".";
BEGIN( tmpDocType );
}
<JavaDoc>{CMD}("image"|"author"|"internal"|"version"|"date"|"param"|"exception"|"return"[s]?|"retval"|"bug"|"warning"|"par"|"sa"|"see") {
<JavaDoc>{CMD}("image"|"author"|"internal"|"version"|"date"|"param"|"exception"|"return"[s]?|"retval"|"bug"|"warning"|"par"|"sa"|"see"
|"pre"|"post"|"invariant"|"note"
) {
current->doc+=yytext;
BEGIN( tmpDocType );
}
...
...
src/translator.h
View file @
de611600
...
...
@@ -553,25 +553,25 @@ class Translator
* these are for the member sections of a class, struct or union
*/
virtual
QCString
trPublicMembers
()
{
return
"Public Me
mber
s"
;
}
{
return
"Public Me
thod
s"
;
}
virtual
QCString
trPublicSlots
()
{
return
"Public Slots"
;
}
virtual
QCString
trSignals
()
{
return
"Signals"
;
}
virtual
QCString
trStaticPublicMembers
()
{
return
"Static Public Me
mber
s"
;
}
{
return
"Static Public Me
thod
s"
;
}
virtual
QCString
trProtectedMembers
()
{
return
"Protected Me
mber
s"
;
}
{
return
"Protected Me
thod
s"
;
}
virtual
QCString
trProtectedSlots
()
{
return
"Protected Slots"
;
}
virtual
QCString
trStaticProtectedMembers
()
{
return
"Static Protected Me
mber
s"
;
}
{
return
"Static Protected Me
thod
s"
;
}
virtual
QCString
trPrivateMembers
()
{
return
"Private Me
mber
s"
;
}
{
return
"Private Me
thod
s"
;
}
virtual
QCString
trPrivateSlots
()
{
return
"Private Slots"
;
}
virtual
QCString
trStaticPrivateMembers
()
{
return
"Static Private Me
mber
s"
;
}
{
return
"Static Private Me
thod
s"
;
}
/*! \endmgroup */
/*! this function is used to produce a comma-separated list of items.
...
...
@@ -815,6 +815,47 @@ class Translator
{
return
"Page Index"
;
}
virtual
QCString
trNote
()
{
return
"Note"
;
}
virtual
QCString
trPublicTypes
()
{
return
"Public Types"
;
}
virtual
QCString
trPublicAttribs
()
{
return
"Public Attributes"
;
}
virtual
QCString
trStaticPublicAttribs
()
{
return
"Static Public Attributes"
;
}
virtual
QCString
trProtectedTypes
()
{
return
"Protected Types"
;
}
virtual
QCString
trProtectedAttribs
()
{
return
"Protected Attributes"
;
}
virtual
QCString
trStaticProtectedAttribs
()
{
return
"Static Protected Attributes"
;
}
virtual
QCString
trPrivateTypes
()
{
return
"Private Types"
;
}
virtual
QCString
trPrivateAttribs
()
{
return
"Private Attributes"
;
}
virtual
QCString
trStaticPrivateAttribs
()
{
return
"Static Private Attributes"
;
}
};
#endif
src/translator_jp.h
View file @
de611600
This diff is collapsed.
Click to expand it.
src/util.cpp
View file @
de611600
...
...
@@ -34,6 +34,7 @@
#include "htmlhelp.h"
#include "example.h"
#include "version.h"
#include "groupdef.h"
// an inheritance tree of depth of 100000 should be enough for everyone :-)
const
int
maxInheritanceDepth
=
100000
;
...
...
@@ -268,6 +269,7 @@ void linkifyText(OutputList &ol,const char *scName,const char *name,const char *
FileDef
*
fd
=
0
;
MemberDef
*
md
=
0
;
NamespaceDef
*
nd
=
0
;
GroupDef
*
gd
=
0
;
QCString
scopeName
=
scName
;
QCString
searchName
=
name
;
...
...
@@ -314,14 +316,14 @@ void linkifyText(OutputList &ol,const char *scName,const char *name,const char *
//if (!found) printf("Trying to link %s in %s\n",word.data(),scName);
if
(
!
found
&&
getDefs
(
scName
,
word
,
0
,
md
,
cd
,
fd
,
nd
)
&&
getDefs
(
scName
,
word
,
0
,
md
,
cd
,
fd
,
nd
,
gd
)
&&
(
md
->
isTypedef
()
||
md
->
isEnumerate
()
||
md
->
isReference
())
&&
md
->
isLinkable
()
)
{
//printf("Found ref\n");
Definition
*
d
=
0
;
if
(
cd
)
d
=
cd
;
else
if
(
nd
)
d
=
nd
;
else
d
=
f
d
;
if
(
cd
)
d
=
cd
;
else
if
(
nd
)
d
=
nd
;
else
if
(
fd
)
d
=
fd
;
else
d
=
g
d
;
if
(
d
&&
d
->
isLinkable
())
{
result
.
writeObjectLink
(
d
->
getReference
(),
d
->
getOutputFileBase
(),
...
...
@@ -527,7 +529,7 @@ void writeQuickLinks(OutputList &ol,bool compact,bool ext)
parseText
(
ol
,
theTranslator
->
trCompoundList
());
ol
.
endQuickIndexItem
();
}
if
(
documentedFiles
>
0
)
if
(
documented
Html
Files
>
0
)
{
if
(
!
compact
)
ol
.
writeListItem
();
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"files.html"
);
...
...
@@ -723,7 +725,7 @@ QCString dateToString(bool includeTime)
// recursive function that returns the number of branches in the
// inheritance tree that the base class `bcd' is below the class `cd'
static
int
minClassDistance
(
ClassDef
*
cd
,
ClassDef
*
bcd
,
int
level
=
0
)
int
minClassDistance
(
ClassDef
*
cd
,
ClassDef
*
bcd
,
int
level
)
{
if
(
cd
==
bcd
)
return
level
;
BaseClassListIterator
bcli
(
*
cd
->
baseClasses
());
...
...
@@ -1190,9 +1192,10 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl)
*/
bool
getDefs
(
const
QCString
&
scName
,
const
QCString
&
memberName
,
const
char
*
args
,
MemberDef
*&
md
,
ClassDef
*&
cd
,
FileDef
*&
fd
,
NamespaceDef
*&
nd
)
MemberDef
*&
md
,
ClassDef
*&
cd
,
FileDef
*&
fd
,
NamespaceDef
*&
nd
,
GroupDef
*&
gd
)
{
fd
=
0
,
md
=
0
,
cd
=
0
,
nd
=
0
;
fd
=
0
,
md
=
0
,
cd
=
0
,
nd
=
0
,
gd
=
0
;
if
(
memberName
.
isEmpty
())
return
FALSE
;
/* empty name => nothing to link */
QCString
scopeName
=
scName
.
copy
();
...
...
@@ -1327,7 +1330,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
// unknown or undocumented scope
}
else
// maybe an namespace
or file
member ?
else
// maybe an namespace
, file or group
member ?
{
//printf("Testing for global function scopeName=`%s' mScope=`%s' :: mName=`%s'\n",
// scopeName.data(),mScope.data(),mName.data());
...
...
@@ -1415,11 +1418,17 @@ bool getDefs(const QCString &scName,const QCString &memberName,
{
if
(
md
->
isLinkable
())
{
//printf("md->name()=`%s' md->args=`%s'\n",md->name().data(),args);
fd
=
md
->
getFileDef
();
if
(
fd
&&
fd
->
isLinkable
())
gd
=
md
->
groupDef
();
//printf("md->name()=`%s' md->args=`%s' fd=%p gd=%p\n",
// md->name().data(),args,fd,gd);
bool
inGroup
=
FALSE
;
if
((
fd
&&
fd
->
isLinkable
())
||
(
inGroup
=
(
gd
&&
gd
->
isLinkable
()))
)
{
//printf("fd->name()=`%s'\n",fd->name().data());
if
(
inGroup
)
fd
=
0
;
//printf("fd=%p gd=%p inGroup=`%d' args=`%s'\n",fd,gd,inGroup,args);
bool
match
=
TRUE
;
ArgumentList
*
argList
=
0
;
if
(
args
&&
!
md
->
isDefine
())
...
...
@@ -1429,7 +1438,11 @@ bool getDefs(const QCString &scName,const QCString &memberName,
match
=
matchArguments
(
md
->
argumentList
(),
argList
);
delete
argList
;
argList
=
0
;
}
if
(
match
)
return
TRUE
;
if
(
match
)
{
//printf("Found match!\n");
return
TRUE
;
}
}
}
md
=
mn
->
next
();
...
...
@@ -1445,8 +1458,13 @@ bool getDefs(const QCString &scName,const QCString &memberName,
{
//printf("md->name()=`%s'\n",md->name().data());
fd
=
md
->
getFileDef
();
if
(
fd
&&
fd
->
isLinkable
())
gd
=
md
->
groupDef
();
bool
inGroup
=
FALSE
;
if
((
fd
&&
fd
->
isLinkable
())
|+
(
inGroup
=
(
gd
&&
gd
->
isLinkable
()))
)
{
if
(
inGroup
)
fd
=
0
;
return
TRUE
;
}
}
...
...
@@ -1625,7 +1643,7 @@ bool generateRef(OutputList &ol,const char *scName,
// scopeStr.data(),nameStr.data(),argsStr.data());
// check if nameStr is a member or global.
if
(
getDefs
(
scopeStr
,
nameStr
,
argsStr
,
md
,
cd
,
fd
,
nd
))
if
(
getDefs
(
scopeStr
,
nameStr
,
argsStr
,
md
,
cd
,
fd
,
nd
,
gd
))
{
//printf("after getDefs nd=%p\n",nd);
QCString
anchor
=
md
->
isLinkable
()
?
md
->
anchor
()
:
0
;
...
...
@@ -1656,6 +1674,15 @@ bool generateRef(OutputList &ol,const char *scName,
cName
=
fd
->
name
();
aName
=
md
->
anchor
();
}
else
if
(
gd
)
{
//printf("addGroupLink(%s,%s,%s)\n",fd->getOutputFileBase().data(),anchor.data(),
// gd->name().data());
ol
.
writeObjectLink
(
gd
->
getReference
(),
gd
->
getOutputFileBase
(),
anchor
,
linkText
.
stripWhiteSpace
());
cName
=
gd
->
name
();
aName
=
md
->
anchor
();
}
else
// should not be reached
{
//printf("add no link fd=cd=0\n");
...
...
src/util.h
View file @
de611600
...
...
@@ -33,6 +33,7 @@ class MemberDef;
class
ExampleList
;
class
ClassList
;
class
BaseClassList
;
class
GroupDef
;
extern
void
setAnchors
(
char
id
,
MemberList
*
ml
);
extern
QCString
fileToString
(
const
char
*
name
);
...
...
@@ -40,8 +41,10 @@ extern QCString dateToString(bool);
extern
void
linkifyText
(
OutputList
&
ol
,
const
char
*
clName
,
const
char
*
name
,
const
char
*
text
);
extern
bool
getDefs
(
const
QCString
&
scopeName
,
const
QCString
&
memberName
,
const
char
*
,
MemberDef
*&
md
,
ClassDef
*&
cd
,
FileDef
*&
fd
,
NamespaceDef
*&
nd
);
const
char
*
,
MemberDef
*&
md
,
ClassDef
*&
cd
,
FileDef
*&
fd
,
NamespaceDef
*&
nd
,
GroupDef
*&
gd
);
extern
bool
generateRef
(
OutputList
&
ol
,
const
char
*
,
const
char
*
,
bool
inSeeBlock
,
const
char
*
=
0
);
extern
bool
generateLink
(
OutputList
&
ol
,
const
char
*
,
...
...
@@ -84,5 +87,6 @@ int getPrefixIndex(const QCString &name);
QCString
removeAnnonymousScopes
(
const
QCString
&
s
);
void
initClassHierarchy
(
ClassList
*
cl
);
bool
hasVisibleRoot
(
BaseClassList
*
bcl
);
int
minClassDistance
(
ClassDef
*
cd
,
ClassDef
*
bcd
,
int
level
=
0
);
#endif
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