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
f62ec116
Commit
f62ec116
authored
Oct 05, 2003
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.3.4-20031005
parent
b740d594
Changes
35
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
641 additions
and
378 deletions
+641
-378
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
qfile_unix.cpp
qtools/qfile_unix.cpp
+11
-0
qfile_win32.cpp
qtools/qfile_win32.cpp
+11
-0
classdef.cpp
src/classdef.cpp
+7
-7
code.l
src/code.l
+23
-13
compound.xsd
src/compound.xsd
+2
-0
compound_xsd.h
src/compound_xsd.h
+2
-0
config.l
src/config.l
+3
-1
defgen.cpp
src/defgen.cpp
+1
-1
definition.cpp
src/definition.cpp
+7
-5
definition.h
src/definition.h
+5
-0
docparser.cpp
src/docparser.cpp
+2
-2
dot.cpp
src/dot.cpp
+5
-28
doxygen.cpp
src/doxygen.cpp
+72
-16
entry.cpp
src/entry.cpp
+8
-0
entry.h
src/entry.h
+3
-0
filedef.cpp
src/filedef.cpp
+1
-1
groupdef.cpp
src/groupdef.cpp
+4
-2
htmlgen.cpp
src/htmlgen.cpp
+4
-1
index.cpp
src/index.cpp
+10
-13
memberdef.cpp
src/memberdef.cpp
+166
-83
memberdef.h
src/memberdef.h
+20
-8
membergroup.cpp
src/membergroup.cpp
+7
-2
memberlist.cpp
src/memberlist.cpp
+2
-2
namespacedef.cpp
src/namespacedef.cpp
+1
-1
scanner.l
src/scanner.l
+13
-7
translator_de.h
src/translator_de.h
+13
-7
translator_dk.h
src/translator_dk.h
+155
-139
translator_ru.h
src/translator_ru.h
+1
-0
translator_tw.h
src/translator_tw.h
+52
-1
util.cpp
src/util.cpp
+11
-27
xmlgen.cpp
src/xmlgen.cpp
+13
-5
No files found.
INSTALL
View file @
f62ec116
DOXYGEN Version 1.3.4
DOXYGEN Version 1.3.4
-20031005
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (
22 Septem
ber 2003)
Dimitri van Heesch (
05 Octo
ber 2003)
README
View file @
f62ec116
DOXYGEN Version 1.3.4
DOXYGEN Version 1.3.4
_20031005
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) (
22 Septem
ber 2003)
Dimitri van Heesch (dimitri@stack.nl) (
05 Octo
ber 2003)
VERSION
View file @
f62ec116
1.3.4
1.3.4
-20031005
packages/rpm/doxygen.spec
View file @
f62ec116
Summary: A documentation system for C/C++.
Name: doxygen
Version: 1.3.4
Version: 1.3.4
_20031005
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
...
...
qtools/qfile_unix.cpp
View file @
f62ec116
...
...
@@ -40,6 +40,17 @@
#include "qfile.h"
#include "qfiledefs_p.h"
#if defined(_OS_MAC_) || defined(_OS_MSDOS_) || defined(_OS_WIN32_) || defined(_OS_OS2_)
# define HAS_TEXT_FILEMODE // has translate/text filemode
#endif
#if defined(O_NONBLOCK)
# define HAS_ASYNC_FILEMODE
# define OPEN_ASYNC O_NONBLOCK
#elif defined(O_NDELAY)
# define HAS_ASYNC_FILEMODE
# define OPEN_ASYNC O_NDELAY
#endif
bool
qt_file_access
(
const
QString
&
fn
,
int
t
)
{
if
(
fn
.
isEmpty
()
)
...
...
qtools/qfile_win32.cpp
View file @
f62ec116
...
...
@@ -23,6 +23,17 @@
#include "qfile.h"
#include "qfiledefs_p.h"
#if defined(_OS_MAC_) || defined(_OS_MSDOS_) || defined(_OS_WIN32_) || defined(_OS_OS2_)
# define HAS_TEXT_FILEMODE // has translate/text filemode
#endif
#if defined(O_NONBLOCK)
# define HAS_ASYNC_FILEMODE
# define OPEN_ASYNC O_NONBLOCK
#elif defined(O_NDELAY)
# define HAS_ASYNC_FILEMODE
# define OPEN_ASYNC O_NDELAY
#endif
bool
qt_file_access
(
const
QString
&
fn
,
int
t
)
{
if
(
fn
.
isEmpty
()
)
...
...
src/classdef.cpp
View file @
f62ec116
...
...
@@ -853,7 +853,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
()
+
Config_getString
(
"HTML_FILE_EXTENSION"
)
);
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
}
...
...
@@ -1428,10 +1428,11 @@ void ClassDef::writeMemberList(OutputList &ol)
QCString
name
=
mi
->
ambiguityResolutionScope
+
md
->
name
();
//ol.writeListItem();
ol
.
writeString
(
" <tr class=
\"
memlist
\"
><td>"
);
Definition
*
bd
=
md
->
getGroupDef
();
if
(
bd
==
0
)
bd
=
cd
;
ol
.
writeObjectLink
(
bd
->
getReference
(),
bd
->
getOutputFileBase
(),
md
->
anchor
(),
name
);
//Definition *bd = md->getGroupDef();
//if (bd==0) bd=cd;
ol
.
writeObjectLink
(
md
->
getReference
(),
md
->
getOutputFileBase
(),
md
->
anchor
(),
name
);
if
(
md
->
isFunction
()
||
md
->
isSignal
()
||
md
->
isSlot
()
||
(
md
->
isFriend
()
&&
md
->
argsString
()))
...
...
@@ -2430,8 +2431,6 @@ ClassDef *ClassDef::insertTemplateInstance(const QCString &fileName,
Debug
::
print
(
Debug
::
Classes
,
0
,
" New template instance class %s%s
\n
"
,
name
().
data
(),
templSpec
.
data
());
templateClass
=
new
ClassDef
(
fileName
,
startLine
,
name
()
+
templSpec
,
ClassDef
::
Class
);
//templateClass->setBriefDescription(briefDescription());
//templateClass->setDocumentation(documentation());
templateClass
->
setTemplateMaster
(
this
);
templateClass
->
setOuterScope
(
getOuterScope
());
m_templateInstances
->
insert
(
templSpec
,
templateClass
);
...
...
@@ -2486,6 +2485,7 @@ void ClassDef::addMembersToTemplateInstance(ClassDef *cd,const char *templSpec)
imd
->
setTemplateMaster
(
md
);
imd
->
setDocumentation
(
md
->
documentation
(),
md
->
docFile
(),
md
->
docLine
());
imd
->
setBriefDescription
(
md
->
briefDescription
(),
md
->
briefFile
(),
md
->
briefLine
());
imd
->
setInbodyDocumentation
(
md
->
inbodyDocumentation
(),
md
->
inbodyFile
(),
md
->
inbodyLine
());
imd
->
setMemberSpecifiers
(
md
->
getMemberSpecifiers
());
insertMember
(
imd
);
//printf("Adding member=%s %s%s to class %s templSpec %s\n",
...
...
src/code.l
View file @
f62ec116
...
...
@@ -355,15 +355,23 @@ static void startCodeLine()
{
g_currentDefinition = d;
g_currentMemberDef = g_sourceFileDef->getSourceMember(g_yyLineNr);
QCString anchor;
g_insideBody = FALSE;
g_searchingForBody = TRUE;
g_realScope = d->name().copy();
//printf("Real scope: `%s'\n",g_realScope.data());
g_bodyCurlyCount = 0;
if (g_currentMemberDef) anchor=g_currentMemberDef->getBodyAnchor();
g_code->writeLineNumber(d->getReference(),d->getOutputFileBase(),
anchor,g_yyLineNr);
if (g_currentMemberDef)
{
g_code->writeLineNumber(g_currentMemberDef->getReference(),
g_currentMemberDef->getOutputFileBase(),
g_currentMemberDef->anchor(),g_yyLineNr);
}
else
{
g_code->writeLineNumber(d->getReference(),
d->getOutputFileBase(),
0,g_yyLineNr);
}
}
else
{
...
...
@@ -702,13 +710,13 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,
if (md)
{
//printf("is a global md=%p g_currentDefinition=%s\n",md,g_currentDefinition?g_currentDefinition->name().data():"<none>");
Definition *d = md->getOuterScope()==Doxygen::globalScope ?
md->getBodyDef() : md->getOuterScope();
//
Definition *d = md->getOuterScope()==Doxygen::globalScope ?
//
md->getBodyDef() : md->getOuterScope();
//printf("definition %s\n",d?d->name().data():"<none>");
if (md->getGroupDef()) d = md->getGroupDef();
if (
d && d->isLinkable() &&
md->isLinkable())
//
if (md->getGroupDef()) d = md->getGroupDef();
if (md->isLinkable())
{
writeMultiLineCodeLink(ol,
d->getReference(),d->getOutputFileBase(),md->getBodyA
nchor(),clName);
writeMultiLineCodeLink(ol,
md->getReference(),md->getOutputFileBase(),md->a
nchor(),clName);
if (g_currentMemberDef)
{
addDocCrossReference(g_currentMemberDef,md);
...
...
@@ -770,8 +778,10 @@ static bool getLink(const char *className,
}
//printf("d->getReference()=`%s' d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getReference().data(),d->getOutputFileBase().data(),d->name().data(),md->name().data());
writeMultiLineCodeLink(ol,d->getReference(),d->getOutputFileBase(),
md->getBodyAnchor(),text ? text : memberName);
writeMultiLineCodeLink(ol,md->getReference(),
md->getOutputFileBase(),
md->anchor(),
text ? text : memberName);
return TRUE;
}
}
...
...
@@ -822,8 +832,8 @@ static bool generateClassMemberLink(BaseCodeDocInterface &ol,ClassDef *mcd,const
}
// write the actual link
writeMultiLineCodeLink(ol,xd->getReference(),
x
d->getOutputFileBase(),xmd->getBodyA
nchor(),memName);
writeMultiLineCodeLink(ol,x
m
d->getReference(),
x
md->getOutputFileBase(),xmd->a
nchor(),memName);
return TRUE;
}
...
...
src/compound.xsd
View file @
f62ec116
...
...
@@ -38,6 +38,7 @@
</xsd:sequence>
<xsd:attribute
name=
"id"
/>
<xsd:attribute
name=
"kind"
type=
"DoxCompoundKind"
/>
<xsd:attribute
name=
"prot"
type=
"DoxProtectionKind"
/>
</xsd:complexType>
<xsd:complexType
name=
"listofallmembersType"
>
...
...
@@ -104,6 +105,7 @@
<xsd:element
name=
"exceptions"
type=
"linkedTextType"
minOccurs=
"0"
/>
<xsd:element
name=
"briefdescription"
type=
"descriptionType"
minOccurs=
"0"
/>
<xsd:element
name=
"detaileddescription"
type=
"descriptionType"
minOccurs=
"0"
/>
<xsd:element
name=
"inbodydescription"
type=
"descriptionType"
minOccurs=
"0"
/>
<xsd:element
name=
"location"
type=
"locationType"
/>
<xsd:element
name=
"references"
type=
"referenceType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xsd:element
name=
"referencedby"
type=
"referenceType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
...
...
src/compound_xsd.h
View file @
f62ec116
...
...
@@ -38,6 +38,7 @@
" </xsd:sequence>
\n
"
" <xsd:attribute name=
\"
id
\"
/>
\n
"
" <xsd:attribute name=
\"
kind
\"
type=
\"
DoxCompoundKind
\"
/>
\n
"
" <xsd:attribute name=
\"
prot
\"
type=
\"
DoxProtectionKind
\"
/>
\n
"
" </xsd:complexType>
\n
"
"
\n
"
" <xsd:complexType name=
\"
listofallmembersType
\"
>
\n
"
...
...
@@ -104,6 +105,7 @@
" <xsd:element name=
\"
exceptions
\"
type=
\"
linkedTextType
\"
minOccurs=
\"
0
\"
/>
\n
"
" <xsd:element name=
\"
briefdescription
\"
type=
\"
descriptionType
\"
minOccurs=
\"
0
\"
/>
\n
"
" <xsd:element name=
\"
detaileddescription
\"
type=
\"
descriptionType
\"
minOccurs=
\"
0
\"
/>
\n
"
" <xsd:element name=
\"
inbodydescription
\"
type=
\"
descriptionType
\"
minOccurs=
\"
0
\"
/>
\n
"
" <xsd:element name=
\"
location
\"
type=
\"
locationType
\"
/>
\n
"
" <xsd:element name=
\"
references
\"
type=
\"
referenceType
\"
minOccurs=
\"
0
\"
maxOccurs=
\"
unbounded
\"
/>
\n
"
" <xsd:element name=
\"
referencedby
\"
type=
\"
referenceType
\"
minOccurs=
\"
0
\"
maxOccurs=
\"
unbounded
\"
/>
\n
"
...
...
src/config.l
View file @
f62ec116
...
...
@@ -1841,7 +1841,9 @@ void Config::create()
cb = addBool(
"SOURCE_BROWSER",
"If the SOURCE_BROWSER tag is set to YES then a list of source files will \n"
"be generated. Documented entities will be cross-referenced with these sources. \n",
"be generated. Documented entities will be cross-referenced with these sources. \n"
"Note: To get rid of all source code in the generated output, make sure also \n"
"VERBATIM_HEADERS is set to NO. \n",
FALSE
);
cb = addBool(
...
...
src/defgen.cpp
View file @
f62ec116
...
...
@@ -103,7 +103,7 @@ void generateDEFForMember(MemberDef *md,
t
<<
memPrefix
<<
"kind = '"
<<
memType
<<
"';"
<<
endl
;
t
<<
memPrefix
<<
"id = '"
<<
def
->
getOutputFileBase
()
<<
"_1"
<<
md
->
anchor
()
<<
md
->
getOutputFileBase
()
<<
"_1"
<<
md
->
anchor
()
<<
"';"
<<
endl
;
t
<<
memPrefix
<<
"virt = "
;
...
...
src/definition.cpp
View file @
f62ec116
...
...
@@ -51,12 +51,13 @@ static void addToMap(const char *name,Definition *d)
}
//printf("******* adding symbol `%s'\n",symbolName.data());
dl
->
append
(
d
);
d
->
setSymbolName
(
symbolName
);
}
}
static
void
removeFromMap
(
Definition
*
d
)
{
QCString
symbolName
=
d
->
n
ame
();
QCString
symbolName
=
d
->
symbolN
ame
();
int
index
=
symbolName
.
findRev
(
"::"
);
if
(
index
!=-
1
)
symbolName
=
symbolName
.
mid
(
index
+
2
);
if
(
!
symbolName
.
isEmpty
())
...
...
@@ -510,8 +511,8 @@ void Definition::writeSourceRefList(OutputList &ol,const char *scopeName,
if
(
md
->
isFunction
()
||
md
->
isSlot
()
||
md
->
isPrototype
()
||
md
->
isSignal
()
)
name
+=
"()"
;
Definition
*
d
=
md
->
getOuterScop
e
();
if
(
d
==
Doxygen
::
globalScope
)
d
=
md
->
getBodyDef
();
//Definition *d = md->getOutputFileBas
e();
//
if (d==Doxygen::globalScope) d=md->getBodyDef();
if
(
md
->
getStartBodyLine
()
!=-
1
&&
md
->
getBodyDef
())
{
//printf("md->getBodyDef()=%p global=%p\n",md->getBodyDef(),Doxygen::globalScope);
...
...
@@ -530,12 +531,13 @@ void Definition::writeSourceRefList(OutputList &ol,const char *scopeName,
ol
.
docify
(
name
);
ol
.
popGeneratorState
();
}
else
if
(
md
->
isLinkable
()
&&
d
&&
d
->
isLinkable
()
)
else
if
(
md
->
isLinkable
()
/*&& d && d->isLinkable()*/
)
{
// for HTML write a real link
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
writeObjectLink
(
d
->
getReference
(),
d
->
getOutputFileBase
(),
ol
.
writeObjectLink
(
md
->
getReference
(),
md
->
getOutputFileBase
(),
md
->
anchor
(),
name
);
ol
.
popGeneratorState
();
...
...
src/definition.h
View file @
f62ec116
...
...
@@ -84,6 +84,10 @@ class Definition
virtual
bool
isLinkable
()
const
=
0
;
virtual
QCString
getReference
()
const
{
return
m_ref
;
}
// symbols
QCString
symbolName
()
const
{
return
m_symbolName
;
}
void
setSymbolName
(
const
QCString
&
name
)
{
m_symbolName
=
name
;
}
virtual
bool
isReference
()
const
{
return
!
m_ref
.
isEmpty
();
}
void
setReference
(
const
char
*
r
)
{
m_ref
=
r
;
}
...
...
@@ -174,6 +178,7 @@ class Definition
int
m_briefLine
;
QCString
m_briefFile
;
QList
<
ListItemInfo
>
*
m_xrefListItems
;
QCString
m_symbolName
;
};
class
DefinitionList
:
public
QList
<
Definition
>
...
...
src/docparser.cpp
View file @
f62ec116
...
...
@@ -705,8 +705,8 @@ static void handleLinkedWord(DocNode *parent,QList<DocNode> &children)
{
children
.
append
(
new
DocLinkedWord
(
parent
,
name
,
compound
->
getReference
(),
compound
->
getOutputFileBase
(),
member
->
getReference
(),
member
->
getOutputFileBase
(),
member
->
anchor
()
)
);
...
...
src/dot.cpp
View file @
f62ec116
...
...
@@ -1886,25 +1886,10 @@ DotCallGraph::DotCallGraph(MemberDef *md,int maxRecursionDepth)
{
m_maxDistance
=
0
;
m_recDepth
=
maxRecursionDepth
;
if
(
md
->
getGroupDef
())
{
m_diskName
=
md
->
getGroupDef
()
->
getOutputFileBase
()
+
"_"
+
md
->
getBodyAnchor
();
}
else
{
m_diskName
=
md
->
getOutputFileBase
()
+
"_"
+
md
->
anchor
();
}
m_diskName
=
md
->
getOutputFileBase
()
+
"_"
+
md
->
anchor
();
QCString
uniqueId
;
if
(
md
->
getGroupDef
())
// member is in a group
{
uniqueId
=
md
->
getReference
()
+
"$"
+
md
->
getGroupDef
()
->
getOutputFileBase
()
+
"#"
+
md
->
getBodyAnchor
();
}
else
// ungrouped member
{
uniqueId
=
md
->
getReference
()
+
"$"
+
md
->
getOutputFileBase
()
+
"#"
+
md
->
anchor
();
}
uniqueId
=
md
->
getReference
()
+
"$"
+
md
->
getOutputFileBase
()
+
"#"
+
md
->
anchor
();
m_startNode
=
new
DotNode
(
m_curNodeNumber
++
,
md
->
qualifiedName
(),
uniqueId
.
data
(),
...
...
@@ -2049,16 +2034,8 @@ void DotCallGraph::buildGraph(DotNode *n,MemberDef *md,int distance)
if
(
rmd
->
isFunction
())
{
QCString
uniqueId
;
if
(
rmd
->
getGroupDef
())
// member is in a group
{
uniqueId
=
rmd
->
getReference
()
+
"$"
+
rmd
->
getGroupDef
()
->
getOutputFileBase
()
+
"#"
+
rmd
->
getBodyAnchor
();
}
else
// ungrouped member
{
uniqueId
=
rmd
->
getReference
()
+
"$"
+
rmd
->
getOutputFileBase
()
+
"#"
+
rmd
->
anchor
();
}
uniqueId
=
rmd
->
getReference
()
+
"$"
+
rmd
->
getOutputFileBase
()
+
"#"
+
rmd
->
anchor
();
DotNode
*
bn
=
m_usedNodes
->
find
(
uniqueId
);
if
(
bn
)
// file is already a node in the graph
{
...
...
src/doxygen.cpp
View file @
f62ec116
...
...
@@ -1298,11 +1298,13 @@ static void findUsingDeclImports(Entry *root)
{
newMd
->
setDocumentation
(
root
->
doc
,
root
->
docFile
,
root
->
docLine
);
newMd
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
newMd
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
}
else
{
newMd
->
setDocumentation
(
md
->
documentation
(),
md
->
docFile
(),
md
->
docLine
());
newMd
->
setBriefDescription
(
md
->
briefDescription
(),
md
->
briefFile
(),
md
->
briefLine
());
newMd
->
setInbodyDocumentation
(
md
->
inbodyDocumentation
(),
md
->
inbodyFile
(),
md
->
inbodyLine
());
}
newMd
->
setDefinition
(
md
->
definition
());
newMd
->
enableCallGraph
(
root
->
callGraph
);
...
...
@@ -1453,6 +1455,7 @@ static MemberDef *addVariableToClass(
//md->setDefLine(root->startLine);
md
->
setDocumentation
(
root
->
doc
,
root
->
docFile
,
root
->
docLine
);
md
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
md
->
setDefinition
(
def
);
md
->
setBitfields
(
root
->
bitfields
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
...
...
@@ -1599,8 +1602,9 @@ static MemberDef *addVariableToFile(
// merge ingroup specifiers
if
(
md
->
getGroupDef
()
==
0
&&
root
->
groups
->
first
())
{
GroupDef
*
gd
=
Doxygen
::
groupSDict
[
root
->
groups
->
first
()
->
groupname
.
data
()];
md
->
setGroupDef
(
gd
,
root
->
groups
->
first
()
->
pri
,
root
->
fileName
,
root
->
startLine
,
!
root
->
doc
.
isEmpty
());
//GroupDef *gd=Doxygen::groupSDict[root->groups->first()->groupname.data()];
//md->setGroupDef(gd, root->groups->first()->pri, root->fileName, root->startLine, !root->doc.isEmpty());
addMemberToGroups
(
root
,
md
);
}
else
if
(
md
->
getGroupDef
()
!=
0
&&
root
->
groups
->
count
()
==
0
)
{
...
...
@@ -1624,6 +1628,7 @@ static MemberDef *addVariableToFile(
//md->setDefLine(root->startLine);
md
->
setDocumentation
(
root
->
doc
,
root
->
docFile
,
root
->
docLine
);
md
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
md
->
setFromAnonymousScope
(
fromAnnScope
);
md
->
setFromAnonymousMember
(
fromAnnMemb
);
...
...
@@ -2041,6 +2046,7 @@ static void addMethodToClass(Entry *root,ClassDef *cd,
md
->
setDocumentation
(
root
->
doc
,
root
->
docFile
,
root
->
docLine
);
md
->
setDocsForDefinition
(
!
root
->
proto
);
md
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
md
->
setBodySegment
(
root
->
bodyLine
,
root
->
endBodyLine
);
md
->
setMemberSpecifiers
(
root
->
memSpec
);
md
->
setMemberGroupId
(
root
->
mGrpId
);
...
...
@@ -2289,6 +2295,7 @@ static void buildFunctionList(Entry *root)
if
(
md
->
documentation
().
isEmpty
()
&&
!
root
->
doc
.
isEmpty
())
{
md
->
setDocumentation
(
root
->
doc
,
root
->
docFile
,
root
->
docLine
);
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
md
->
setDocsForDefinition
(
!
root
->
proto
);
ArgumentList
*
argList
=
new
ArgumentList
;
stringToArgumentList
(
root
->
args
,
argList
);
...
...
@@ -2346,14 +2353,15 @@ static void buildFunctionList(Entry *root)
// the documented implementation below it from being added
//addMemberToGroups(root,md);
//GroupDef *gd=Doxygen::groupSDict[root->groups->first()->groupname.data()];
if
(
gd
)
{
bool
success
=
gd
->
insertMember
(
md
);
if
(
success
)
{
md
->
setGroupDef
(
gd
,
root
->
groups
->
first
()
->
pri
,
root
->
fileName
,
root
->
startLine
,
!
root
->
doc
.
isEmpty
());
}
}
//if (gd)
//{
// bool success = gd->insertMember(md);
// if (success)
// {
// md->setGroupDef(gd, root->groups->first()->pri, root->fileName, root->startLine, !root->doc.isEmpty());
// }
//}
addMemberToGroups
(
root
,
md
);
}
else
if
(
md
->
getGroupDef
()
!=
0
&&
root
->
groups
->
count
()
==
0
)
{
...
...
@@ -2391,6 +2399,7 @@ static void buildFunctionList(Entry *root)
//md->setDefLine(root->startLine);
md
->
setDocumentation
(
root
->
doc
,
root
->
docFile
,
root
->
docLine
);
md
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
md
->
setPrototype
(
root
->
proto
);
md
->
setDocsForDefinition
(
!
root
->
proto
);
//md->setBody(root->body);
...
...
@@ -2565,18 +2574,26 @@ static void findFriends()
{
fmd
->
setBriefDescription
(
mmd
->
briefDescription
(),
mmd
->
briefFile
(),
mmd
->
briefLine
());
}
if
(
!
fmd
->
inbodyDocumentation
().
isEmpty
())
{
mmd
->
setInbodyDocumentation
(
fmd
->
inbodyDocumentation
(),
fmd
->
inbodyFile
(),
fmd
->
inbodyLine
());
}
else
if
(
!
mmd
->
inbodyDocumentation
().
isEmpty
())
{
fmd
->
setInbodyDocumentation
(
mmd
->
inbodyDocumentation
(),
mmd
->
inbodyFile
(),
mmd
->
inbodyLine
());
}
//printf("body mmd %d fmd %d\n",mmd->getStartBodyLine(),fmd->getStartBodyLine());
if
(
mmd
->
getStartBodyLine
()
==-
1
&&
fmd
->
getStartBodyLine
()
!=-
1
)
{
mmd
->
setBodySegment
(
fmd
->
getStartBodyLine
(),
fmd
->
getEndBodyLine
());
mmd
->
setBodyDef
(
fmd
->
getBodyDef
());
mmd
->
setBodyMember
(
fmd
);
//
mmd->setBodyMember(fmd);
}
else
if
(
mmd
->
getStartBodyLine
()
!=-
1
&&
fmd
->
getStartBodyLine
()
==-
1
)
{
fmd
->
setBodySegment
(
mmd
->
getStartBodyLine
(),
mmd
->
getEndBodyLine
());
fmd
->
setBodyDef
(
mmd
->
getBodyDef
());
fmd
->
setBodyMember
(
mmd
);
//
fmd->setBodyMember(mmd);
}
mmd
->
setDocsForDefinition
(
fmd
->
isDocsForDefinition
());
...
...
@@ -2696,19 +2713,27 @@ static void transferFunctionDocumentation()
mdef
->
setDeclArgumentList
(
mdecAl
);
}
}
if
(
!
mdef
->
inbodyDocumentation
().
isEmpty
())
{
mdec
->
setInbodyDocumentation
(
mdef
->
inbodyDocumentation
(),
mdef
->
inbodyFile
(),
mdef
->
inbodyLine
());
}
else
if
(
!
mdec
->
inbodyDocumentation
().
isEmpty
())
{
mdef
->
setInbodyDocumentation
(
mdec
->
inbodyDocumentation
(),
mdec
->
inbodyFile
(),
mdec
->
inbodyLine
());
}
if
(
mdec
->
getStartBodyLine
()
!=-
1
&&
mdef
->
getStartBodyLine
()
==-
1
)
{
//printf("body mdec->mdef %d-%d\n",mdec->getStartBodyLine(),mdef->getEndBodyLine());
mdef
->
setBodySegment
(
mdec
->
getStartBodyLine
(),
mdec
->
getEndBodyLine
());
mdef
->
setBodyDef
(
mdec
->
getBodyDef
());
mdef
->
setBodyMember
(
mdec
);
//
mdef->setBodyMember(mdec);
}
else
if
(
mdef
->
getStartBodyLine
()
!=-
1
&&
mdec
->
getStartBodyLine
()
==-
1
)
{
//printf("body mdef->mdec %d-%d\n",mdef->getStartBodyLine(),mdec->getEndBodyLine());
mdec
->
setBodySegment
(
mdef
->
getStartBodyLine
(),
mdef
->
getEndBodyLine
());
mdec
->
setBodyDef
(
mdef
->
getBodyDef
());
mdec
->
setBodyMember
(
mdef
);
//
mdec->setBodyMember(mdef);
}
mdec
->
mergeMemberSpecifiers
(
mdef
->
getMemberSpecifiers
());
mdef
->
mergeMemberSpecifiers
(
mdec
->
getMemberSpecifiers
());
...
...
@@ -3902,6 +3927,7 @@ static void addMemberDocs(Entry *root,
doc
+=
root
->
doc
;
}
md
->
setDocumentation
(
doc
,
root
->
docFile
,
root
->
docLine
);
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
md
->
setDocsForDefinition
(
!
root
->
proto
);
}
else
...
...
@@ -3937,6 +3963,15 @@ static void addMemberDocs(Entry *root,
//printf("overwrite!\n");
md
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
}
if
(
(
md
->
inbodyDocumentation
().
isEmpty
()
||
!
root
->
parent
->
name
.
isEmpty
()
)
&&
!
root
->
inbodyDocs
.
isEmpty
()
)
{
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
}
}
if
(
md
->
initializer
().
isEmpty
()
&&
!
root
->
initializer
.
isEmpty
())
...
...
@@ -4815,6 +4850,7 @@ static void findMember(Entry *root,
doc
+=
"<p>"
;
doc
+=
root
->
doc
;
md
->
setDocumentation
(
doc
,
root
->
docFile
,
root
->
docLine
);
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
md
->
setDocsForDefinition
(
!
root
->
proto
);
md
->
setPrototype
(
root
->
proto
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
...
...
@@ -4946,7 +4982,7 @@ static void findMember(Entry *root,
{
md
->
setBodySegment
(
rmd
->
getStartBodyLine
(),
rmd
->
getEndBodyLine
());
md
->
setBodyDef
(
rmd
->
getBodyDef
());
md
->
setBodyMember
(
rmd
);
//
md->setBodyMember(rmd);
}
}
}
...
...
@@ -4968,6 +5004,7 @@ static void findMember(Entry *root,
md
->
setDefinition
(
funcDecl
);
md
->
enableCallGraph
(
root
->
callGraph
);
md
->
setDocumentation
(
root
->
doc
,
root
->
docFile
,
root
->
docLine
);
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
md
->
setDocsForDefinition
(
!
root
->
proto
);
md
->
setPrototype
(
root
->
proto
);
md
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
...
...
@@ -5275,6 +5312,7 @@ static void findEnums(Entry *root)
md
->
setDocumentation
(
root
->
doc
,
root
->
docFile
,
root
->
docLine
);
md
->
setDocsForDefinition
(
!
root
->
proto
);
md
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
//printf("Adding member=%s\n",md->name().data());
MemberName
*
mn
;
...
...
@@ -5417,6 +5455,11 @@ static void findEnumDocumentation(Entry *root)
md
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
}
if
(
!
md
->
inbodyDocumentation
()
||
!
root
->
parent
->
name
.
isEmpty
())
{
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
}
if
(
root
->
mGrpId
!=-
1
&&
md
->
getMemberGroupId
()
==-
1
)
{
md
->
setMemberGroupId
(
root
->
mGrpId
);
...
...
@@ -5441,6 +5484,7 @@ static void findEnumDocumentation(Entry *root)
md
->
setDocumentation
(
root
->
doc
,
root
->
docFile
,
root
->
docLine
);
md
->
setDocsForDefinition
(
!
root
->
proto
);
md
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
md
->
setMemberGroupId
(
root
->
mGrpId
);
found
=
TRUE
;
...
...
@@ -5858,6 +5902,7 @@ static void inheritDocumentation()
md
->
setDocumentation
(
bmd
->
documentation
(),
bmd
->
docFile
(),
bmd
->
docLine
());
md
->
setDocsForDefinition
(
bmd
->
isDocsForDefinition
());
md
->
setBriefDescription
(
bmd
->
briefDescription
(),
bmd
->
briefFile
(),
bmd
->
briefLine
());
md
->
setInbodyDocumentation
(
bmd
->
inbodyDocumentation
(),
bmd
->
inbodyFile
(),
bmd
->
inbodyLine
());
}
}
}
...
...
@@ -6089,7 +6134,13 @@ static void findDefineDocumentation(Entry *root)
md
->
setDocsForDefinition
(
!
root
->
proto
);
}
if
(
md
->
briefDescription
().
isEmpty
())
{
md
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
}
if
(
md
->
inbodyDocumentation
().
isEmpty
())
{
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
}
md
->
setBodySegment
(
root
->
bodyLine
,
root
->
endBodyLine
);
bool
ambig
;
md
->
setBodyDef
(
findFileDef
(
Doxygen
::
inputNameDict
,
root
->
fileName
,
ambig
));
...
...
@@ -6126,7 +6177,13 @@ static void findDefineDocumentation(Entry *root)
md
->
setDocsForDefinition
(
!
root
->
proto
);
}
if
(
md
->
briefDescription
().
isEmpty
())
{
md
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
}
if
(
md
->
inbodyDocumentation
().
isEmpty
())
{
md
->
setInbodyDocumentation
(
root
->
inbodyDocs
,
root
->
inbodyFile
,
root
->
inbodyLine
);
}
md
->
setBodySegment
(
root
->
bodyLine
,
root
->
endBodyLine
);
bool
ambig
;
md
->
setBodyDef
(
findFileDef
(
Doxygen
::
inputNameDict
,
root
->
fileName
,
ambig
));
...
...
@@ -8101,7 +8158,6 @@ void parseInput()
msg
(
"Adding source references...
\n
"
);
addSourceReferences
();
msg
(
"Adding todo/test/bug list items...
\n
"
);
addListReferences
();
...
...
src/entry.cpp
View file @
f62ec116
...
...
@@ -74,6 +74,9 @@ Entry::Entry(const Entry &e)
brief
=
e
.
brief
.
copy
();
briefLine
=
e
.
briefLine
;
briefFile
=
e
.
briefFile
.
copy
();
inbodyDocs
=
e
.
inbodyDocs
.
copy
();
inbodyLine
=
e
.
inbodyLine
;
inbodyFile
=
e
.
inbodyFile
.
copy
();
inside
=
e
.
inside
.
copy
();
fileName
=
e
.
fileName
.
copy
();
startLine
=
e
.
startLine
;
...
...
@@ -233,6 +236,9 @@ void Entry::reset()
brief
.
resize
(
0
);
briefFile
.
resize
(
0
);
briefLine
=-
1
;
inbodyDocs
.
resize
(
0
);
inbodyFile
.
resize
(
0
);
inbodyLine
=-
1
;
inside
.
resize
(
0
);
fileName
.
resize
(
0
);
//scopeSpec.resize(0);
...
...
@@ -285,6 +291,8 @@ int Entry::getSize()
size
+=
relates
.
length
()
+
1
;
size
+=
brief
.
length
()
+
1
;
size
+=
briefFile
.
length
()
+
1
;
size
+=
inbodyDocs
.
length
()
+
1
;
size
+=
inbodyFile
.
length
()
+
1
;
size
+=
inside
.
length
()
+
1
;
size
+=
fileName
.
length
()
+
1
;
size
+=
initializer
.
length
()
+
1
;
...
...
src/entry.h
View file @
f62ec116
...
...
@@ -274,6 +274,9 @@ class Entry
QCString
brief
;
//!< brief description (doc block)
int
briefLine
;
//!< line number at which the brief desc. was found
QCString
briefFile
;
//!< file in which the brief desc. was found
QCString
inbodyDocs
;
//!< documentation inside the body of a function
int
inbodyLine
;
//!< line number at which the body doc was found
QCString
inbodyFile
;
//!< file in which the body doc was found
QCString
relates
;
//!< related class (doc block)
bool
relatesDup
;
//!< keep duplicate doc in original file also
QCString
inside
;
//!< name of the class in which documents are found
...
...
src/filedef.cpp
View file @
f62ec116
...
...
@@ -223,7 +223,7 @@ void FileDef::writeDocumentation(OutputList &ol)
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
()
+
Config_getString
(
"HTML_FILE_EXTENSION"
)
);
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
}
...
...
src/groupdef.cpp
View file @
f62ec116
...
...
@@ -208,6 +208,7 @@ bool GroupDef::insertMember(MemberDef *md,bool docOnly)
sameScope
)
{
md
->
setGroupAlias
(
srcMd
);
return
FALSE
;
// member already added
}
}
...
...
@@ -364,9 +365,10 @@ int GroupDef::countMembers() const
exampleDict
->
count
();
}
/*! Compute the HTML anchor names for all members in the
class
*/
/*! Compute the HTML anchor names for all members in the
group
*/
void
GroupDef
::
computeAnchors
()
{
//printf("GroupDef::computeAnchors()\n");
setAnchors
(
0
,
'a'
,
allMemberList
);
}
...
...
@@ -416,7 +418,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
title
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
setCurrentDoc
(
title
,
getOutputFileBase
()
+
Config_getString
(
"HTML_FILE_EXTENSION"
)
);
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
}
...
...
src/htmlgen.cpp
View file @
f62ec116
...
...
@@ -1407,7 +1407,10 @@ void HtmlGenerator::writeSearchPage()
}
t
<<
"<!-- "
<<
theTranslator
->
trGeneratedBy
()
<<
" Doxygen "
<<
versionString
<<
" -->"
<<
endl
;
writeDefaultQuickLinks
(
t
,
TRUE
,
HLI_Search
);
if
(
!
Config_getBool
(
"DISABLE_INDEX"
))
{
writeDefaultQuickLinks
(
t
,
TRUE
,
HLI_Search
);
}
t
<<
"<?php
\n\n
"
;
t
<<
"function search_results()
\n
"
;
...
...
src/index.cpp
View file @
f62ec116
...
...
@@ -1678,15 +1678,15 @@ void writeMemberList(OutputList &ol,bool useSections,ClassMemberHighlight filter
ClassDef
*
cd
=
md
->
getClassDef
();
if
(
md
->
isLinkableInProject
()
&&
prevName
!=
cd
->
displayName
()
&&
cd
->
isLinkableInProject
()
&&
cd
->
templateMaster
()
==
0
prevName
!=
cd
->
displayName
()
&&
cd
->
templateMaster
()
==
0
)
{
if
(
count
==
0
)
ol
.
docify
(
": "
);
else
ol
.
docify
(
", "
);
ol
.
writeObjectLink
(
cd
->
getReference
(),
c
d
->
getOutputFileBase
(),
md
->
anchor
(),
ol
.
writeObjectLink
(
md
->
getReference
(),
m
d
->
getOutputFileBase
(),
md
->
anchor
(),
cd
->
displayName
());
count
++
;
prevName
=
cd
->
displayName
();
...
...
@@ -1965,9 +1965,7 @@ static void writeFileMemberList(OutputList &ol,
while
(
md
)
{
FileDef
*
fd
=
md
->
getFileDef
();
bool
hasDocs
=
md
->
getFileDef
()
&&
md
->
getFileDef
()
->
isLinkableInProject
();
if
(
fd
&&
hasDocs
&&
if
(
fd
&&
fd
->
isLinkableInProject
()
&&
md
->
isLinkableInProject
()
&&
prevName
!=
fd
->
name
())
{
...
...
@@ -1975,9 +1973,9 @@ static void writeFileMemberList(OutputList &ol,
ol
.
docify
(
": "
);
else
ol
.
docify
(
", "
);
QCString
baseName
=
fd
->
name
()
.
copy
()
;
ol
.
writeObjectLink
(
f
d
->
getReference
(),
f
d
->
getOutputFileBase
(),
md
->
anchor
(),
baseName
);
QCString
baseName
=
fd
->
name
();
ol
.
writeObjectLink
(
m
d
->
getReference
(),
m
d
->
getOutputFileBase
(),
md
->
anchor
(),
baseName
);
count
++
;
prevName
=
fd
->
name
();
}
...
...
@@ -2064,7 +2062,7 @@ void writeNamespaceMemberList(OutputList &ol,bool useSections,
ol
.
docify
(
": "
);
else
ol
.
docify
(
", "
);
ol
.
writeObjectLink
(
nd
->
getReference
(),
n
d
->
getOutputFileBase
(),
ol
.
writeObjectLink
(
md
->
getReference
(),
m
d
->
getOutputFileBase
(),
md
->
anchor
(),
nd
->
name
());
count
++
;
prevName
=
nd
->
name
();
...
...
@@ -2734,14 +2732,13 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
ftvHelp
->
incContentsDepth
();
}
}
GroupDef
*
gd
=
md
->
getGroupDef
();
if
(
htmlHelp
)
{
htmlHelp
->
addContentsItem
(
FALSE
,
md
->
name
(),
g
d
->
getOutputFileBase
(),
md
->
anchor
());
htmlHelp
->
addContentsItem
(
FALSE
,
md
->
name
(),
m
d
->
getOutputFileBase
(),
md
->
anchor
());
}
if
(
ftvHelp
)
{
ftvHelp
->
addContentsItem
(
FALSE
,
gd
->
getReference
(),
g
d
->
getOutputFileBase
(),
md
->
anchor
(),
md
->
name
());
ftvHelp
->
addContentsItem
(
FALSE
,
md
->
getReference
(),
m
d
->
getOutputFileBase
(),
md
->
anchor
(),
md
->
name
());
}
}
md
=
members
->
next
();
...
...
src/memberdef.cpp
View file @
f62ec116
...
...
@@ -316,7 +316,7 @@ MemberDef::MemberDef(const char *df,int dl,
annEnumType
=
0
;
//indDepth=0;
section
=
0
;
bodyMemb
=
0
;
groupAlias
=
0
;
explExt
=
FALSE
;
cachedAnonymousType
=
0
;
maxInitLines
=
Config_getInt
(
"MAX_INITIALIZER_LINES"
);
...
...
@@ -377,6 +377,7 @@ MemberDef::MemberDef(const char *df,int dl,
docsForDefinition
=
TRUE
;
m_isTypedefValCached
=
FALSE
;
m_cachedTypedefValue
=
0
;
m_inbodyLine
=
-
1
;
}
/*! Destroys the member definition. */
...
...
@@ -461,6 +462,10 @@ QCString MemberDef::getOutputFileBase() const
{
return
m_templateMaster
->
getOutputFileBase
();
}
else
if
(
group
)
{
return
group
->
getOutputFileBase
();
}
else
if
(
classDef
)
{
return
classDef
->
getOutputFileBase
();
...
...
@@ -469,10 +474,6 @@ QCString MemberDef::getOutputFileBase() const
{
return
nspace
->
getOutputFileBase
();
}
//else if (group)
//{
// return group->getOutputFileBase();
//}
else
if
(
fileDef
)
{
return
fileDef
->
getOutputFileBase
();
...
...
@@ -484,6 +485,105 @@ QCString MemberDef::getOutputFileBase() const
return
"dummy"
;
}
QCString
MemberDef
::
getReference
()
const
{
if
(
m_templateMaster
)
{
return
m_templateMaster
->
getReference
();
}
else
if
(
group
)
{
return
group
->
getReference
();
}
else
if
(
classDef
)
{
return
classDef
->
getReference
();
}
else
if
(
nspace
)
{
return
nspace
->
getReference
();
}
else
if
(
fileDef
)
{
return
fileDef
->
getReference
();
}
return
""
;
}
QCString
MemberDef
::
anchor
()
const
{
QCString
result
=
anc
;
if
(
groupAlias
)
return
groupAlias
->
anchor
();
if
(
m_templateMaster
)
return
m_templateMaster
->
anchor
();
if
(
enumScope
)
result
.
prepend
(
enumScope
->
anchor
());
if
(
group
)
result
.
prepend
(
"g"
);
return
result
;
}
bool
MemberDef
::
isLinkableInProject
()
const
{
//printf("MemberDef::isLinkableInProject()\n");
if
(
m_templateMaster
)
{
return
m_templateMaster
->
isLinkableInProject
();
}
if
(
name
().
isEmpty
()
||
name
().
at
(
0
)
==
'@'
)
{
//printf("name invalid\n");
return
FALSE
;
// not a valid or a dummy name
}
if
(
!
hasDocumentation
()
&&
!
isReference
())
{
//printf("no docs or reference\n");
return
FALSE
;
// no documentation
}
if
(
group
&&
!
group
->
isLinkableInProject
())
{
//printf("group but group not linkable!\n");
return
FALSE
;
// group but group not linkable
}
if
(
!
group
&&
classDef
&&
!
classDef
->
isLinkableInProject
())
{
//printf("in a class but class not linkable!\n");
return
FALSE
;
// in class but class not linkable
}
if
(
!
group
&&
nspace
&&
!
nspace
->
isLinkableInProject
())
{
//printf("in a namespace but namespace not linkable!\n");
return
FALSE
;
// in namespace but namespace not linkable
}
if
(
!
group
&&
fileDef
&&
!
fileDef
->
isLinkableInProject
())
{
//printf("in a file but file not linkable!\n");
return
FALSE
;
// in file but file not linkable
}
if
(
prot
==
Private
&&
!
Config_getBool
(
"EXTRACT_PRIVATE"
)
&&
mtype
!=
Friend
)
{
//printf("private and invisible!\n");
return
FALSE
;
// hidden due to protection
}
if
(
isStatic
()
&&
classDef
==
0
&&
!
Config_getBool
(
"EXTRACT_STATIC"
))
{
//printf("static and invisible!\n");
return
FALSE
;
// hidden due to staticness
}
//printf("linkable!\n");
return
TRUE
;
// linkable!
}
bool
MemberDef
::
isLinkable
()
const
{
if
(
m_templateMaster
)
{
return
m_templateMaster
->
isLinkable
();
}
else
{
return
isLinkableInProject
()
||
isReference
();
}
}
void
MemberDef
::
setDefinitionTemplateParameterLists
(
QList
<
ArgumentList
>
*
lists
)
{
if
(
lists
)
...
...
@@ -493,24 +593,24 @@ void MemberDef::setDefinitionTemplateParameterLists(QList<ArgumentList> *lists)
}
}
void
MemberDef
::
writeLink
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
GroupDef
*
gd
)
void
MemberDef
::
writeLink
(
OutputList
&
ol
,
ClassDef
*
,
NamespaceDef
*
,
FileDef
*
,
GroupDef
*
gd
)
{
Definition
*
d
=
0
;
if
(
cd
)
d
=
cd
;
else
if
(
nd
)
d
=
nd
;
else
if
(
fd
)
d
=
fd
;
else
if
(
gd
)
d
=
gd
;
if
(
d
==
0
)
{
err
(
"Member %s without definition! Please report this bug!
\n
"
,
name
().
data
());
return
;
}
if
(
group
!=
0
&&
gd
==
0
)
// forward link to the group
{
ol
.
writeObjectLink
(
group
->
getReference
(),
group
->
getOutputFileBase
(),
anchor
(),
name
());
}
else
// local link
{
//
Definition *d=0;
//
if (cd) d=cd; else if (nd) d=nd; else if (fd) d=fd; else if (gd) d=gd;
//
if (d==0) { err("Member %s without definition! Please report this bug!\n",name().data()); return; }
//
if (group!=0 && gd==0) // forward link to the group
//
{
//
ol.writeObjectLink(group->getReference(),group->getOutputFileBase(),anchor(),name());
//
}
//
else // local link
//
{
QCString
sep
=
Config_getBool
(
"OPTIMIZE_OUTPUT_JAVA"
)
?
"."
:
"::"
;
QCString
n
=
name
();
if
(
classDef
&&
gd
)
n
.
prepend
(
classDef
->
name
()
+
sep
);
else
if
(
nspace
&&
gd
)
n
.
prepend
(
nspace
->
name
()
+
sep
);
ol
.
writeObjectLink
(
d
->
getReference
(),
d
->
getOutputFileBase
(),
anchor
(),
n
);
}
ol
.
writeObjectLink
(
getReference
(),
getOutputFileBase
(),
anchor
(),
n
);
//
}
}
/*! If this member has an anonymous class/struct/union as its type, then
...
...
@@ -714,23 +814,23 @@ void MemberDef::writeDeclaration(OutputList &ol,
Doxygen
::
tagFile
<<
" </member>"
<<
endl
;
}
// write search index info
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
qualifiedName
(),
getOutputFileBase
()
+
Config_getString
(
"HTML_FILE_EXTENSION"
)
+
"#"
+
anchor
());
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
Doxygen
::
searchIndex
->
addWord
(
qualifiedName
().
lower
());
}
Definition
*
d
=
0
;
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
();
QCString
cfname
=
getOutputFileBase
();
QCString
osname
=
cname
;
// in case of class members that are put in a group the name of the outerscope
// differs from the cname.
if
(
getOuterScope
())
osname
=
getOuterScope
()
->
name
();
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
qualifiedName
(),
getOutputFileBase
()
+
Config_getString
(
"HTML_FILE_EXTENSION"
)
+
"#"
+
anchor
());
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
Doxygen
::
searchIndex
->
addWord
(
qualifiedName
().
lower
());
}
HtmlHelp
*
htmlHelp
=
0
;
...
...
@@ -951,18 +1051,18 @@ void MemberDef::writeDeclaration(OutputList &ol,
{
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
endEmphasis
();
//
ol.endEmphasis();
ol
.
docify
(
" "
);
if
(
group
!=
0
&&
gd
==
0
)
// forward link to the group
{
ol
.
startTextLink
(
g
roup
->
g
etOutputFileBase
(),
anchor
());
ol
.
startTextLink
(
getOutputFileBase
(),
anchor
());
}
else
else
// local link
{
ol
.
startTextLink
(
0
,
anchor
());
}
ol
.
endTextLink
();
ol
.
startEmphasis
();
//
ol.startEmphasis();
ol
.
popGeneratorState
();
}
//ol.newParagraph();
...
...
@@ -979,6 +1079,8 @@ bool MemberDef::isDetailedSectionLinkable() const
Config_getBool
(
"EXTRACT_ALL"
)
||
// has detailed docs
!
documentation
().
isEmpty
()
||
// has inbody docs
!
inbodyDocumentation
().
isEmpty
()
||
// is an enum with values that are documented
(
mtype
==
Enumeration
&&
docEnumValues
)
||
// is documented enum value
...
...
@@ -1047,7 +1149,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
}
QCString
cname
=
container
->
name
();
QCString
cfname
=
container
->
getOutputFileBase
();
QCString
cfname
=
getOutputFileBase
();
//ol.addIndexItem(name(),cname);
//ol.addIndexItem(cname,name());
...
...
@@ -1313,6 +1415,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
{
ol
.
parseDoc
(
docFile
(),
docLine
(),
getOuterScope
()
?
getOuterScope
()
:
container
,
this
,
detailed
+
"
\n
"
,
TRUE
,
FALSE
);
ol
.
pushGeneratorState
();
if
(
!
m_inbodyDocs
.
isEmpty
())
{
ol
.
newParagraph
();
ol
.
parseDoc
(
inbodyFile
(),
inbodyLine
(),
getOuterScope
()
?
getOuterScope
()
:
container
,
this
,
m_inbodyDocs
+
"
\n
"
,
TRUE
,
FALSE
);
}
ol
.
disableAllBut
(
OutputGenerator
::
RTF
);
ol
.
newParagraph
();
ol
.
popGeneratorState
();
...
...
@@ -1320,6 +1427,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
else
if
(
!
brief
.
isEmpty
()
&&
(
Config_getBool
(
"REPEAT_BRIEF"
)
||
!
Config_getBool
(
"BRIEF_MEMBER_DESC"
)))
{
if
(
!
m_inbodyDocs
.
isEmpty
())
{
ol
.
newParagraph
();
ol
.
parseDoc
(
inbodyFile
(),
inbodyLine
(),
getOuterScope
()
?
getOuterScope
()
:
container
,
this
,
m_inbodyDocs
+
"
\n
"
,
TRUE
,
FALSE
);
}
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
RTF
);
ol
.
newParagraph
();
...
...
@@ -1449,16 +1561,16 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
ol
.
parseText
(
reimplFromLine
.
left
(
markerPos
));
//text left from marker
if
(
bmd
->
isLinkable
())
// replace marker with link
{
Definition
*
bd
=
bmd
->
group
;
if
(
bd
==
0
)
bd
=
bcd
;
ol
.
writeObjectLink
(
b
d
->
getReference
(),
b
d
->
getOutputFileBase
(),
//
Definition *bd=bmd->group;
//
if (bd==0) bd=bcd;
ol
.
writeObjectLink
(
b
md
->
getReference
(),
bm
d
->
getOutputFileBase
(),
bmd
->
anchor
(),
bcd
->
displayName
());
//ol.writeObjectLink(bcd->getReference(),bcd->getOutputFileBase(),
// bmd->anchor(),bcd->name());
if
(
bd
->
isLinkableInProject
()
)
if
(
b
m
d
->
isLinkableInProject
()
)
{
writePageRef
(
ol
,
bd
->
getOutputFileBase
(),
bmd
->
anchor
());
writePageRef
(
ol
,
b
m
d
->
getOutputFileBase
(),
bmd
->
anchor
());
}
}
else
...
...
@@ -1544,15 +1656,12 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
{
//ol.writeObjectLink(bcd->getReference(),bcd->getOutputFileBase(),
// bmd->anchor(),bcd->name());
Definition
*
bd
;
if
(
bmd
->
group
)
bd
=
bmd
->
group
;
else
bd
=
bcd
;
ol
.
writeObjectLink
(
bd
->
getReference
(),
bd
->
getOutputFileBase
(),
ol
.
writeObjectLink
(
bmd
->
getReference
(),
bmd
->
getOutputFileBase
(),
bmd
->
anchor
(),
bcd
->
displayName
());
if
(
bd
->
isLinkableInProject
()
)
if
(
b
m
d
->
isLinkableInProject
()
)
{
writePageRef
(
ol
,
bd
->
getOutputFileBase
(),
bmd
->
anchor
());
writePageRef
(
ol
,
b
m
d
->
getOutputFileBase
(),
bmd
->
anchor
());
}
}
++
mli
;
...
...
@@ -1630,7 +1739,7 @@ void MemberDef::warnIfUndocumented()
// "isDocumentedFriendClass()=%d name()=%s prot=%d\n",
// d->isLinkable(),isLinkable(),isDocumentedFriendClass(),
// name().data(),prot);
if
(
d
&&
d
->
isLinkable
()
&&
!
isLinkable
()
&&
if
(
/*d && d->isLinkable() &&*/
!
isLinkable
()
&&
!
isDocumentedFriendClass
()
&&
name
().
find
(
'@'
)
==-
1
&&
(
prot
!=
Private
||
Config_getBool
(
"EXTRACT_PRIVATE"
))
...
...
@@ -1642,35 +1751,6 @@ void MemberDef::warnIfUndocumented()
}
bool
MemberDef
::
isLinkableInProject
()
const
{
if
(
m_templateMaster
)
{
return
m_templateMaster
->
isLinkableInProject
();
}
else
{
return
!
name
().
isEmpty
()
&&
name
().
at
(
0
)
!=
'@'
&&
(
hasDocumentation
()
&&
!
isReference
())
&&
(
prot
!=
Private
||
Config_getBool
(
"EXTRACT_PRIVATE"
)
||
mtype
==
Friend
)
&&
// not a hidden member due to protection
(
classDef
!=
0
||
Config_getBool
(
"EXTRACT_STATIC"
)
||
!
isStatic
());
// not a static file/namespace member
}
}
bool
MemberDef
::
isLinkable
()
const
{
if
(
m_templateMaster
)
{
return
m_templateMaster
->
isLinkable
();
}
else
{
return
isLinkableInProject
()
||
isReference
();
}
}
//void MemberDef::setEnumDecl(OutputList &ed)
//{
// enumDeclList=new OutputList(&ed);
...
...
@@ -1689,6 +1769,7 @@ bool MemberDef::isDocumentedFriendClass() const
bool
MemberDef
::
hasDocumentation
()
const
{
return
Definition
::
hasDocumentation
()
||
!
m_inbodyDocs
.
isEmpty
()
||
(
mtype
==
Enumeration
&&
docEnumValues
)
||
// has enum values
(
defArgList
!=
0
&&
defArgList
->
hasDocumentation
());
// has doc arguments
}
...
...
@@ -1717,13 +1798,6 @@ void MemberDef::setAnchor(const char *a)
anc
=
a
;
}
QCString
MemberDef
::
anchor
()
const
{
if
(
m_templateMaster
)
return
m_templateMaster
->
anchor
();
if
(
enumScope
)
return
enumScope
->
anchor
()
+
anc
;
return
anc
;
}
void
MemberDef
::
setGroupDef
(
GroupDef
*
gd
,
Grouping
::
GroupPri_t
pri
,
const
QCString
&
fileName
,
int
startLine
,
bool
hasDocs
)
{
//printf("%s MemberDef::setGroupDef(%s)\n",name().data(),gd->name().data());
...
...
@@ -1792,7 +1866,7 @@ MemberDef *MemberDef::createTemplateInstanceMember(
imd
->
def
=
substituteTemplateArgumentsInString
(
def
,
formalArgs
,
actualArgs
);
imd
->
setBodyDef
(
getBodyDef
());
imd
->
setBodySegment
(
getStartBodyLine
(),
getEndBodyLine
());
imd
->
setBodyMember
(
this
);
//
imd->setBodyMember(this);
// TODO: init other member variables (if needed).
// TODO: reimplemented info
...
...
@@ -1824,7 +1898,7 @@ void MemberDef::setInitializer(const char *initializer)
initLines
=
init
.
contains
(
'\n'
);
}
void
MemberDef
::
addListReference
(
Definition
*
d
)
void
MemberDef
::
addListReference
(
Definition
*
)
{
visited
=
TRUE
;
if
(
!
isLinkableInProject
())
return
;
...
...
@@ -1855,7 +1929,7 @@ void MemberDef::addListReference(Definition *d)
}
//printf("*** addListReference %s todo=%d test=%d bug=%d\n",name().data(),todoId(),testId(),bugId());
addRefItem
(
xrefListItems
(),
memLabel
,
d
->
getOutputFileBase
()
+
"#"
+
anchor
(),
memName
,
argsString
());
getOutputFileBase
()
+
"#"
+
anchor
(),
memName
,
argsString
());
}
MemberList
*
MemberDef
::
getSectionList
(
Definition
*
d
)
const
...
...
@@ -2044,3 +2118,12 @@ bool MemberDef::protectionVisible() const
(
prot
==
Package
&&
Config_getBool
(
"EXTRACT_PACKAGE"
));
}
void
MemberDef
::
setInbodyDocumentation
(
const
char
*
docs
,
const
char
*
docFile
,
int
docLine
)
{
m_inbodyDocs
=
docs
;
m_inbodyDocs
=
m_inbodyDocs
.
stripWhiteSpace
();
m_inbodyLine
=
docLine
;
m_inbodyFile
=
docFile
;
}
src/memberdef.h
View file @
f62ec116
...
...
@@ -74,13 +74,14 @@ class MemberDef : public Definition
DefType
definitionType
()
{
return
TypeMember
;
}
QCString
getOutputFileBase
()
const
;
QCString
getReference
()
const
;
QCString
anchor
()
const
;
const
char
*
declaration
()
const
{
return
decl
;
}
const
char
*
definition
()
const
{
return
def
;
}
const
char
*
typeString
()
const
{
return
type
;
}
const
char
*
argsString
()
const
{
return
args
;
}
const
char
*
excpString
()
const
{
return
exception
;
}
const
char
*
bitfieldString
()
const
{
return
bitfields
;
}
QCString
anchor
()
const
;
const
QCString
&
initializer
()
const
{
return
init
;
}
int
initializerLines
()
const
{
return
initLines
;
}
int
getMemberSpecifiers
()
const
{
return
memSpec
;
}
...
...
@@ -175,6 +176,12 @@ class MemberDef : public Definition
MemberDef
*
reimplements
()
const
;
MemberList
*
reimplementedBy
()
const
;
// in-body documentation
void
setInbodyDocumentation
(
const
char
*
docs
,
const
char
*
file
,
int
line
);
int
inbodyLine
()
const
{
return
m_inbodyLine
;
}
QCString
inbodyFile
()
const
{
return
m_inbodyFile
;
}
const
QCString
&
inbodyDocumentation
()
const
{
return
m_inbodyDocs
;
}
// For function documentation that can also be found in a class's related func section.
void
setRelatedAlso
(
ClassDef
*
cd
)
{
m_relatedAlso
=
cd
;
}
ClassDef
*
relatedAlso
()
const
{
return
m_relatedAlso
;
}
...
...
@@ -245,12 +252,13 @@ class MemberDef : public Definition
void
setTemplateMaster
(
MemberDef
*
mt
)
{
m_templateMaster
=
mt
;
}
void
addListReference
(
Definition
*
d
);
QCString
getBodyAnchor
()
const
{
return
bodyMemb
?
bodyMemb
->
anchor
()
:
anchor
();
}
void
setBodyMember
(
MemberDef
*
md
)
{
bodyMemb
=
md
;
}
//
QCString getBodyAnchor() const
//
{
//
return bodyMemb ? bodyMemb->anchor() : anchor();
//
}
//
void setBodyMember(MemberDef *md) { bodyMemb = md; }
void
setDocsForDefinition
(
bool
b
)
{
docsForDefinition
=
b
;
}
void
setGroupAlias
(
MemberDef
*
md
)
{
groupAlias
=
md
;
}
// cached typedef functions
bool
isTypedefValCached
()
const
{
return
m_isTypedefValCached
;
}
...
...
@@ -295,7 +303,7 @@ class MemberDef : public Definition
QCString
decl
;
// member declaration in class
QCString
def
;
// member definition in code (fully qualified name)
QCString
anc
;
// HTML anchor name
MemberDef
*
bodyMemb
;
// Member containing the definition
MemberDef
*
groupAlias
;
// Member containing the definition
Specifier
virt
;
// normal/virtual/pure virtual
Protection
prot
;
// protection type [Public/Protected/Private]
bool
related
;
// is this a member that is only related to a class
...
...
@@ -345,7 +353,11 @@ class MemberDef : public Definition
bool
m_isTypedefValCached
;
ClassDef
*
m_cachedTypedefValue
;
// inbody documentation
int
m_inbodyLine
;
QCString
m_inbodyFile
;
QCString
m_inbodyDocs
;
};
#endif
src/membergroup.cpp
View file @
f62ec116
...
...
@@ -138,17 +138,22 @@ void MemberGroup::distributeMemberGroupDocumentation()
{
//printf("MemberGroup::distributeMemberGroupDocumentation() %s\n",grpHeader.data());
MemberDef
*
md
=
memberList
->
first
();
if
(
md
&&
!
(
md
->
documentation
().
isEmpty
()
&&
md
->
briefDescription
().
isEmpty
()))
if
(
md
&&
!
(
md
->
documentation
().
isEmpty
()
&&
md
->
briefDescription
().
isEmpty
()
&&
md
->
inbodyDocumentation
().
isEmpty
()
)
)
{
//printf("First member %s has documentation!\n",md->name().data());
MemberDef
*
omd
=
memberList
->
next
();
while
(
omd
)
{
if
(
omd
->
documentation
().
isEmpty
()
&&
omd
->
briefDescription
().
isEmpty
())
if
(
omd
->
documentation
().
isEmpty
()
&&
omd
->
briefDescription
().
isEmpty
()
&&
omd
->
inbodyDocumentation
().
isEmpty
()
)
{
//printf("Copying documentation to member %s\n",omd->name().data());
omd
->
setBriefDescription
(
md
->
briefDescription
(),
md
->
briefFile
(),
md
->
briefLine
());
omd
->
setDocumentation
(
md
->
documentation
(),
md
->
docFile
(),
md
->
docLine
());
omd
->
setInbodyDocumentation
(
md
->
inbodyDocumentation
(),
md
->
inbodyFile
(),
md
->
inbodyLine
());
}
omd
=
memberList
->
next
();
}
...
...
src/memberlist.cpp
View file @
f62ec116
...
...
@@ -247,8 +247,8 @@ void MemberList::writePlainDeclarations(OutputList &ol,
ol
.
docify
(
" "
);
if
(
md
->
getGroupDef
()
!=
0
&&
gd
==
0
)
// forward link to group
{
ol
.
startTextLink
(
md
->
get
GroupDef
()
->
get
OutputFileBase
(),
md
->
anchor
());
ol
.
startTextLink
(
md
->
getOutputFileBase
(),
md
->
anchor
());
}
else
{
...
...
src/namespacedef.cpp
View file @
f62ec116
...
...
@@ -263,7 +263,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
if
(
Config_getBool
(
"SEARCHENGINE"
))
{
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
());
Doxygen
::
searchIndex
->
setCurrentDoc
(
pageTitle
,
getOutputFileBase
()
+
Config_getString
(
"HTML_FILE_EXTENSION"
)
);
Doxygen
::
searchIndex
->
addWord
(
localName
().
lower
());
}
...
...
src/scanner.l
View file @
f62ec116
...
...
@@ -2740,7 +2740,12 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
{
// copy documentation found inside the body
// to the previous item
previous->doc += current->doc;
if (previous->inbodyLine==-1)
{
previous->inbodyLine = current->docLine;
previous->inbodyFile = current->docFile;
}
previous->inbodyDocs += current->doc;
current->doc.resize(0);
}
if (current->sli) // copy special list items
...
...
@@ -3159,6 +3164,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
<FindMembers,FindFields,MemberSpec,FuncQual,SkipCurly,Operator,ClassVar,SkipInits,Bases>("//"{B}*)?"/**"/[^/*] {
removeSlashes=(yytext[1]=='/');
lastDocContext = YY_START;
printf("Found comment block at %s:%d\n",yyFileName,yyLineNr);
if (current_root->section & Entry::SCOPE_MASK)
{
current->inside = current_root->name+"::";
...
...
@@ -3169,6 +3175,8 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
if (!Config_getBool("JAVADOC_AUTOBRIEF")) // use the Qt style
{
current->docLine = yyLineNr;
current->docFile = yyFileName;
tmpDocType=-1;
if (!Config_getBool("HIDE_IN_BODY_DOCS") &&
YY_START==SkipCurly) // inside body
...
...
@@ -3178,13 +3186,15 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
else
{
current->doc.resize(0);
current->docLine = yyLineNr;
current->docFile = yyFileName;
}
BEGIN( Doc );
}
else // Use the javadoc style
{
current->docLine = yyLineNr;
current->docFile = yyFileName;
current->briefLine = yyLineNr;
current->briefFile = yyFileName;
if (!Config_getBool("HIDE_IN_BODY_DOCS") &&
YY_START==SkipCurly) // inside body
{
...
...
@@ -3198,10 +3208,6 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
tmpDocType=Doc;
current->doc.resize(0);
current->brief.resize(0);
current->docLine = yyLineNr;
current->docFile = yyFileName;
current->briefLine = yyLineNr;
current->briefFile = yyFileName;
BEGIN( JavaDoc );
}
}
...
...
src/translator_de.h
View file @
f62ec116
...
...
@@ -79,7 +79,11 @@
//
// 2003/09/11 Jens Seidel (jensseidel@users.sourceforge.net)
// - Updated for "new since 1.3.1" version
//
//
// 2003/09/24 Jens Seidel (jensseidel@users.sourceforge.net)
// - Updated a few strings which changed in CVS revision 1.22
// ("compound" vs. "class")
//
// Todo:
// - see FIXME
...
...
@@ -213,7 +217,7 @@ class TranslatorGerman : public Translator
}
else
{
return
"
Übersich
t"
;
return
"
Auflistung der Klassen
"
;
}
}
...
...
@@ -223,7 +227,7 @@ class TranslatorGerman : public Translator
/*! This is put above each page as a link to the list of all verbatim headers */
virtual
QCString
trHeaderFiles
()
{
return
"
Auflistung der
Header-Dateien"
;
}
{
return
"Header-Dateien"
;
}
/*! This is put above each page as a link to all members of compounds. */
virtual
QCString
trCompoundMembers
()
...
...
@@ -234,7 +238,7 @@ class TranslatorGerman : public Translator
}
else
{
return
"
Datenstruktur
-Elemente"
;
return
"
Klassen
-Elemente"
;
}
}
...
...
@@ -392,9 +396,11 @@ class TranslatorGerman : public Translator
* annotated compound index.
*/
virtual
QCString
trCompoundIndex
()
/* No difference if "OPTIMIZE_OUTPUT_FOR_C" is set! */
{
return
"Datenstruktur-Verzeichnis"
;
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
return
"Datenstruktur-Verzeichnis"
;
else
return
"Klassen-Verzeichnis"
;
}
/*! This is used in LaTeX as the title of the chapter with the
...
...
@@ -541,7 +547,7 @@ class TranslatorGerman : public Translator
}
else
{
return
"
Übersich
t"
;
return
"
Klassen
"
;
}
}
...
...
src/translator_dk.h
View file @
f62ec116
/*-*- c-basic-offset: 2 -*-*/
/*-*- c-basic-offset: 2
; tab-width: 8
-*-*/
/******************************************************************************
*
*
...
...
@@ -22,6 +22,7 @@
*
* First version (not complete) for Doxygen 1.2.7
* Extended and revised for Doxygen 1.3
* Extended and revised for Doxygen 1.3.4
*/
/* Translator's notes:
...
...
@@ -71,7 +72,7 @@
#ifndef TRANSLATOR_DK_H
#define TRANSLATOR_DK_H
class
TranslatorDanish
:
public
Translator
Adapter_1_3
class
TranslatorDanish
:
public
Translator
{
public
:
...
...
@@ -99,10 +100,10 @@ class TranslatorDanish : public TranslatorAdapter_1_3
*/
virtual
QCString
latexLanguageSupportCommand
()
{
return
"
\\
usepackage[danish]{babel}
\n
"
"
\\
usepackage[latin1]{inputenc}
\n
"
"
\\
usepackage[T1]{fontenc}
\n
"
;
return
"
\\
usepackage[danish]{babel}
\n
"
"
\\
usepackage[latin1]{inputenc}
\n
"
"
\\
usepackage[T1]{fontenc}
\n
"
;
}
/*! return the language charset. This will be used for the HTML output */
...
...
@@ -145,8 +146,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
return
"Felt-dokumentation"
;
}
else
{
return
"Dokumentation af feltvariable"
;
//medlems-data";
return
"Dokumentation af feltvariable"
;
}
}
...
...
@@ -225,12 +225,9 @@ class TranslatorDanish : public TranslatorAdapter_1_3
/*! This is put above each page as a link to all members of compounds. */
virtual
QCString
trCompoundMembers
()
{
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
return
"Data-felter"
;
}
else
{
}
else
{
return
"Felter i sammensatte typer"
;
}
}
...
...
@@ -241,8 +238,8 @@ class TranslatorDanish : public TranslatorAdapter_1_3
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
return
"Globale symboler"
;
}
else
{
return
"Placering i filer"
;
// Fil-medlemmer"; //TODO
//"Globale definitioner" ?
return
"Placering i filer"
;
// Fil-medlemmer"; //TODO
//"Globale definitioner" ?
}
}
...
...
@@ -542,9 +539,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
/*! This is part of the sentence used in the standard footer of each page.
*/
virtual
QCString
trWrittenBy
()
{
return
"skrevet af"
;
}
{
return
"skrevet af"
;
}
/*! this text is put before a class diagram */
virtual
QCString
trClassDiagram
(
const
char
*
clName
)
...
...
@@ -628,7 +623,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
* related classes
*/
virtual
QCString
trRelatedFunctionDocumentation
()
{
return
"Dokumentation af friends og af relaterede funktioner"
;
}
{
return
"Dokumentation af friends og af relaterede funktioner"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
...
...
@@ -803,8 +798,8 @@ class TranslatorDanish : public TranslatorAdapter_1_3
case
ClassDef
:
:
Interface
:
result
+=
"grænseflade"
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
"exception"
;
break
;
}
result
+=
" blev genereret ud fra f
ølgende
fil"
;
if
(
single
)
result
+=
"
:"
;
else
result
+=
"er
:"
;
result
+=
" blev genereret ud fra fil"
;
if
(
single
)
result
+=
"
en:"
;
else
result
+=
"erne
:"
;
return
result
;
}
...
...
@@ -838,13 +833,13 @@ class TranslatorDanish : public TranslatorAdapter_1_3
//////////////////////////////////////////////////////////////////////////
virtual
QCString
trSources
()
{
return
"Kilder"
;
//??
}
{
return
"Kilder"
;
/* Tranlation?? */
}
virtual
QCString
trDefinedAtLineInSourceFile
()
{
return
"Defineret på linje @0 i filen @1."
;
}
virtual
QCString
trDefinedInSourceFile
()
{
return
"Defineret i filen @0."
;
...
...
@@ -877,73 +872,52 @@ class TranslatorDanish : public TranslatorAdapter_1_3
/*! header that is put before the list of constructor/destructors. */
virtual
QCString
trConstructorDocumentation
()
{
return
"Dokumentation af konstruktører og destruktører"
;
// "Constructor & Destructor dokumentation";
return
"Dokumentation af konstruktører og destruktører"
;
// "Constructor & Destructor dokumentation";
}
/*! Used in the file documentation to point to the corresponding sources. */
virtual
QCString
trGotoSourceCode
()
{
return
"Hop til denne fils kildekode."
;
}
{
return
"Hop til denne fils kildekode."
;
}
/*! Used in the file sources to point to the corresponding documentation. */
virtual
QCString
trGotoDocumentation
()
{
return
"Hop til denne fils dokumentation."
;
}
{
return
"Hop til denne fils dokumentation."
;
}
/*! Text for the \\pre command */
virtual
QCString
trPrecondition
()
{
return
"Forudsætninger (precondition)"
;
}
{
return
"Forudsætninger (precondition)"
;
}
/*! Text for the \\post command */
virtual
QCString
trPostcondition
()
{
return
"Resultat (postcondition)"
;
}
{
return
"Resultat (postcondition)"
;
}
/*! Text for the \\invariant command */
virtual
QCString
trInvariant
()
{
return
"Invariant"
;
}
{
return
"Invariant"
;
}
/*! Text shown before a multi-line variable/enum initialization */
virtual
QCString
trInitialValue
()
{
return
"Startværdi:"
;
}
{
return
"Startværdi:"
;
}
/*! Text used the source code in the file index */
virtual
QCString
trCode
()
{
return
"kildekode"
;
}
{
return
"kildekode"
;
}
virtual
QCString
trGraphicalHierarchy
()
{
return
"Grafisk klassehierarki"
;
}
{
return
"Grafisk klassehierarki"
;
}
virtual
QCString
trGotoGraphicalHierarchy
()
{
return
"Hop til det grafiske klassehierarki"
;
}
{
return
"Hop til det grafiske klassehierarki"
;
}
virtual
QCString
trGotoTextualHierarchy
()
{
return
"Hop til det tekstuelle klassehierarki"
;
}
{
return
"Hop til det tekstuelle klassehierarki"
;
}
virtual
QCString
trPageIndex
()
{
return
"Sideindeks"
;
}
{
return
"Sideindeks"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.0
//////////////////////////////////////////////////////////////////////////
virtual
QCString
trNote
()
{
return
"Note"
;
}
{
return
"Note"
;
}
virtual
QCString
trPublicTypes
()
{
return
"Offentlige typer"
;
}
{
return
"Offentlige typer"
;
}
virtual
QCString
trPublicAttribs
()
{
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
...
...
@@ -952,34 +926,21 @@ class TranslatorDanish : public TranslatorAdapter_1_3
return
"Offentlige attributter"
;
}
}
virtual
QCString
trStaticPublicAttribs
()
{
return
"Statiske, offentlige attributter"
;
}
{
return
"Statiske, offentlige attributter"
;
}
virtual
QCString
trProtectedTypes
()
{
return
"Beskyttede typer"
;
}
{
return
"Beskyttede typer"
;
}
virtual
QCString
trProtectedAttribs
()
{
return
"Beskyttede attributter"
;
}
{
return
"Beskyttede attributter"
;
}
virtual
QCString
trStaticProtectedAttribs
()
{
return
"Statiske, beskyttede attributter"
;
}
{
return
"Statiske, beskyttede attributter"
;
}
virtual
QCString
trPrivateTypes
()
{
return
"Private typer"
;
}
{
return
"Private typer"
;
}
virtual
QCString
trPrivateAttribs
()
{
return
"Private attributter"
;
}
{
return
"Private attributter"
;
}
virtual
QCString
trStaticPrivateAttribs
()
{
return
"Statiske, private attributter"
;
}
{
return
"Statiske, private attributter"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.3
...
...
@@ -1015,8 +976,8 @@ class TranslatorDanish : public TranslatorAdapter_1_3
virtual
QCString
trInclByDepGraph
()
{
return
"Denne graf viser, hvilke filer der direkte eller "
"indirekte inkluderer denne fil:"
;
"Denne graf viser, hvilke filer der direkte eller "
"indirekte inkluderer denne fil:"
;
}
virtual
QCString
trSince
()
{
...
...
@@ -1138,7 +1099,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
/*! Used as a section header for IDL properties */
virtual
QCString
trProperties
()
{
return
"Egenskaber"
;
return
"Egenskaber"
;
}
/*! Used as a section header for IDL property documentation */
virtual
QCString
trPropertyDocumentation
()
...
...
@@ -1177,9 +1138,9 @@ class TranslatorDanish : public TranslatorAdapter_1_3
/*! The description of the package index page */
virtual
QCString
trPackageListDescription
()
{
return
"Her er en liste over pakkerne, med korte beskrivelser "
"(hvor en sådan findes):"
;
return
"Her er en liste over pakkerne, med korte beskrivelser "
"(hvor en sådan findes):"
;
}
/*! The link name in the Quick links header for each page */
virtual
QCString
trPackages
()
...
...
@@ -1247,11 +1208,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
*/
virtual
QCString
trClass
(
bool
first_capital
,
bool
singular
)
{
//QCString result(first_capital ? "Klasse" : "klasse");
//if (first_capital) result.at(0) = toupper(result.at(0));
//if (!singular) result+="r";
//return result;
return
createNoun
(
first_capital
,
singular
,
"klasse"
,
"r"
);
return
createNoun
(
first_capital
,
singular
,
"klasse"
,
"r"
);
}
/*! This is used for translation of the word that will possibly
...
...
@@ -1260,10 +1217,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
*/
virtual
QCString
trFile
(
bool
first_capital
,
bool
singular
)
{
//QCString result((first_capital ? "Fil" : "fil"));
//if (!singular) result+="er";
//return result;
return
createNoun
(
first_capital
,
singular
,
"fil"
,
"er"
);
return
createNoun
(
first_capital
,
singular
,
"fil"
,
"er"
);
}
/*! This is used for translation of the word that will possibly
...
...
@@ -1272,10 +1226,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
*/
virtual
QCString
trNamespace
(
bool
first_capital
,
bool
singular
)
{
//QCString result((first_capital ? "Namespace" : "namespace"));
//if (!singular) result+="s";
//return result;
return
createNoun
(
first_capital
,
singular
,
"namespace"
,
"s"
);
return
createNoun
(
first_capital
,
singular
,
"namespace"
,
"s"
);
}
/*! This is used for translation of the word that will possibly
...
...
@@ -1284,10 +1235,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
*/
virtual
QCString
trGroup
(
bool
first_capital
,
bool
singular
)
{
//QCString result((first_capital ? "Gruppe" : "gruppe"));
//if (!singular) result+="r";
//return result;
return
createNoun
(
first_capital
,
singular
,
"gruppe"
,
"r"
);
return
createNoun
(
first_capital
,
singular
,
"gruppe"
,
"r"
);
}
/*! This is used for translation of the word that will possibly
...
...
@@ -1296,10 +1244,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
*/
virtual
QCString
trPage
(
bool
first_capital
,
bool
singular
)
{
//QCString result((first_capital ? "Side" : "side"));
//if (!singular) result+="r";
//return result;
return
createNoun
(
first_capital
,
singular
,
"side"
,
"r"
);
return
createNoun
(
first_capital
,
singular
,
"side"
,
"r"
);
}
/*! This is used for translation of the word that will possibly
...
...
@@ -1308,10 +1253,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
*/
virtual
QCString
trMember
(
bool
first_capital
,
bool
singular
)
{
//QCString result((first_capital ? "Medlem" : "medlem"));
//if (!singular) result+="mer";
//return result;
return
createNoun
(
first_capital
,
singular
,
"medlem"
,
"mer"
);
return
createNoun
(
first_capital
,
singular
,
"medlem"
,
"mer"
);
}
/*! This is used for translation of the word that will possibly
...
...
@@ -1320,10 +1262,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
*/
virtual
QCString
trField
(
bool
first_capital
,
bool
singular
)
{
//QCString result((first_capital ? "Felt" : "felt"));
//if (!singular) result+="er";
//return result;
return
createNoun
(
first_capital
,
singular
,
"felt"
,
"er"
);
return
createNoun
(
first_capital
,
singular
,
"felt"
,
"er"
);
}
/*! This is used for translation of the word that will possibly
...
...
@@ -1332,10 +1271,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
*/
virtual
QCString
trGlobal
(
bool
first_capital
,
bool
singular
)
{
//QCString result((first_capital ? "Global" : "global"));
//if (!singular) result+="e";
//return result;
return
createNoun
(
first_capital
,
singular
,
"global"
,
"e"
);
return
createNoun
(
first_capital
,
singular
,
"global"
,
"e"
);
}
//////////////////////////////////////////////////////////////////////////
...
...
@@ -1346,10 +1282,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
* for the author section in man pages. */
virtual
QCString
trAuthor
(
bool
first_capital
,
bool
singular
)
{
//QCString result((first_capital ? "Forfatter" : "forfatter"));
//if (!singular) result+="e";
//return result;
return
createNoun
(
first_capital
,
singular
,
"forfatter"
,
"e"
);
return
createNoun
(
first_capital
,
singular
,
"forfatter"
,
"e"
);
}
//////////////////////////////////////////////////////////////////////////
...
...
@@ -1392,7 +1325,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
*/
virtual
QCString
trRTFTableOfContents
()
{
return
"Indholdsfortegnelse"
;
return
"Indholdsfortegnelse"
;
}
//////////////////////////////////////////////////////////////////////////
...
...
@@ -1404,7 +1337,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
*/
virtual
QCString
trDeprecatedList
()
{
return
"Liste over fortidslevn, hvis brug frarådes"
;
return
"Liste over fortidslevn, hvis brug frarådes"
;
}
//////////////////////////////////////////////////////////////////////////
...
...
@@ -1416,7 +1349,7 @@ class TranslatorDanish : public TranslatorAdapter_1_3
*/
virtual
QCString
trEvents
()
{
return
"Begivenheder"
;
return
"Begivenheder"
;
}
/*! Header used for the documentation section of a class' events. */
virtual
QCString
trEventDocumentation
()
...
...
@@ -1424,6 +1357,89 @@ class TranslatorDanish : public TranslatorAdapter_1_3
return
"Begivenhedsdokumentation"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3
//////////////////////////////////////////////////////////////////////////
/* Java: Entities with package scope... */
virtual
QCString
trPackageTypes
()
{
return
"Typer med pakke-scope"
;
}
virtual
QCString
trPackageMembers
()
{
return
"Metoder med pakke-scope"
;
}
virtual
QCString
trStaticPackageMembers
()
{
return
"Statiske metoder med pakke-scope"
;
}
virtual
QCString
trPackageAttribs
()
{
return
"Attributter med pakke-scope"
;
}
virtual
QCString
trStaticPackageAttribs
()
{
return
"Statiske attributter med pakke-scope"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.1
//////////////////////////////////////////////////////////////////////////
/*! Used in the quick index of a class/file/namespace member list page
* to link to the unfiltered list of all members.
*/
virtual
QCString
trAll
()
{
return
"Alle"
;
}
/*! Put in front of the call graph for a function. */
virtual
QCString
trCallGraph
()
{
return
"Her er kald-grafen for denne funktion:"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.3
//////////////////////////////////////////////////////////////////////////
/*! When the search engine is enabled this text is put in the header
* of each page before the field where one can enter the text to search
* for.
*/
virtual
QCString
trSearchForIndex
()
{
return
"Søg efter"
;
}
/*! This string is used as the title for the page listing the search
* results.
*/
virtual
QCString
trSearchResultsTitle
()
{
return
"Søgeresultater"
;
}
/*! This string is put just before listing the search results. The
* text can be different depending on the number of documents found.
* Inside the text you can put the special marker $num to insert
* the number representing the actual number of search results.
* The @a numDocuments parameter can be either 0, 1 or 2, where the
* value 2 represents 2 or more matches. HTML markup is allowed inside
* the returned string.
*/
virtual
QCString
trSearchResults
(
int
numDocuments
)
{
if
(
numDocuments
==
0
)
{
return
"Beklager - ingen dokumenter passede til din forespørgsel."
;
}
else
if
(
numDocuments
==
1
)
{
return
"Fandt <b>1</b> dokument, der passer til din forespørgsel."
;
}
else
{
return
"Fandt <b>$num</b> dokumenter, der passer til din forespørgsel. "
"De, der passer bedst, vises først."
;
}
}
/*! This string is put before the list of matched words, for each search
* result. What follows is the list of words that matched the query.
*/
virtual
QCString
trSearchMatches
()
{
return
"Fundne ord:"
;
//translation?
}
/*---------- For internal use: ----------------------------------------*/
protected
:
...
...
@@ -1431,13 +1447,13 @@ class TranslatorDanish : public TranslatorAdapter_1_3
* \internal
*/
QCString
createNoun
(
bool
first_capital
,
bool
singular
,
const
char
*
base
,
const
char
*
plurSuffix
)
{
QCString
result
(
base
);
if
(
first_capital
)
result
.
at
(
0
)
=
toupper
(
result
.
at
(
0
));
if
(
!
singular
)
result
+=
plurSuffix
;
return
result
;
}
const
char
*
base
,
const
char
*
plurSuffix
)
{
QCString
result
(
base
);
if
(
first_capital
)
result
.
at
(
0
)
=
toupper
(
result
.
at
(
0
));
if
(
!
singular
)
result
+=
plurSuffix
;
return
result
;
}
};
#endif
src/translator_ru.h
View file @
f62ec116
...
...
@@ -1554,6 +1554,7 @@ class TranslatorRussian : public Translator
return
decode
(
":"
);
}
private
:
QCString
as_documents
(
int
num
)
{
if
(
num
%
10
==
1
)
return
""
;
...
...
src/translator_tw.h
View file @
f62ec116
...
...
@@ -41,7 +41,7 @@
// Translator class (by the local maintainer) when the localized
// translator is made up-to-date again.
class
TranslatorChinesetraditional
:
public
Translator
Adapter_1_3_3
class
TranslatorChinesetraditional
:
public
Translator
{
public
:
...
...
@@ -1472,6 +1472,57 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_3_3
return
"這是此函數的引用函數圖:"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.3
//////////////////////////////////////////////////////////////////////////
/*! When the search engine is enabled this text is put in the header
* of each page before the field where one can enter the text to search
* for.
*/
virtual
QCString
trSearchForIndex
()
{
return
"搜尋索引"
;
}
/*! This string is used as the title for the page listing the search
* results.
*/
virtual
QCString
trSearchResultsTitle
()
{
return
"搜尋結果"
;
}
/*! This string is put just before listing the search results. The
* text can be different depending on the number of documents found.
* Inside the text you can put the special marker $num to insert
* the number representing the actual number of search results.
* The @a numDocuments parameter can be either 0, 1 or 2, where the
* value 2 represents 2 or more matches. HTML markup is allowed inside
* the returned string.
*/
virtual
QCString
trSearchResults
(
int
numDocuments
)
{
if
(
numDocuments
==
0
)
{
return
"找不到符合的資料."
;
}
else
if
(
numDocuments
==
1
)
{
return
"找到 <b>1</b> 筆符合的資料."
;
}
else
{
return
"找到 <b>$num</b> 筆符合的資料. "
"越符合的結果顯示在越前面."
;
}
}
/*! This string is put before the list of matched words, for each search
* result. What follows is the list of words that matched the query.
*/
virtual
QCString
trSearchMatches
()
{
return
"符合:"
;
}
};
#endif
src/util.cpp
View file @
f62ec116
...
...
@@ -1030,7 +1030,7 @@ QCString removeRedundantWhiteSpace(const QCString &s)
result
+=
' '
;
result
+=
s
.
at
(
i
);
}
else
if
(
c
==
't'
&&
csp
==
5
&&
!
isId
(
s
.
at
(
i
+
1
)
))
// prevent const ::A from being converted to const::A
else
if
(
c
==
't'
&&
csp
==
5
&&
!
(
isId
(
s
.
at
(
i
+
1
))
||
s
.
at
(
i
+
1
)
==
' '
))
// prevent const ::A from being converted to const::A
{
result
+=
"t "
;
csp
=
0
;
...
...
@@ -1208,14 +1208,12 @@ void linkifyText(const TextGeneratorIntf &out,Definition *scope,FileDef *fileSco
(
external
?
md
->
isLinkable
()
:
md
->
isLinkableInProject
())
)
{
Definition
*
d
=
0
;
if
(
cd
)
d
=
cd
;
else
if
(
nd
)
d
=
nd
;
else
if
(
fd
)
d
=
fd
;
else
d
=
gd
;
//printf("Found ref scope=%s\n",d?d->name().data():"<global>");
if
(
d
&&
(
external
?
d
->
isLinkable
()
:
d
->
isLinkableInProject
()))
if
(
(
external
?
md
->
isLinkable
()
:
m
d
->
isLinkableInProject
()))
{
//ol.writeObjectLink(d->getReference(),d->getOutputFileBase(),
// md->anchor(),word);
out
.
writeLink
(
d
->
getReference
(),
d
->
getOutputFileBase
(),
out
.
writeLink
(
md
->
getReference
(),
m
d
->
getOutputFileBase
(),
md
->
anchor
(),
word
);
found
=
TRUE
;
}
...
...
@@ -1356,8 +1354,9 @@ void setAnchors(ClassDef *cd,char id,MemberList *ml,int groupId)
else
anchor
.
sprintf
(
"%c%d_%d"
,
id
,
groupId
,
count
++
);
if
(
cd
)
anchor
.
prepend
(
escapeCharsInString
(
cd
->
name
(),
FALSE
));
//printf("Member %s anchor %s\n",md->name().data(),anchor.data());
md
->
setAnchor
(
anchor
);
//printf("setAnchors(): Member %s outputFileBase=%s anchor %s result %s\n",
// md->name().data(),md->getOutputFileBase().data(),anchor.data(),md->anchor().data());
}
}
}
...
...
@@ -2881,8 +2880,8 @@ bool resolveRef(/* in */ const char *scName,
)
{
//printf("after getDefs md=%p cd=%p fd=%p nd=%p gd=%p\n",md,cd,fd,nd,gd);
*
resMember
=
md
;
if
(
cd
)
*
resContext
=
cd
;
if
(
md
)
{
*
resMember
=
md
;
*
resContext
=
md
;
}
else
if
(
cd
)
*
resContext
=
cd
;
else
if
(
nd
)
*
resContext
=
nd
;
else
if
(
fd
)
*
resContext
=
fd
;
else
if
(
gd
)
*
resContext
=
gd
;
...
...
@@ -2966,14 +2965,13 @@ bool generateRef(OutputDocInterface &od,const char *scName,
{
if
(
md
)
// link to member
{
od
.
writeObjectLink
(
compoun
d
->
getReference
(),
compoun
d
->
getOutputFileBase
(),
od
.
writeObjectLink
(
m
d
->
getReference
(),
m
d
->
getOutputFileBase
(),
md
->
anchor
(),
linkText
);
// generate the page reference (for LaTeX)
if
(
!
compound
->
isReference
()
&&
!
md
->
anchor
().
isEmpty
()
&&
md
->
isLinkableInProject
())
if
(
md
->
isLinkableInProject
())
{
writePageRef
(
od
,
compoun
d
->
getOutputFileBase
(),
md
->
anchor
());
writePageRef
(
od
,
m
d
->
getOutputFileBase
(),
md
->
anchor
());
}
}
else
// link to compound
...
...
@@ -3007,12 +3005,10 @@ bool resolveLink(/* in */ const char *scName,
/* in */
const
char
*
lr
,
/* in */
bool
inSeeBlock
,
/* out */
Definition
**
resContext
,
/* out PageInfo **resPageInfo,*/
/* out */
QCString
&
resAnchor
)
{
*
resContext
=
0
;
//*resPageInfo=0;
QCString
linkRef
=
lr
;
FileDef
*
fd
;
...
...
@@ -3094,16 +3090,6 @@ bool generateLink(OutputDocInterface &od,const char *clName,
//printf("generateLink linkText=%s\n",linkText.data());
if
(
resolveLink
(
clName
,
lr
,
inSeeBlock
,
&
compound
,
anchor
))
{
//if (pageInfo) // link to page
//{
// od.writeObjectLink(pageInfo->getReference(),
// pageInfo->getOutputFileBase(),anchor,linkText);
// if (!pageInfo->isReference())
// {
// writePageRef(od,pageInfo->getOutputFileBase(),anchor);
// }
//}
//else
if
(
compound
)
// link to compound
{
if
(
lt
==
0
&&
anchor
.
isEmpty
()
&&
/* compound link */
...
...
@@ -4022,9 +4008,7 @@ PageDef *addRelatedPage(const char *name,const QCString &ptitle,
pageName
=
pd
->
name
();
else
pageName
=
pd
->
name
().
lower
();
//setFileNameForSections(anchors,pageName,pi);
pd
->
setFileName
(
pageName
);
//pi->addSections(anchors);
//printf("Appending page `%s'\n",baseName.data());
Doxygen
::
pageSDict
->
append
(
baseName
,
pd
);
...
...
src/xmlgen.cpp
View file @
f62ec116
...
...
@@ -736,6 +736,9 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
t
<<
" <detaileddescription>"
<<
endl
;
writeXMLDocBlock
(
t
,
md
->
docFile
(),
md
->
docLine
(),
md
->
getOuterScope
(),
md
,
md
->
documentation
());
t
<<
" </detaileddescription>"
<<
endl
;
t
<<
" <inbodydescription>"
<<
endl
;
writeXMLDocBlock
(
t
,
md
->
docFile
(),
md
->
inbodyLine
(),
md
->
getOuterScope
(),
md
,
md
->
inbodyDocumentation
());
t
<<
" </inbodydescription>"
<<
endl
;
if
(
md
->
getDefLine
()
!=-
1
)
{
t
<<
" <location file=
\"
"
...
...
@@ -803,12 +806,9 @@ static void writeListOfAllMembers(ClassDef *cd,QTextStream &t)
for
(
mii
.
toFirst
();(
mi
=
mii
.
current
());
++
mii
)
{
MemberDef
*
md
=
mi
->
memberDef
;
ClassDef
*
cd
=
md
->
getClassDef
();
Definition
*
d
=
md
->
getGroupDef
();
if
(
d
==
0
)
d
=
cd
;
Protection
prot
=
mi
->
prot
;
Specifier
virt
=
md
->
virtualness
();
t
<<
" <member refid=
\"
"
<<
d
->
getOutputFileBase
()
<<
"_1"
<<
t
<<
" <member refid=
\"
"
<<
m
d
->
getOutputFileBase
()
<<
"_1"
<<
md
->
anchor
()
<<
"
\"
prot=
\"
"
;
switch
(
prot
)
{
...
...
@@ -876,7 +876,15 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti)
writeXMLHeader
(
t
);
t
<<
" <compounddef id=
\"
"
<<
cd
->
getOutputFileBase
()
<<
"
\"
kind=
\"
"
<<
cd
->
compoundTypeString
()
<<
"
\"
>"
<<
endl
;
<<
cd
->
compoundTypeString
()
<<
"
\"
prot=
\"
"
;
switch
(
cd
->
protection
())
{
case
Public
:
t
<<
"public"
;
break
;
case
Protected
:
t
<<
"protected"
;
break
;
case
Private
:
t
<<
"private"
;
break
;
case
Package
:
t
<<
"package"
;
break
;
}
t
<<
"
\"
>"
<<
endl
;
t
<<
" <compoundname>"
;
writeXMLString
(
t
,
cd
->
name
());
t
<<
"</compoundname>"
<<
endl
;
...
...
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