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
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
...
...
@@ -66,24 +66,24 @@ void warn(const char *fmt, ...)
QCString Config::projectName;
QCString Config::projectNumber;
QCString Config::outputDir;
QCString Config::htmlOutputDir;
QCString Config::latexOutputDir;
QCString Config::manOutputDir;
QCString Config::rtfOutputDir;
QCString Config::outputLanguage;
QCString Config::htmlOutputDir
= "html"
;
QCString Config::latexOutputDir
= "latex"
;
QCString Config::manOutputDir
= "man"
;
QCString Config::rtfOutputDir
= "rtf"
;
QCString Config::outputLanguage
= "English"
;
QCString Config::headerFile;
QCString Config::latexHeaderFile;
QCString Config::footerFile;
QCString Config::cgiName;
QCString Config::cgiName
= "search.cgi"
;
QCString Config::cgiURL;
QCString Config::docURL;
QCString Config::binAbsPath;
QCString Config::binAbsPath
= "/usr/local/bin/"
;
QCString Config::docAbsPath;
QCString Config::perlPath;
QCString Config::perlPath
= "/usr/bin/perl"
;
QCString Config::genTagFile;
QCString Config::inputFilter;
QCString Config::paperType;
QCString Config::manExtension;
QCString Config::paperType
= "a4wide"
;
QCString Config::manExtension
= ".3"
;
QCString Config::htmlStyleSheet;
QStrList Config::ignorePrefixList;
QStrList Config::includePath;
...
...
@@ -124,6 +124,7 @@ bool Config::inlineSourceFlag = FALSE;
bool Config::rtfHyperFlag = FALSE;
bool Config::compactRTFFlag = FALSE;
bool Config::haveDotFlag = FALSE;
bool Config::latexBatchModeFlag = FALSE;
bool Config::autoBriefFlag = TRUE;
bool Config::warningFlag = TRUE;
bool Config::generateHtml = TRUE;
...
...
@@ -480,6 +481,7 @@ void Config::init()
Config::haveDotFlag = FALSE;
Config::compactRTFFlag = FALSE;
Config::rtfHyperFlag = FALSE;
Config::latexBatchModeFlag = FALSE;
Config::warningFlag = TRUE;
Config::generateHtml = TRUE;
Config::generateLatex = TRUE;
...
...
@@ -503,6 +505,49 @@ void Config::init()
Config::sortMembersFlag = TRUE;
}
static void writeBoolValue(QTextStream &t,bool v)
{
if (v) t << "YES"; else t << "NO";
}
static void writeIntValue(QTextStream &t,int i)
{
t << i;
}
static void writeStringValue(QTextStream &t,QCString &s)
{
const char *p=s.data();
char c;
bool hasBlanks=FALSE;
if (p)
{
while ((c=*p++)!=0 && !hasBlanks) hasBlanks = (c==' ' || c=='\n' || c=='\t');
if (hasBlanks)
t << "\"" << s << "\"";
else
t << s;
}
}
static void writeStringList(QTextStream &t,QStrList &l)
{
const char *p = l.first();
bool first=TRUE;
while (p)
{
char c;
const char *s=p;
bool hasBlanks=FALSE;
while ((c=*p++)!=0 && !hasBlanks) hasBlanks = (c==' ' || c=='\n' || c=='\t');
if (!first) t << " ";
first=FALSE;
if (hasBlanks) t << "\"" << s << "\""; else t << s;
p = l.next();
if (p) t << " \\" << endl;
}
}
void writeTemplateConfig(QFile *f,bool sl)
{
QTextStream t(f);
...
...
@@ -531,7 +576,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# by quotes) that should identify the project. \n";
t << "\n";
}
t << "PROJECT_NAME =\n";
t << "PROJECT_NAME = ";
writeStringValue(t,Config::projectName);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -540,7 +587,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# if some version control system is used.\n";
t << "\n";
}
t << "PROJECT_NUMBER =\n";
t << "PROJECT_NUMBER = ";
writeStringValue(t,Config::projectNumber);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -550,7 +599,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# where doxygen was started. If left blank the current directory will be used.\n";
t << "\n";
}
t << "OUTPUT_DIRECTORY =\n";
t << "OUTPUT_DIRECTORY = ";
writeStringValue(t,Config::outputDir);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -561,7 +612,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# Dutch, French, Italian, Czech, Swedish, German and Japanese\n";
t << "\n";
}
t << "OUTPUT_LANGUAGE = English\n";
t << "OUTPUT_LANGUAGE = ";
writeStringValue(t,Config::outputLanguage);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -569,7 +622,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# by doxygen. Possible values are YES and NO. If left blank NO is used.\n";
t << "\n";
}
t << "QUIET = NO\n";
t << "QUIET = ";
writeBoolValue(t,Config::quietFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -578,7 +633,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# NO is used.\n";
t << "\n";
}
t << "WARNINGS = YES\n";
t << "WARNINGS = ";
writeBoolValue(t,Config::warningFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -587,7 +644,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# the value YES disables it.\n";
t << "\n";
}
t << "DISABLE_INDEX = NO\n";
t << "DISABLE_INDEX = ";
writeBoolValue(t,Config::noIndexFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -595,7 +654,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# included in the documentation, even if no documentation was available.\n";
t << "\n";
}
t << "EXTRACT_ALL = NO\n";
t << "EXTRACT_ALL = ";
writeBoolValue(t,Config::extractAllFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -603,7 +664,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# will be included in the documentation.\n";
t << "\n";
}
t << "EXTRACT_PRIVATE = NO\n";
t << "EXTRACT_PRIVATE = ";
writeBoolValue(t,Config::extractPrivateFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -611,7 +674,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# undocumented members inside documented classes or files.\n";
t << "\n";
}
t << "HIDE_UNDOC_MEMBERS = NO\n";
t << "HIDE_UNDOC_MEMBERS = ";
writeBoolValue(t,Config::hideMemberFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -619,7 +684,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# undocumented classes.\n";
t << "\n";
}
t << "HIDE_UNDOC_CLASSES = NO\n";
t << "HIDE_UNDOC_CLASSES = ";
writeBoolValue(t,Config::hideClassFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -629,7 +696,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# Set to NO to disable this.\n";
t << "\n";
}
t << "BRIEF_MEMBER_DESC = YES\n";
t << "BRIEF_MEMBER_DESC = ";
writeBoolValue(t,Config::briefMemDescFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -639,7 +708,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# brief descriptions will be completely suppressed.\n";
t << "\n";
}
t << "REPEAT_BRIEF = YES\n";
t << "REPEAT_BRIEF = ";
writeBoolValue(t,Config::repeatBriefFlag);
t << "\n";
if (!sl)
{
t <<"\n";
...
...
@@ -648,7 +719,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# description.\n";
t <<"\n";
}
t << "ALWAYS_DETAILED_SEC = NO\n";
t << "ALWAYS_DETAILED_SEC = ";
writeBoolValue(t,Config::alwaysDetailsFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -657,7 +730,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# to NO the shortest path that makes the file name unique will be used.\n";
t << "\n";
}
t << "FULL_PATH_NAMES = NO\n";
t << "FULL_PATH_NAMES = ";
writeBoolValue(t,Config::fullPathNameFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -667,7 +742,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# the path.\n";
t << "\n";
}
t << "STRIP_FROM_PATH =\n";
t << "STRIP_FROM_PATH = ";
writeStringList(t,Config::stripFromPath);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -677,7 +754,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# Set it to YES to include the internal documentation.\n";
t << "\n";
}
t << "INTERNAL_DOCS = NO\n";
t << "INTERNAL_DOCS = ";
writeBoolValue(t,Config::internalDocsFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -686,7 +765,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# super classes. Setting the tag to NO turns the diagrams off.\n";
t << "\n";
}
t << "CLASS_DIAGRAMS = YES\n";
t << "CLASS_DIAGRAMS = ";
writeBoolValue(t,Config::classDiagramFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -694,7 +775,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# be generated. Documented entities will be cross-referenced with these sources.\n";
t << "\n";
}
t << "SOURCE_BROWSER = NO\n";
t << "SOURCE_BROWSER = ";
writeBoolValue(t,Config::sourceBrowseFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -702,7 +785,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# of functions and classes directly in the documentation.\n";
t << "\n";
}
t << "INLINE_SOURCES = NO\n";
t << "INLINE_SOURCES = ";
writeBoolValue(t,Config::inlineSourceFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -711,7 +796,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# fragments. Normal C and C++ comments will always remain visible.\n";
t << "\n";
}
t << "STRIP_CODE_COMMENTS = YES\n";
t << "STRIP_CODE_COMMENTS = ";
writeBoolValue(t,Config::stripCommentsFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -722,7 +809,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# supports case sensitive file names.\n";
t << "\n";
}
t << "CASE_SENSE_NAMES = NO\n";
t << "CASE_SENSE_NAMES = ";
writeBoolValue(t,Config::caseSensitiveNames);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -731,7 +820,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# which an include is specified. Set to NO to disable this.\n";
t << "\n";
}
t << "VERBATIM_HEADERS = YES\n";
t << "VERBATIM_HEADERS = ";
writeBoolValue(t,Config::verbatimHeaderFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -740,7 +831,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# of that file.\n";
t << "\n";
}
t << "SHOW_INCLUDE_FILES = YES\n";
t << "SHOW_INCLUDE_FILES = ";
writeBoolValue(t,Config::showIncFileFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -750,7 +843,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# behave just like the Qt-style comments.\n";
t << "\n";
}
t << "JAVADOC_AUTOBRIEF = YES\n";
t << "JAVADOC_AUTOBRIEF = ";
writeBoolValue(t,Config::autoBriefFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -759,7 +854,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# reimplements.\n";
t << "\n";
}
t << "INHERIT_DOCS = YES\n";
t << "INHERIT_DOCS = ";
writeBoolValue(t,Config::inheritDocsFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -767,7 +864,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# is inserted in the documentation for inline members.\n";
t << "\n";
}
t << "INLINE_INFO = YES\n";
t << "INLINE_INFO = ";
writeBoolValue(t,Config::inlineInfoFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -777,7 +876,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# declaration order.\n";
t << "\n";
}
t << "SORT_MEMBER_DOCS = YES\n";
t << "SORT_MEMBER_DOCS = ";
writeBoolValue(t,Config::sortMembersFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -785,7 +886,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# Doxygen uses this value to replace tabs by spaces in code fragments.\n";
t << "\n";
}
t << "TAB_SIZE = 8\n";
t << "TAB_SIZE = ";
writeIntValue(t,Config::tabSize);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -802,7 +905,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# with spaces.\n";
t << "\n";
}
t << "INPUT =\n";
t << "INPUT = ";
writeStringList(t,Config::inputSources);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -812,7 +917,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# blank all files are included.\n";
t << "\n";
}
t << "FILE_PATTERNS =\n";
t << "FILE_PATTERNS = ";
writeStringList(t,Config::filePatternList);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -821,7 +928,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# If left blank NO is used.\n";
t << "\n";
}
t << "RECURSIVE = NO\n";
t << "RECURSIVE = ";
writeBoolValue(t,Config::recursiveFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -830,7 +939,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# subdirectory from a directory tree whose root is specified with the INPUT tag.\n";
t << "\n";
}
t << "EXCLUDE =\n";
t << "EXCLUDE = ";
writeStringList(t,Config::excludeSources);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -839,7 +950,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# certain files from those directories.\n";
t << "\n";
}
t << "EXCLUDE_PATTERNS =\n";
t << "EXCLUDE_PATTERNS = ";
writeStringList(t,Config::excludePatternList);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -848,7 +961,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# the \\include command).\n";
t << "\n";
}
t << "EXAMPLE_PATH =\n";
t << "EXAMPLE_PATH = ";
writeStringList(t,Config::examplePath);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -858,7 +973,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# blank all files are included.\n";
t << "\n";
}
t << "EXAMPLE_PATTERNS =\n";
t << "EXAMPLE_PATTERNS = ";
writeStringList(t,Config::examplePatternList);
t << "\n";
if (!sl)
{
...
...
@@ -868,7 +985,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# the \\image command).\n";
t << "\n";
}
t << "IMAGE_PATH =\n";
t << "IMAGE_PATH = ";
writeStringList(t,Config::imagePath);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -880,7 +999,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# to standard output.\n";
t << "\n";
}
t << "INPUT_FILTER =\n";
t << "INPUT_FILTER = ";
writeStringValue(t,Config::inputFilter);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -895,7 +1016,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# generate HTML output\n";
t << "\n";
}
t << "GENERATE_HTML = YES\n";
t << "GENERATE_HTML = ";
writeBoolValue(t,Config::generateHtml);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -904,7 +1027,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# put in front of it. If left blank `html' will be used as the default path.\n";
t << "\n";
}
t << "HTML_OUTPUT =\n";
t << "HTML_OUTPUT = ";
writeStringValue(t,Config::htmlOutputDir);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -913,7 +1038,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# standard header.\n";
t << "\n";
}
t << "HTML_HEADER =\n";
t << "HTML_HEADER = ";
writeStringValue(t,Config::headerFile);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -922,7 +1049,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# standard footer.\n";
t << "\n";
}
t << "HTML_FOOTER =\n";
t << "HTML_FOOTER = ";
writeStringValue(t,Config::footerFile);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -932,7 +1061,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# will generate a default style sheet\n";
t << "\n";
}
t << "HTML_STYLESHEET =\n";
t << "HTML_STYLESHEET = ";
writeStringValue(t,Config::htmlStyleSheet);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -941,7 +1072,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# NO a bullet list will be used.\n";
t << "\n";
}
t << "HTML_ALIGN_MEMBERS = YES\n";
t << "HTML_ALIGN_MEMBERS = ";
writeBoolValue(t,Config::htmlAlignMemberFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -951,7 +1084,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# of the generated HTML documentation.\n";
t << "\n";
}
t << "GENERATE_HTMLHELP = NO\n";
t << "GENERATE_HTMLHELP = ";
writeBoolValue(t,Config::htmlHelpFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -967,7 +1102,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# contains a lot of classes, structs, unions or interfaces.\n";
t << "\n";
}
t << "ALPHABETICAL_INDEX = NO\n";
t << "ALPHABETICAL_INDEX = ";
writeBoolValue(t,Config::alphaIndexFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -976,7 +1113,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# in which this list will be split (can be a number in the range [1..20])\n";
t << "\n";
}
t << "COLS_IN_ALPHA_INDEX = 5\n";
t << "COLS_IN_ALPHA_INDEX = ";
writeIntValue(t,Config::colsInAlphaIndex);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -986,7 +1125,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# should be ignored while generating the index headers.\n";
t << "\n";
}
t << "IGNORE_PREFIX = \n";
t << "IGNORE_PREFIX = ";
writeStringList(t,Config::ignorePrefixList);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1001,7 +1142,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# generate Latex output.\n";
t << "\n";
}
t << "GENERATE_LATEX = YES\n";
t << "GENERATE_LATEX = ";
writeBoolValue(t,Config::generateLatex);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1010,7 +1153,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# put in front of it. If left blank `latex' will be used as the default path.\n";
t << "\n";
}
t << "LATEX_OUTPUT =\n";
t << "LATEX_OUTPUT = ";
writeStringValue(t,Config::latexOutputDir);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1019,7 +1164,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# save some trees in general.\n";
t << "\n";
}
t << "COMPACT_LATEX = NO\n";
t << "COMPACT_LATEX = ";
writeBoolValue(t,Config::compactLatexFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1028,7 +1175,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# executive. If left blank a4wide will be used.\n";
t << "\n";
}
t << "PAPER_TYPE = a4wide\n";
t << "PAPER_TYPE = ";
writeStringValue(t,Config::paperType);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1036,7 +1185,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# packages that should be included in the LaTeX output.\n";
t << "\n";
}
t << "EXTRA_PACKAGES =\n";
t << "EXTRA_PACKAGES = ";
writeStringList(t,Config::extraPackageList);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1046,7 +1197,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# standard header. Notice: only use this tag if you know what you are doing!\n";
t << "\n";
}
t << "LATEX_HEADER =\n";
t << "LATEX_HEADER = ";
writeStringValue(t,Config::latexHeaderFile);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1056,11 +1209,27 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# This makes the output suitable for online browsing using a pdf viewer.\n";
t << "\n";
}
t << "PDF_HYPERLINKS = NO\n";
t << "PDF_HYPERLINKS = ";
writeBoolValue(t,Config::pdfHyperFlag);
t << "\n";
if (!sl)
{
t << "\n";
}
if (!sl)
{
t << "\n";
t << "# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.\n";
t << "# command to the generated LaTeX files. This will instruct LaTeX to keep\n";
t << "# running if errors occur, instead of asking the user for help.\n";
t << "# This option is also used when generating formulas in HTML.\n";
}
if (!sl)
{
t << "LATEX_BATCHMODE = ";
}
writeBoolValue(t,Config::latexBatchModeFlag);
t << "\n";
t << "#---------------------------------------------------------------------------\n";
t << "# configuration options related to the RTF output\n";
t << "#---------------------------------------------------------------------------\n";
...
...
@@ -1073,7 +1242,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# or editors.\n";
t << "\n";
}
t << "GENERATE_RTF = NO\n";
t << "GENERATE_RTF = ";
writeBoolValue(t,Config::generateRTF);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1082,7 +1253,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# put in front of it. If left blank `rtf' will be used as the default path.\n";
t << "\n";
}
t << "RTF_OUTPUT =\n";
t << "RTF_OUTPUT = ";
writeStringValue(t,Config::rtfOutputDir);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1091,7 +1264,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# save some trees in general.\n";
t << "\n";
}
t << "COMPACT_RTF = NO\n";
t << "COMPACT_RTF = ";
writeBoolValue(t,Config::compactRTFFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1103,7 +1278,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# Note: wordpad (write) and others do not support links.\n";
t << "\n";
}
t << "RTF_HYPERLINKS = NO\n";
t << "RTF_HYPERLINKS = ";
writeBoolValue(t,Config::rtfHyperFlag);
t << "\n";
t << "#---------------------------------------------------------------------------\n";
t << "# configuration options related to the man page output\n";
...
...
@@ -1115,7 +1292,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# generate man pages\n";
t << "\n";
}
t << "GENERATE_MAN = YES\n";
t << "GENERATE_MAN = ";
writeBoolValue(t,Config::generateMan);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1124,7 +1303,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# put in front of it. If left blank `man' will be used as the default path.\n";
t << "\n";
}
t << "MAN_OUTPUT =\n";
t << "MAN_OUTPUT = ";
writeStringValue(t,Config::manOutputDir);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1132,8 +1313,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# the generated man pages (default is the subroutine's section .3)\n";
t << "\n";
}
t << "MAN_EXTENSION = .3\n";
t << "MAN_EXTENSION = ";
writeStringValue(t,Config::manExtension);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1149,7 +1331,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# files.\n";
t << "\n";
}
t << "ENABLE_PREPROCESSING = YES\n";
t << "ENABLE_PREPROCESSING = ";
writeBoolValue(t,Config::preprocessingFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1158,7 +1342,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# compilation will be performed.\n";
t << "\n";
}
t << "MACRO_EXPANSION = NO\n";
t << "MACRO_EXPANSION = ";
writeBoolValue(t,Config::macroExpansionFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1166,7 +1352,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# in the INCLUDE_PATH (see below) will be search if a #include is found.\n";
t << "\n";
}
t << "SEARCH_INCLUDES = YES\n";
t << "SEARCH_INCLUDES = ";
writeBoolValue(t,Config::searchIncludeFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1175,7 +1363,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# the preprocessor.\n" ;
t << "\n";
}
t << "INCLUDE_PATH =\n";
t << "INCLUDE_PATH = ";
writeStringList(t,Config::includePath);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1186,7 +1376,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# omitted =1 is assumed.\n";
t << "\n";
}
t << "PREDEFINED =\n";
t << "PREDEFINED = ";
writeStringList(t,Config::predefined);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1195,7 +1387,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# PREDEFINED tag.\n";
t << "\n";
}
t << "EXPAND_ONLY_PREDEF = NO\n";
t << "EXPAND_ONLY_PREDEF = ";
writeBoolValue(t,Config::onlyPredefinedFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1209,7 +1403,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# The TAGFILES tag can be used to specify one or more tagfiles. \n";
t << "\n";
}
t << "TAGFILES =\n";
t << "TAGFILES = ";
writeStringList(t,Config::tagFileList);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1217,7 +1413,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# a tag file that is based on the input files it reads.\n";
t << "\n";
}
t << "GENERATE_TAGFILE =\n";
t << "GENERATE_TAGFILE = ";
writeStringValue(t,Config::genTagFile);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1226,7 +1424,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# will be listed.\n";
t << "\n";
}
t << "ALLEXTERNALS = NO\n";
t << "ALLEXTERNALS = ";
writeBoolValue(t,Config::allExtFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1234,7 +1434,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# interpreter (i.e. the result of `which perl').\n";
t << "\n";
}
t << "PERL_PATH = /usr/bin/perl\n";
t << "PERL_PATH = ";
writeStringValue(t,Config::perlPath);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1251,7 +1453,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# have no effect if this option is set to NO (the default)\n";
t << "\n";
}
t << "HAVE_DOT = NO\n";
t << "HAVE_DOT = ";
writeBoolValue(t,Config::haveDotFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1261,7 +1465,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# class references variables) of the class with other documented classes.\n";
t << "\n";
}
t << "COLLABORATION_GRAPH = YES\n";
t << "COLLABORATION_GRAPH = ";
writeBoolValue(t,Config::collGraphFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1271,7 +1477,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# documented files.\n";
t << "\n";
}
t << "INCLUDE_GRAPH = YES\n";
t << "INCLUDE_GRAPH = ";
writeBoolValue(t,Config::includeGraphFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1279,7 +1487,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# will graphical hierarchy of all classes instead of a textual one.\n";
t << "\n";
}
t << "GRAPHICAL_HIERARCHY = YES\n";
t << "GRAPHICAL_HIERARCHY = ";
writeBoolValue(t,Config::gfxHierarchyFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1294,7 +1504,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# used. If set to NO the values of all tags below this one will be ignored.\n";
t << "\n";
}
t << "SEARCHENGINE = NO\n";
t << "SEARCHENGINE = ";
writeBoolValue(t,Config::searchEngineFlag);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1303,7 +1515,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# A script with this name will be generated by doxygen.\n";
t << "\n";
}
t << "CGI_NAME = search.cgi\n";
t << "CGI_NAME = ";
writeStringValue(t,Config::cgiName);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1312,7 +1526,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# details.\n";
t << "\n";
}
t << "CGI_URL =\n";
t << "CGI_URL = ";
writeStringValue(t,Config::cgiURL);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1321,7 +1537,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# documentation, with file:// prepended to it, will be used.\n";
t << "\n";
}
t << "DOC_URL =\n";
t << "DOC_URL = ";
writeStringValue(t,Config::docURL);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1330,7 +1548,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# will be used.\n";
t << "\n";
}
t << "DOC_ABSPATH =\n";
t << "DOC_ABSPATH = ";
writeStringValue(t,Config::docAbsPath);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1338,7 +1558,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# is installed.\n";
t << "\n";
}
t << "BIN_ABSPATH = /usr/local/bin/\n";
t << "BIN_ABSPATH = ";
writeStringValue(t,Config::binAbsPath);
t << "\n";
if (!sl)
{
t << "\n";
...
...
@@ -1347,7 +1569,9 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# the documentation for these projects as well.\n";
t << "\n";
}
t << "EXT_DOC_PATHS =\n";
t << "EXT_DOC_PATHS = ";
writeStringList(t,Config::extDocPathList);
t << "\n";
}
void checkConfig()
...
...
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
...
...
@@ -22,89 +22,164 @@
class
TranslatorJapanese
:
public
Translator
{
public
:
QCString
latexBabelPackage
()
{
return
"a4j"
;
}
//--------------------------------------------------------------------
// NOTICE:
// the following functions are now obsolete: these are no longer used and
// will disappear in future versions. You do not have to translate them!
QCString
trInherits
()
{
return
"継承"
;
}
QCString
trAnd
()
{
return
"と"
;
}
QCString
trInheritedBy
()
{
return
"次に継承されています。"
;
}
QCString
trReference
()
{
return
"リファレンス"
;
}
QCString
trReimplementedFrom
()
{
return
"次を再定義"
;
}
QCString
trReimplementedIn
()
{
return
"次で再定義"
;
}
QCString
trIncludeFile
()
{
return
"インクルードファイル"
;
}
QCString
trGeneratedFrom
(
const
char
*
s
,
bool
)
{
QCString
result
=
(
QCString
)
"この"
+
s
+
"に対するドキュメントは以下のファイルから生成されました。"
;
return
result
;
}
// end of obsolete functions
//--------------------------------------------------------------------
/*! returns the name of the package that is included by LaTeX */
QCString
latexBabelPackage
()
{
return
"a4j"
;
}
/*! used in the compound documentation before a list of related functions. */
QCString
trRelatedFunctions
()
{
return
"関連する関数"
;
}
/*! subscript for the related functions. */
QCString
trRelatedSubscript
()
{
return
"(これらはメンバ関数でないことに注意)"
;
}
/*! header that is put before the detailed description of files, classes and namespaces. */
QCString
trDetailedDescription
()
{
return
"解説"
;
}
/*! header that is put before the list of typedefs. */
QCString
trMemberTypedefDocumentation
()
{
return
"メンバ型定義の解説"
;
}
/*! header that is put before the list of enumerations. */
QCString
trMemberEnumerationDocumentation
()
{
return
"メンバ列挙型の解説"
;
}
QCString
trEnumerationValueDocumentation
()
{
return
"列挙型値の解説"
;
}
/*! header that is put before the list of member functions. */
QCString
trMemberFunctionDocumentation
()
{
return
"メンバ関数の解説"
;
}
/*! header that is put before the list of member attributes. */
QCString
trMemberDataDocumentation
()
{
return
"メンバデータの解説"
;
}
QCString
trGeneratedFrom
(
const
char
*
s
,
bool
)
{
QCString
result
=
(
QCString
)
"この"
+
s
+
"に対するドキュメントは以下のファイルから生成されました。"
;
return
result
;
}
/*! this is the text of a link put after brief descriptions. */
QCString
trMore
()
{
return
"より詳しく..."
;
}
QCString
trReference
()
{
return
"リファレンス"
;
}
/*! put in the class documentation */
QCString
trListOfAllMembers
()
{
return
"すべてのメンバリスト"
;
}
/*! used as the title of the "list of all members" page of a class */
QCString
trMemberList
()
{
return
"メンバリスト"
;
}
/*! this is the first part of a sentence that is followed by a class name */
QCString
trThisIsTheListOfAllMembers
()
{
return
"これは次の全メンバリストです。"
;
}
{
return
"これは全メンバリストです。"
;
}
/*! this is the remainder of the sentence after the class name */
QCString
trIncludingInheritedMembers
()
{
return
"継承メンバすべてを含んで。"
;
}
{
return
"継承メンバもすべて含んでいます。"
;
}
/*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name.
*/
QCString
trGeneratedAutomatically
(
const
char
*
s
)
{
QCString
result
;
if
(
s
)
result
=
(
QCString
)
s
+
"
に対して
"
;
if
(
s
)
result
=
(
QCString
)
s
+
"
の
"
;
result
+=
"ソースコードから Doxygen が自動的に生成しました。"
;
return
result
;
}
/*! put after an enum name in the list of all members */
QCString
trEnumName
()
{
return
"enum 型"
;
}
/*! put after an enum value in the list of all members */
QCString
trEnumValue
()
{
return
"enum 値"
;
}
/*! put after an undocumented member in the list of all members */
QCString
trDefinedIn
()
{
return
"次で定義されました。"
;
}
QCString
trIncludeFile
()
{
return
"インクルードファイル"
;
}
/*! put as in introduction in the verbatim header file of a class.
* parameter f is the name of the include file.
*/
QCString
trVerbatimText
(
const
char
*
f
)
{
return
(
QCString
)
"これはインクルードファイル"
+
f
+
"の Verbatim テキストです。"
;
}
{
return
(
QCString
)
"これはインクルードファイル"
+
f
+
"の内容です。"
;
}
// quick reference sections
/*! This is put above each page as a link to the list of all groups of
* compounds or files (see the \group command).
*/
QCString
trModules
()
{
return
"モジュール"
;
}
/*! This is put above each page as a link to the class hierarchy */
QCString
trClassHierarchy
()
{
return
"クラス階層"
;
}
/*! This is put above each page as a link to the list of annotated classes */
QCString
trCompoundList
()
{
return
"データ構造リスト"
;
}
/*! This is put above each page as a link to the list of documented files */
QCString
trFileList
()
{
return
"ファイルリスト"
;
}
/*! This is put above each page as a link to the list of all verbatim headers */
QCString
trHeaderFiles
()
{
return
"ヘッダファイル"
;
}
/*! This is put above each page as a link to all members of compounds. */
QCString
trCompoundMembers
()
{
return
"データ構造メンバ"
;
}
/*! This is put above each page as a link to all members of files. */
QCString
trFileMembers
()
{
return
"ファイルメンバ"
;
}
/*! This is put above each page as a link to all related pages. */
QCString
trRelatedPages
()
{
return
"関連ページ"
;
}
/*! This is put above each page as a link to all examples. */
QCString
trExamples
()
{
return
"例"
;
}
/*! This is put above each page as a link to the search engine. */
QCString
trSearch
()
{
return
"検索"
;
}
/*! This is an introduction to the class hierarchy. */
QCString
trClassHierarchyDescription
()
{
return
"この継承リストはおおまかにはソートされていますが、"
"アルファベット順で完全にソートされてはいません。"
;
}
/*! This is an introduction to the list with all files. */
QCString
trFileListDescription
(
bool
extractAll
)
{
QCString
result
=
"このリストは、"
;
...
...
@@ -112,8 +187,12 @@ class TranslatorJapanese : public Translator
result
+=
"簡易説明を持つファイルすべてのリストです。"
;
return
result
;
}
/*! This is an introduction to the annotated compound list. */
QCString
trCompoundListDescription
()
{
return
"これは簡易説明を持つ、クラス、構造体、共用体のリストです。"
;}
/*! This is an introduction to the page with all class members. */
QCString
trCompoundMembersDescription
(
bool
extractAll
)
{
QCString
result
=
"これは"
;
...
...
@@ -123,6 +202,8 @@ class TranslatorJapanese : public Translator
result
+=
"の解説へのリンクが張られています。"
;
return
result
;
}
/*! This is an introduction to the page with all file members. */
QCString
trFileMembersDescription
(
bool
extractAll
)
{
QCString
result
=
"これは"
;
...
...
@@ -132,76 +213,197 @@ class TranslatorJapanese : public Translator
result
+=
"の解説へのリンクが張られています。"
;
return
result
;
}
/*! This is an introduction to the page with the list of all header files. */
QCString
trHeaderFilesDescription
()
{
return
"APIを構成するヘッダファイルです。"
;
}
/*! This is an introduction to the page with the list of all examples */
QCString
trExamplesDescription
()
{
return
"すべての例のリストです。"
;
}
/*! This is an introduction to the page with the list of related pages */
QCString
trRelatedPagesDescription
()
{
return
"関連するドキュメントページすべてのリストです。"
;
}
/*! This is an introduction to the page with the list of class/file groups */
QCString
trModulesDescription
()
{
return
"すべてのモジュールのリストです。"
;
}
/*! This sentences is used in the annotated class/file lists if no brief
* description is given.
*/
QCString
trNoDescriptionAvailable
()
{
return
"ドキュメントが記述されていません。"
;
}
// index titles (the project name is prepended for these)
/*! This is used in HTML as the title of index.html. */
QCString
trDocumentation
()
{
return
"ドキュメント"
;
}
/*! This is used in LaTeX as the title of the chapter with the
* index of all groups.
*/
QCString
trModuleIndex
()
{
return
"モジュール索引"
;
}
/*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
*/
QCString
trHierarchicalIndex
()
{
return
"階層索引"
;
}
/*! This is used in LaTeX as the title of the chapter with the
* annotated compound index.
*/
QCString
trCompoundIndex
()
{
return
"データ構造索引"
;
}
/*! This is used in LaTeX as the title of the chapter with the
* list of all files.
*/
QCString
trFileIndex
()
{
return
"ファイル索引"
;
}
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all groups.
*/
QCString
trModuleDocumentation
()
{
return
"モジュールの解説"
;
}
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all classes, structs and unions.
*/
QCString
trClassDocumentation
()
{
return
"クラスの解説"
;
}
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all files.
*/
QCString
trFileDocumentation
()
{
return
"ファイルの解説"
;
}
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all examples.
*/
QCString
trExampleDocumentation
()
{
return
"例題の解説"
;
}
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all related pages.
*/
QCString
trPageDocumentation
()
{
return
"ページの解説"
;
}
/*! This is used in LaTeX as the title of the document */
QCString
trReferenceManual
()
{
return
"リファレンスマニュアル"
;
}
/*! This is used in the documentation of a file as a header before the
* list of defines
*/
QCString
trDefines
()
{
return
"マクロ定義"
;
}
/*! This is used in the documentation of a file as a header before the
* list of function prototypes
*/
QCString
trFuncProtos
()
{
return
"関数プロトタイプ"
;
}
/*! This is used in the documentation of a file as a header before the
* list of typedefs
*/
QCString
trTypedefs
()
{
return
"型定義"
;
}
/*! This is used in the documentation of a file as a header before the
* list of enumerations
*/
QCString
trEnumerations
()
{
return
"列挙型"
;
}
/*! This is used in the documentation of a file as a header before the
* list of (global) functions
*/
QCString
trFunctions
()
{
return
"関数"
;
}
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
QCString
trVariables
()
{
return
"変数"
;
}
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
QCString
trEnumerationValues
()
{
return
"列挙型値"
;
}
QCString
trReimplementedFrom
()
{
return
"次を再定義"
;
}
QCString
trReimplementedIn
()
{
return
"次で再定義"
;
}
/*! This is used in man pages as the author section. */
QCString
trAuthor
()
{
return
"作者"
;
}
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
*/
QCString
trDefineDocumentation
()
{
return
"マクロ定義の解説"
;
}
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for function prototypes
*/
QCString
trFunctionPrototypeDocumentation
()
{
return
"関数プロトタイプの解説"
;
}
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs
*/
QCString
trTypedefDocumentation
()
{
return
"型定義の解説"
;
}
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types
*/
QCString
trEnumerationTypeDocumentation
()
{
return
"列挙型の解説"
;
}
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values
*/
QCString
trEnumerationValueDocumentation
()
{
return
"列挙型値の解説"
;
}
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for functions
*/
QCString
trFunctionDocumentation
()
{
return
"関数の解説"
;
}
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for variables
*/
QCString
trVariableDocumentation
()
{
return
"変数の解説"
;
}
/*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds
*/
QCString
trCompounds
()
{
return
"データ構造"
;
}
/*! This is used in the documentation of a group before the list of
* links to documented files
*/
QCString
trFiles
()
{
return
"ファイル"
;
}
/*! This is used in the standard footer of each page and indicates when
* the page was generated
*/
QCString
trGeneratedAt
(
const
char
*
date
,
const
char
*
projName
)
{
QCString
result
;
...
...
@@ -209,46 +411,75 @@ class TranslatorJapanese : public Translator
result
+=
(
QCString
)
date
+
"に生成されました。"
;
return
result
;
}
/*! This is part of the sentence used in the standard footer of each page.
*/
QCString
trWrittenBy
()
{
return
"
を開発したのは
"
;
return
"
の開発者:
"
;
}
/*! this text is put before a class diagram */
QCString
trClassDiagram
(
const
char
*
clName
)
{
return
(
QCString
)
clName
+
"に対するクラス階層図"
;
}
/*! this text is generated when the \internal command is used. */
QCString
trForInternalUseOnly
()
{
return
"内部使用のみ。"
;
}
/*! this text is generated when the \reimp command is used. */
QCString
trReimplementedForInternalReasons
()
{
return
"内部的な理由により再実装されましたが、APIには影響しません。"
;
}
/*! this text is generated when the \warning command is used. */
QCString
trWarning
()
{
return
"注意"
;
}
/*! this text is generated when the \bug command is used. */
QCString
trBugsAndLimitations
()
{
return
"バグと制限"
;
}
/*! this text is generated when the \version command is used. */
QCString
trVersion
()
{
return
"バージョン"
;
}
/*! this text is generated when the \date command is used. */
QCString
trDate
()
{
return
"日付"
;
}
/*! this text is generated when the \author command is used. */
QCString
trAuthors
()
{
return
"作者"
;
}
/*! this text is generated when the \return command is used. */
QCString
trReturns
()
{
return
"戻り値"
;
}
/*! this text is generated when the \sa command is used. */
QCString
trSeeAlso
()
{
return
"参照"
;
}
/*! this text is generated when the \param command is used. */
QCString
trParameters
()
{
return
"引数"
;
}
/*! this text is generated when the \exception command is used. */
QCString
trExceptions
()
{
return
"例外"
;
}
/*! this text is used in the title page of a LaTeX document. */
QCString
trGeneratedBy
()
{
return
""
;
}
// new since 0.49-990307
// new since 0.49-990307
QCString
trNamespaces
()
{
return
"名前空間"
;
}
/*! used as the title of page containing all the index of all namespaces. */
QCString
trNamespaceList
()
{
return
"名前空間リスト"
;
}
/*! used as an introduction to the namespace list */
QCString
trNamespaceListDescription
(
bool
extractAll
)
{
QCString
result
=
"このリストは、簡易説明を持つすべての"
;
...
...
@@ -256,13 +487,324 @@ class TranslatorJapanese : public Translator
result
+=
"名前空間のリストです。"
;
return
result
;
}
/*! used in the class documentation as a header before the list of all
* friends of a class
*/
QCString
trFriends
()
{
return
"フレンド"
;
}
// new since 0.49-990405
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
//////////////////////////////////////////////////////////////////////////
/*! used in the class documentation as a header before the list of all
* related classes
*/
virtual
QCString
trRelatedFunctionDocumentation
()
{
return
"フレンドと関連する関数の解説"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
//////////////////////////////////////////////////////////////////////////
/*! used as the title of the HTML page of a class/struct/union */
QCString
trCompoundReference
(
const
char
*
clName
,
ClassDef
::
CompoundType
compType
)
{
QCString
result
=
""
;
switch
(
compType
)
{
case
ClassDef
:
:
Class
:
result
+=
"クラス "
;
break
;
case
ClassDef
:
:
Struct
:
result
+=
"構造体 "
;
break
;
case
ClassDef
:
:
Union
:
result
+=
"共用体 "
;
break
;
case
ClassDef
:
:
Interface
:
result
+=
"インタフェース"
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
"Exception "
;
break
;
//TODO:fixme
}
result
+=
(
QCString
)
clName
+
" の解説"
;
return
result
;
}
/*! used as the title of the HTML page of a file */
QCString
trFileReference
(
const
char
*
fileName
)
{
QCString
result
=
"ファイル "
+
(
QCString
)
fileName
+
" の解説"
;
return
result
;
}
/*! used as the title of the HTML page of a namespace */
QCString
trNamespaceReference
(
const
char
*
namespaceName
)
{
QCString
result
=
"名前空間 "
+
(
QCString
)
namespaceName
+
" の解説"
;
return
result
;
}
/*! \mgroup Class sections
* these are for the member sections of a class, struct or union
*/
QCString
trPublicMembers
()
{
return
"公開メンバ"
;
}
QCString
trPublicSlots
()
{
return
"公開スロット"
;
}
QCString
trSignals
()
{
return
"シグナル"
;
}
QCString
trStaticPublicMembers
()
{
return
"静的公開メンバ"
;
}
QCString
trProtectedMembers
()
{
return
"保護メンバ"
;
}
QCString
trProtectedSlots
()
{
return
"保護スロット"
;
}
QCString
trStaticProtectedMembers
()
{
return
"静的保護メンバ"
;
}
QCString
trPrivateMembers
()
{
return
"非公開メンバ"
;
}
QCString
trPrivateSlots
()
{
return
"非公開スロット"
;
}
QCString
trStaticPrivateMembers
()
{
return
"静的非公開メンバ"
;
}
/*! \endmgroup */
/*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put.
*/
QCString
trWriteList
(
int
numEntries
)
{
QCString
result
;
int
i
;
// the inherits list contain `numEntries' classes
for
(
i
=
0
;
i
<
numEntries
;
i
++
)
{
// use generateMarker to generate placeholders for the class links!
result
+=
generateMarker
(
i
);
// generate marker for entry i in the list
// (order is left to right)
if
(
i
!=
numEntries
-
1
)
// not the last entry, so we need a separator
{
if
(
i
<
numEntries
-
2
)
// not the fore last entry
result
+=
", "
;
else
// the fore last entry
result
+=
", と "
;
}
}
return
result
;
}
/*! used in class documentation to produce a list of base classes,
* if class diagrams are disabled.
*/
QCString
trInheritsList
(
int
numEntries
)
{
return
trWriteList
(
numEntries
)
+
"を継承しています。"
;
}
/*! used in class documentation to produce a list of super classes,
* if class diagrams are disabled.
*/
QCString
trInheritedByList
(
int
numEntries
)
{
return
trWriteList
(
numEntries
)
+
"に継承されています。"
;
}
/*! used in member documentation blocks to produce a list of
* members that are hidden by this one.
*/
QCString
trReimplementedFromList
(
int
numEntries
)
{
return
trWriteList
(
numEntries
)
+
"を再定義しています。"
;
}
/*! used in member documentation blocks to produce a list of
* all member that overwrite the implementation of this member.
*/
QCString
trReimplementedInList
(
int
numEntries
)
{
return
trWriteList
(
numEntries
)
+
"で再定義されています。"
;
}
/*! This is put above each page as a link to all members of namespaces. */
QCString
trNamespaceMembers
()
{
return
"名前空間メンバ"
;
}
/*! This is an introduction to the page with all namespace members */
QCString
trNamespaceMemberDescription
(
bool
extractAll
)
{
QCString
result
=
"これは"
;
if
(
!
extractAll
)
result
+=
"ドキュメント化された"
;
result
+=
"名前空間すべてのリストで、それぞれ"
;
if
(
extractAll
)
result
+=
"、名前空間の解説"
;
else
result
+=
"が属している名前空間"
;
result
+=
"へのリンクが張られています。"
;
return
result
;
}
/*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces.
*/
QCString
trNamespaceIndex
()
{
return
"名前空間索引"
;
}
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all namespaces.
*/
QCString
trNamespaceDocumentation
()
{
return
"名前空間の解説"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990522
//////////////////////////////////////////////////////////////////////////
/*! This is used in the documentation before the list of all
* namespaces in a file.
*/
QCString
trNamespaces
()
{
return
"名前空間"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990728
//////////////////////////////////////////////////////////////////////////
/*! This is put at the bottom of a class documentation page and is
* followed by a list of files that were used to generate the page.
*/
QCString
trGeneratedFromFiles
(
ClassDef
::
CompoundType
compType
,
bool
)
{
// here s is one of " Class", " Struct" or " Union"
// single is true implies a single file
QCString
result
=
(
QCString
)
"この"
;
switch
(
compType
)
{
case
ClassDef
:
:
Class
:
result
+=
"クラス"
;
break
;
case
ClassDef
:
:
Struct
:
result
+=
"構造体"
;
break
;
case
ClassDef
:
:
Union
:
result
+=
"共用体"
;
break
;
case
ClassDef
:
:
Interface
:
result
+=
"インタフェース"
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
"Exception"
;
break
;
//TODO:fixme
}
result
+=
"の解説は次のファイルから生成されました:"
;
return
result
;
}
/*! This is in the (quick) index as a link to the alphabetical compound
* list.
*/
QCString
trAlphabeticalList
()
{
return
"アルファベット順リスト"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990901
//////////////////////////////////////////////////////////////////////////
/*! This is used as the heading text for the retval command. */
QCString
trReturnValues
()
{
return
"戻り値"
;
}
/*! This is in the (quick) index as a link to the main page (index.html)
*/
QCString
trMainPage
()
{
return
"メインページ"
;
}
/*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
*/
QCString
trPageAbbreviation
()
{
return
"p."
;
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991003
//////////////////////////////////////////////////////////////////////////
QCString
trSources
()
{
return
"ソース"
;
}
QCString
trDefinedAtLineInSourceFile
()
{
return
"ファイル @1 の @0 行で定義されています。"
;
}
QCString
trDefinedInSourceFile
()
{
return
"ファイル @0 で定義されています。"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.0.0
//////////////////////////////////////////////////////////////////////////
QCString
trDeprecated
()
{
return
"Deprecated"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.0
//////////////////////////////////////////////////////////////////////////
/*! this text is put before a collaboration diagram */
QCString
trCollaborationDiagram
(
const
char
*
clName
)
{
return
(
QCString
)
clName
+
"のコラボレーション図"
;
}
/*! this text is put before an include dependency graph */
QCString
trInclDepGraph
(
const
char
*
fName
)
{
return
(
QCString
)
fName
+
"のインクルード依存関係図"
;
}
/*! header that is put before the list of constructor/destructors. */
QCString
trConstructorDocumentation
()
{
return
"コンストラクタとデストラクタの解説"
;
}
/*! Used in the file documentation to point to the corresponding sources. */
QCString
trGotoSourceCode
()
{
return
"このファイルのソースコードを見る。"
;
}
/*! Used in the file sources to point to the corresponding documentation. */
QCString
trGotoDocumentation
()
{
return
"このファイルの解説を見る。"
;
}
/*! Text for the \pre command */
QCString
trPrecondition
()
{
return
"前提条件"
;
}
/*! Text for the \post command */
QCString
trPostcondition
()
{
return
"Postcondition"
;
}
/*! Text for the \invariant command */
QCString
trInvariant
()
{
return
"Invariant"
;
}
/*! Text shown before a multi-line variable/enum initialization */
QCString
trInitialValue
()
{
return
"初期値:"
;
}
/*! Text used the source code in the file index */
QCString
trCode
()
{
return
"コード"
;
}
QCString
trGraphicalHierarchy
()
{
return
"クラス階層図"
;
}
QCString
trGotoGraphicalHierarchy
()
{
return
"クラス階層図を見る。"
;
}
QCString
trGotoTextualHierarchy
()
{
return
"クラス階層図(テキスト)を見る。"
;
}
QCString
trPageIndex
()
{
return
"ページ索引"
;
}
};
#endif
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