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
6f118034
Commit
6f118034
authored
Dec 07, 2002
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.3-rc1-20021207
parent
f3e7209f
Changes
40
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
40 changed files
with
760 additions
and
414 deletions
+760
-414
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
config.doc
doc/config.doc
+8
-0
language.doc
doc/language.doc
+7
-8
maintainers.txt
doc/maintainers.txt
+1
-1
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+1
-1
code.l
src/code.l
+35
-19
config.l
src/config.l
+8
-0
docparser.cpp
src/docparser.cpp
+222
-185
docparser.h
src/docparser.h
+6
-3
doctokenizer.h
src/doctokenizer.h
+1
-1
doctokenizer.l
src/doctokenizer.l
+46
-8
dot.cpp
src/dot.cpp
+122
-69
dot.h
src/dot.h
+2
-0
doxygen.cpp
src/doxygen.cpp
+97
-10
doxygen.h
src/doxygen.h
+3
-2
entry.h
src/entry.h
+4
-6
filedef.cpp
src/filedef.cpp
+1
-1
groupdef.cpp
src/groupdef.cpp
+1
-1
htmldocvisitor.cpp
src/htmldocvisitor.cpp
+9
-2
latexdocvisitor.cpp
src/latexdocvisitor.cpp
+10
-2
latexgen.cpp
src/latexgen.cpp
+1
-0
mandocvisitor.cpp
src/mandocvisitor.cpp
+5
-2
memberdef.cpp
src/memberdef.cpp
+4
-3
membergroup.cpp
src/membergroup.cpp
+3
-2
membergroup.h
src/membergroup.h
+10
-1
message.cpp
src/message.cpp
+40
-46
message.h
src/message.h
+1
-0
namespacedef.cpp
src/namespacedef.cpp
+1
-1
page.h
src/page.h
+1
-1
perlmodgen.cpp
src/perlmodgen.cpp
+3
-0
printdocvisitor.h
src/printdocvisitor.h
+1
-0
rtfdocvisitor.cpp
src/rtfdocvisitor.cpp
+7
-4
scanner.l
src/scanner.l
+41
-17
translator_it.h
src/translator_it.h
+21
-2
util.cpp
src/util.cpp
+24
-9
xmldocvisitor.cpp
src/xmldocvisitor.cpp
+5
-1
xmlgen.cpp
src/xmlgen.cpp
+2
-0
No files found.
INSTALL
View file @
6f118034
DOXYGEN Version 1.3-rc1-20021
128
DOXYGEN Version 1.3-rc1-20021
207
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (
28 Nov
ember 2002)
Dimitri van Heesch (
07 Dec
ember 2002)
README
View file @
6f118034
DOXYGEN Version 1.3_rc1_20021
128
DOXYGEN Version 1.3_rc1_20021
207
Please read INSTALL for compilation instructions.
...
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (
28 Nov
ember 2002)
Dimitri van Heesch (dimitri@stack.nl) (
07 Dec
ember 2002)
VERSION
View file @
6f118034
1.3-rc1-20021
128
1.3-rc1-20021
207
doc/config.doc
View file @
6f118034
...
...
@@ -195,6 +195,7 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_treeview_width
TREEVIEW_WIDTH
\
refitem
cfg_verbatim_headers
VERBATIM_HEADERS
\
refitem
cfg_warn_format
WARN_FORMAT
\
refitem
cfg_warn_if_doc_error
WARN_IF_DOC_ERROR
\
refitem
cfg_warn_if_undocumented
WARN_IF_UNDOCUMENTED
\
refitem
cfg_warn_logfile
WARN_LOGFILE
\
refitem
cfg_warnings
WARNINGS
...
...
@@ -583,6 +584,13 @@ function's detailed documentation block.
for undocumented members. If \c EXTRACT_ALL is set to \c YES then this flag will
automatically be disabled.
\anchor cfg_warn_if_doc_error
<dt>\c WARN_IF_DOC_ERROR <dd>
If \c WARN_IF_DOC_ERROR is set to \c YES, doxygen will generate warnings for
potential errors in the documentation, such as not documenting some
parameters in a documented function, or documenting parameters that
don'
t
exist
or
using
markup
commands
wrongly
.
\
anchor
cfg_warn_format
<
dt
>\
c
WARN_FORMAT
<
dd
>
\
addindex
WARN_FORMAT
...
...
doc/language.doc
View file @
6f118034
...
...
@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
that the text fragments that doxygen generates can be produced in
languages other than English (the default) at configuration time.
Currently (version 1.
3pre1
), 28 languages
Currently (version 1.
2.14-20020317
), 28 languages
are supported (sorted alphabetically):
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Czech, Danish, Dutch, English, Finnish,
...
...
@@ -119,9 +119,9 @@ when the translator was updated.
</TR>
<TR BGCOLOR="#ffffff">
<TD>German</TD>
<TD>Jens Seidel<
br>Jens Breitenstein<
/TD>
<TD>jensseidel@NOSPAM.users.sf.net<
br>Jens.Breitenstein@NOSPAM.tlc.de<
/TD>
<TD>
1.2.17
</TD>
<TD>Jens Seidel</TD>
<TD>jensseidel@NOSPAM.users.sf.net</TD>
<TD>
up-to-date
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>Greek</TD>
...
...
@@ -139,7 +139,7 @@ when the translator was updated.
<TD>Italian</TD>
<TD>Alessandro Falappa<br>Ahmed Aldo Faisal</TD>
<TD>alessandro@NOSPAM.falappa.net<br>aaf23@NOSPAM.cam.ac.uk</TD>
<TD>
1.2.18
</TD>
<TD>
up-to-date
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>Japanese</TD>
...
...
@@ -253,14 +253,13 @@ when the translator was updated.
\hline
French & Xavier Outhier & {\tt xouthier@yahoo.fr} & 1.2.17 \\
\hline
German & Jens Seidel & {\tt jensseidel@users.sf.net} & 1.2.17 \\
& Jens Breitenstein & {\tt Jens.Breitenstein@tlc.de} & \\
German & Jens Seidel & {\tt jensseidel@users.sf.net} & up-to-date \\
\hline
Greek & Harry Kalogirou & {\tt harkal@rainbow.cs.unipi.gr} & 1.2.11 \\
\hline
Hungarian & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt foldvari@diatronltd.com} & 1.2.1 \\
\hline
Italian & Alessandro Falappa & {\tt alessandro@falappa.net} &
1.2.18
\\
Italian & Alessandro Falappa & {\tt alessandro@falappa.net} &
up-to-date
\\
& Ahmed Aldo Faisal & {\tt aaf23@cam.ac.uk} & \\
\hline
Japanese & Ryunosuke Sato & {\tt puyo@mint.freemail.ne.jp} & 1.2.18 \\
...
...
doc/maintainers.txt
View file @
6f118034
...
...
@@ -49,7 +49,7 @@ Alessandro Falappa: alessandro@falappa.net
Ahmed Aldo Faisal: aaf23@cam.ac.uk
Japanese
Ryunosuke Sato
: puyo@mint.freemail.ne.jp
Ryunosuke Sato
h: sun594@hotmail.com
Kenji Nagamatsu: naga@joyful.club.ne.jp
Korean
...
...
packages/rpm/doxygen.spec
View file @
6f118034
Summary: A documentation system for C/C++.
Name: doxygen
Version: 1.3_rc1_20021
128
Version: 1.3_rc1_20021
207
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
...
...
src/classdef.cpp
View file @
6f118034
...
...
@@ -556,7 +556,7 @@ void ClassDef::distributeMemberGroupDocumentation()
void
ClassDef
::
findSectionsInDocumentation
()
{
docFindSections
(
documentation
(),
0
,
this
,
0
);
docFindSections
(
documentation
(),
0
,
this
,
0
,
docFile
()
);
MemberGroupSDict
::
Iterator
mgli
(
*
memberGroupSDict
);
MemberGroup
*
mg
;
for
(;(
mg
=
mgli
.
current
());
++
mgli
)
...
...
src/code.l
View file @
6f118034
...
...
@@ -109,13 +109,15 @@ static int g_lastCContext;
class VariableContext
{
public:
static const ClassDef *dummyContext;
class Scope : public SDict<ClassDef>
{
public:
Scope() : SDict<ClassDef>(17) {}
};
VariableContext()
VariableContext()
{
m_scopes.setAutoDelete(TRUE);
}
...
...
@@ -157,12 +159,14 @@ class VariableContext
void addVariable(const QCString &type,const QCString &name);
ClassDef *findVariable(const QCString &name);
private:
Scope m_globalScope;
QList<Scope> m_scopes;
};
void VariableContext::addVariable(const QCString &type,const QCString &name)
{
//printf("VariableContext::addVariable(%s,%s)\n",type.data(),name.data());
QCString ltype = type.simplifyWhiteSpace();
QCString lname = name.simplifyWhiteSpace();
if (ltype.left(7)=="struct ")
...
...
@@ -191,6 +195,11 @@ void VariableContext::addVariable(const QCString &type,const QCString &name)
// probably a template class, try without arguments as well
addVariable(ltype.left(i),name);
}
else // add a dummy entry so the name is hidden
{
//printf("adding dummy context!\n");
scope->append(lname,dummyContext);
}
}
ClassDef *VariableContext::findVariable(const QCString &name)
...
...
@@ -215,6 +224,8 @@ ClassDef *VariableContext::findVariable(const QCString &name)
return result;
}
const ClassDef *VariableContext::dummyContext = (ClassDef*)0x8;
static VariableContext g_theVarContext;
//-------------------------------------------------------------------
...
...
@@ -539,8 +550,11 @@ static MemberDef *setCallContextForVar(const QCString &name)
ClassDef *mcd = g_theVarContext.findVariable(name);
if (mcd) // local variable
{
//printf("local var `%s' mcd=%s\n",name.data(),mcd->name().data());
g_theCallContext.setClass(mcd);
if (mcd!=VariableContext::dummyContext)
{
//printf("local var `%s' mcd=%s\n",name.data(),mcd->name().data());
g_theCallContext.setClass(mcd);
}
}
else
{
...
...
@@ -611,7 +625,8 @@ static void addDocCrossReference(MemberDef *src,MemberDef *dst)
}
static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,int *clNameLen=0)
static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,
bool typeOnly=FALSE)
{
int i=0;
//printf("generateClassOrGlobalLink(clName=%s)\n",clName);
...
...
@@ -621,12 +636,12 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,int
clName++;
}
QCString className=clName;
if (clNameLen) *clNameLen=0;
if (className.isEmpty()) return;
ClassDef *cd=0;
if (!g_theVarContext.findVariable(className)) // not a local variable
{
//printf("not a local var!\n");
Definition *d = g_currentDefinition;
cd = getResolvedClass(d,className);
if (cd==0 && (i=className.find('<'))!=-1)
...
...
@@ -650,11 +665,10 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,int
}
}
writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),0,className);
if (clNameLen) *clNameLen=className.length()-i-1;
}
else
{
if (cd==0) // not a class, see if it is a global enum/variable/typedef.
if (cd==0
&& !typeOnly
) // not a class, see if it is a global enum/variable/typedef.
{
MemberDef *md = setCallContextForVar(clName);
//printf("is a global md=%p\n",md);
...
...
@@ -677,7 +691,6 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,int
}
codifyLines(clName);
if (clNameLen) *clNameLen=className.length()-1;
}
}
...
...
@@ -804,23 +817,26 @@ static void generateMemberLink(BaseCodeDocInterface &ol,const QCString &varName,
ClassDef *vcd = g_theVarContext.findVariable(varName);
if (vcd)
{
//printf("Class found!\n");
if (getLink(vcd->name(),memName,ol))
{
//printf("Found result!\n");
return;
}
BaseClassListIterator bcli(*vcd->baseClasses());
for ( ; bcli.current() ; ++bcli)
if (vcd!=VariableContext::dummyContext)
{
if (getLink(bcli.current()->classDef->name(),memName,ol))
//printf("Class found!\n");
if (getLink(vcd->name(),memName,ol))
{
//printf("Found result!\n");
return;
}
BaseClassListIterator bcli(*vcd->baseClasses());
for ( ; bcli.current() ; ++bcli)
{
if (getLink(bcli.current()->classDef->name(),memName,ol))
{
//printf("Found result!\n");
return;
}
}
}
}
else // variable not in current context, maybe it is
else // variable not in current context, maybe it is
in a parent context
{
vcd = getResolvedClass(g_currentDefinition,g_classScope);
if (vcd && vcd->isLinkable())
...
...
@@ -1536,7 +1552,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
<MemberCall2,FuncCall>[a-z_A-Z][:a-z_A-Z0-9]*({B}*"<"[^\n\<\>]*">")? {
addParmType();
g_parmName=yytext;
generateClassOrGlobalLink(*g_code,yytext);
generateClassOrGlobalLink(*g_code,yytext
,TRUE
);
}
<MemberCall2,FuncCall>, {
g_code->codify(yytext);
...
...
src/config.l
View file @
6f118034
...
...
@@ -1664,6 +1664,14 @@ void Config::create()
"automatically be disabled. \n",
TRUE
);
cb = addBool(
"WARN_IF_DOC_ERROR",
"If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for \n"
"potential errors in the documentation, such as not documenting some \n"
"parameters in a documented function, or documenting parameters that \n"
"don't exist or using markup commands wrongly. \n",
TRUE
);
cs = addString(
"WARN_FORMAT",
"The WARN_FORMAT tag determines the format of the warning messages that \n"
...
...
src/docparser.cpp
View file @
6f118034
This diff is collapsed.
Click to expand it.
src/docparser.h
View file @
6f118034
...
...
@@ -59,7 +59,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
DocNode
*
validatingParseText
(
const
char
*
input
);
/*! Searches for section and anchor commands in the input */
void
docFindSections
(
const
char
*
input
,
PageInfo
*
pi
,
Definition
*
d
,
MemberGroup
*
m
);
void
docFindSections
(
const
char
*
input
,
PageInfo
*
pi
,
Definition
*
d
,
MemberGroup
*
m
,
const
char
*
fileName
);
//---------------------------------------------------------------------------
...
...
@@ -156,6 +156,7 @@ template<class T> class CompAccept
protected
:
QList
<
DocNode
>
m_children
;
QList
<
DocNode
>
&
getChildren
()
const
{
return
m_children
;
}
};
...
...
@@ -297,7 +298,7 @@ class DocSymbol : public DocNode
{
public
:
enum
SymType
{
Unknown
=
0
,
BSlash
,
At
,
Less
,
Greater
,
Amp
,
Dollar
,
Hash
,
Percent
,
Copy
,
Apos
,
Quot
,
Uml
,
Acute
,
Grave
,
Circ
,
Tilde
,
Szlig
,
Copy
,
Tm
,
Reg
,
Apos
,
Quot
,
Uml
,
Acute
,
Grave
,
Circ
,
Tilde
,
Szlig
,
Cedil
,
Ring
,
Nbsp
};
DocSymbol
(
DocNode
*
parent
,
SymType
s
,
char
letter
=
'\0'
)
:
...
...
@@ -506,6 +507,7 @@ class DocTitle : public CompAccept<DocTitle>, public DocNode
public
:
DocTitle
(
DocNode
*
parent
)
:
m_parent
(
parent
)
{}
void
parse
();
void
parseFromString
(
const
QString
&
title
);
Kind
kind
()
const
{
return
Kind_Title
;
}
DocNode
*
parent
()
const
{
return
m_parent
;
}
void
accept
(
DocVisitor
*
v
)
{
CompAccept
<
DocTitle
>::
accept
(
this
,
v
);
}
...
...
@@ -856,11 +858,12 @@ class DocSimpleSect : public CompAccept<DocSimpleSect>, public DocNode
enum
Type
{
Unknown
,
See
,
Return
,
Author
,
Authors
,
Version
,
Since
,
Date
,
Note
,
Warning
,
Pre
,
Post
,
Invar
,
Remark
,
Attention
,
User
Note
,
Warning
,
Pre
,
Post
,
Invar
,
Remark
,
Attention
,
User
,
Rcs
};
DocSimpleSect
(
DocNode
*
parent
,
Type
t
);
virtual
~
DocSimpleSect
();
int
parse
(
bool
userTitle
);
int
parseRcs
();
Kind
kind
()
const
{
return
Kind_SimpleSect
;
}
Type
type
()
const
{
return
m_type
;
}
DocNode
*
parent
()
const
{
return
m_parent
;
}
...
...
src/doctokenizer.h
View file @
6f118034
...
...
@@ -111,7 +111,7 @@ const char *tokToString(int token);
// operations on the scanner
void
doctokenizerYYFindSections
(
const
char
*
input
,
PageInfo
*
pi
,
Definition
*
d
,
MemberGroup
*
mg
);
MemberGroup
*
mg
,
const
char
*
fileName
);
void
doctokenizerYYinit
(
const
char
*
input
,
const
char
*
fileName
);
void
doctokenizerYYcleanup
();
void
doctokenizerYYpushContext
();
...
...
src/doctokenizer.l
View file @
6f118034
...
...
@@ -51,6 +51,7 @@ static MemberGroup *g_memberGroup;
static QCString g_secLabel;
static QCString g_secTitle;
static SectionInfo::SectionType g_secType;
static QCString g_endMarker;
struct DocLexerContext
{
...
...
@@ -286,10 +287,10 @@ OPMASK ({BLANK}*{OPNORM}({FUNCARG}?))|({OPCAST}{FUNCARG})
LNKWORD1 ("::"|"#")?{SCOPEMASK}
CVSPEC {BLANK}*("const"|"volatile")
LNKWORD2 {SCOPEPRE}*"operator"{OPMASK}
WORD1 [^ \t\n\r\\@<>(){}&$#,.]+|"{"|"}"
WORD2 "."|","|"("|")"
WORD1NQ [^ \t\n\r\\@<>(){}&$#,."]+
WORD2NQ "."|","|"("|")"
WORD1 [^ \t\n\r\\@<>()
\[\]:;\?
{}&$#,.]+|"{"|"}"
WORD2 "."|","|"("|")"
|"["|"]"|":"|";"|"\?"
WORD1NQ [^ \t\n\r\\@<>()
\[\]:;\?
{}&$#,."]+
WORD2NQ "."|","|"("|")"
|"["|"]"|":"|";"|"\?"
HTMLTAG "<"(("/")?){ID}({WS}+{ATTRIB})*">"
HTMLKEYL "strong"|"center"|"table"|"caption"|"small"|"code"|"dfn"|"var"|"img"|"pre"|"sub"|"tr"|"td"|"th"|"ol"|"ul"|"li"|"tt"|"kbd"|"em"|"hr"|"dl"|"dt"|"dd"|"br"|"i"|"a"|"b"|"p"
HTMLKEYU "STRONG"|"CENTER"|"TABLE"|"CAPTION"|"SMALL"|"CODE"|"DFN"|"VAR"|"IMG"|"PRE"|"SUB"|"TR"|"TD"|"TH"|"OL"|"UL"|"LI"|"TT"|"KBD"|"EM"|"HR"|"DL"|"DT"|"DD"|"BR"|"I"|"A"|"B"|"P"
...
...
@@ -325,6 +326,7 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
%s St_SecLabel1
%s St_SecLabel2
%s St_SecTitle
%x St_SecSkip
%%
<St_Para>\r /* skip carriage return */
...
...
@@ -383,9 +385,9 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
}
<St_Para>"$"{ID}":"[^\n$]+"$" { /* RCS tag */
QString tagName(yytext+1);
int i=tagName.find(':');
g_token->name = tagName.left(i);
g_token->text = tagName.mid(i
+1,tagName.length()-i
-2);
int i
ndex
=tagName.find(':');
g_token->name = tagName.left(i
ndex
);
g_token->text = tagName.mid(i
ndex+1,tagName.length()-index
-2);
return TK_RCSTAG;
}
<St_Para,St_HtmlOnly>"$("{ID}")" { /* environment variable */
...
...
@@ -720,6 +722,41 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
g_secType = SectionInfo::Paragraph;
BEGIN(St_SecLabel2);
}
<St_Sections>{CMD}"verbatim" {
g_endMarker="endverbatim";
BEGIN(St_SecSkip);
}
<St_Sections>{CMD}"htmlonly" {
g_endMarker="endhtmlonly";
BEGIN(St_SecSkip);
}
<St_Sections>{CMD}"latexonly" {
g_endMarker="endlatexonly";
BEGIN(St_SecSkip);
}
<St_Sections>{CMD}"code" {
g_endMarker="endcode";
BEGIN(St_SecSkip);
}
<St_Sections>"<!--" {
g_endMarker="-->";
BEGIN(St_SecSkip);
}
<St_SecSkip>{CMD}{ID} {
if (strcmp(yytext+1,g_endMarker)==0)
{
BEGIN(St_Sections);
}
}
<St_SecSkip>"-->" {
if (strcmp(yytext,g_endMarker)==0)
{
BEGIN(St_Sections);
}
}
<St_SecSkip>[^a-z_A-Z0-9\-]+
<St_SecSkip>.
<St_SecSkip>\n
<St_Sections>.
<St_Sections>\n
<St_SecLabel1>{LABELID} {
...
...
@@ -756,7 +793,7 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
//--------------------------------------------------------------------------
void doctokenizerYYFindSections(const char *input,PageInfo *pi,Definition *d,
MemberGroup *mg)
MemberGroup *mg
,const char *fileName
)
{
if (input==0) return;
g_inputString = input;
...
...
@@ -765,6 +802,7 @@ void doctokenizerYYFindSections(const char *input,PageInfo *pi,Definition *d,
g_pageInfo = pi;
g_definition = d;
g_memberGroup = mg;
g_fileName = fileName;
BEGIN(St_Sections);
doctokenizerYYlineno = 1;
doctokenizerYYlex();
...
...
src/dot.cpp
View file @
6f118034
This diff is collapsed.
Click to expand it.
src/dot.h
View file @
6f118034
...
...
@@ -173,5 +173,7 @@ class DotInclDepGraph
void
generateGraphLegend
(
const
char
*
path
);
void
writeDotGraphFromFile
(
const
char
*
inFile
,
const
char
*
outDir
,
const
char
*
outFile
,
GraphOutputFormat
format
);
QString
getDotImageMapFromFile
(
const
QString
&
inFile
,
const
QString
&
outDir
);
#endif
src/doxygen.cpp
View file @
6f118034
...
...
@@ -103,8 +103,9 @@ StringDict Doxygen::tagDestinationDict(257); // all tag locations
// a member group
QDict
<
void
>
Doxygen
::
expandAsDefinedDict
(
257
);
// all macros that should be expanded
QIntDict
<
QCString
>
Doxygen
::
memberHeaderDict
(
1009
);
// dictionary of the member groups heading
QIntDict
<
QCString
>
Doxygen
::
memberDocDict
(
1009
);
// dictionary of the member groups heading
QIntDict
<
MemberGroupInfo
>
Doxygen
::
memGrpInfoDict
(
1009
);
// dictionary of the member groups heading
//QIntDict<QCString> Doxygen::memberHeaderDict(1009); // dictionary of the member groups heading
//QIntDict<QCString> Doxygen::memberDocDict(1009); // dictionary of the member groups heading
PageInfo
*
Doxygen
::
mainPage
=
0
;
QTextStream
Doxygen
::
tagFile
;
...
...
@@ -173,10 +174,8 @@ void statistics()
compoundKeywordDict
.
statistics
();
fprintf
(
stderr
,
"--- expandAsDefinedDict stats ----
\n
"
);
Doxygen
::
expandAsDefinedDict
.
statistics
();
fprintf
(
stderr
,
"--- memberHeaderDict stats ----
\n
"
);
Doxygen
::
memberHeaderDict
.
statistics
();
fprintf
(
stderr
,
"--- memberDocDict stats ----
\n
"
);
Doxygen
::
memberDocDict
.
statistics
();
fprintf
(
stderr
,
"--- memGrpInfoDict stats ----
\n
"
);
Doxygen
::
memGrpInfoDict
.
statistics
();
}
...
...
@@ -1061,10 +1060,13 @@ static void findUsingDirectives(Entry *root)
static
void
findUsingDeclarations
(
Entry
*
root
)
{
if
(
root
->
section
==
Entry
::
USINGDECL_SEC
)
if
(
root
->
section
==
Entry
::
USINGDECL_SEC
&&
!
(
root
->
parent
->
section
&
Entry
::
COMPOUND_MASK
)
// not a class/struct member
)
{
//printf("Found using declaration %s at line %d of %s\n",
// root->name.data(),root->startLine,root->fileName.data());
printf
(
"Found using declaration %s at line %d of %s inside section %x
\n
"
,
root
->
name
.
data
(),
root
->
startLine
,
root
->
fileName
.
data
(),
root
->
parent
->
section
);
bool
ambig
;
if
(
!
root
->
name
.
isEmpty
())
{
...
...
@@ -1142,6 +1144,88 @@ static void findUsingDeclarations(Entry *root)
//----------------------------------------------------------------------
static
void
findUsingDeclImports
(
Entry
*
root
)
{
if
(
root
->
section
==
Entry
::
USINGDECL_SEC
&&
(
root
->
parent
->
section
&
Entry
::
COMPOUND_MASK
)
// in a class/struct member
)
{
//printf("Found using declaration %s at line %d of %s inside section %x\n",
// root->name.data(),root->startLine,root->fileName.data(),
// root->parent->section);
QCString
fullName
=
removeRedundantWhiteSpace
(
root
->
parent
->
name
);
fullName
=
stripAnonymousNamespaceScope
(
fullName
);
fullName
=
stripTemplateSpecifiersFromScope
(
fullName
);
ClassDef
*
cd
=
getClass
(
fullName
);
if
(
cd
)
{
//printf("found class %s\n",cd->name().data());
int
i
=
root
->
name
.
find
(
"::"
);
if
(
i
!=-
1
)
{
QCString
scope
=
root
->
name
.
left
(
i
);
QCString
memName
=
root
->
name
.
right
(
root
->
name
.
length
()
-
i
-
2
);
ClassDef
*
bcd
=
getResolvedClass
(
cd
,
scope
);
if
(
bcd
)
{
//printf("found class %s\n",bcd->name().data());
MemberNameInfoSDict
*
mndict
=
bcd
->
memberNameInfoSDict
();
MemberNameInfo
*
mni
=
mndict
->
find
(
memName
);
if
(
mni
)
{
MemberNameInfoIterator
mnii
(
*
mni
);
MemberInfo
*
mi
;
for
(
;
(
mi
=
mnii
.
current
())
;
++
mnii
)
{
MemberDef
*
md
=
mi
->
memberDef
;
if
(
md
&&
md
->
protection
()
!=
Private
)
{
//printf("found member %s\n",mni->memberName());
MemberDef
*
newMd
=
new
MemberDef
(
root
->
fileName
,
root
->
startLine
,
md
->
typeString
(),
memName
,
md
->
argsString
(),
md
->
excpString
(),
root
->
protection
,
root
->
virt
,
md
->
isStatic
(),
FALSE
,
md
->
memberType
(),
md
->
templateArguments
(),
md
->
argumentList
()
);
cd
->
insertMember
(
newMd
);
newMd
->
setMemberClass
(
cd
);
if
(
!
root
->
doc
.
isEmpty
()
||
!
root
->
brief
.
isEmpty
())
{
newMd
->
setDocumentation
(
root
->
doc
,
root
->
docFile
,
root
->
docLine
);
newMd
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
}
else
{
newMd
->
setDocumentation
(
md
->
documentation
(),
md
->
docFile
(),
md
->
docLine
());
newMd
->
setBriefDescription
(
md
->
briefDescription
(),
md
->
briefFile
(),
md
->
briefLine
());
}
newMd
->
setDefinition
(
md
->
definition
());
newMd
->
setBitfields
(
md
->
bitfieldString
());
newMd
->
addSectionsToDefinition
(
root
->
anchors
);
newMd
->
setBodySegment
(
md
->
getStartBodyLine
(),
md
->
getEndBodyLine
());
newMd
->
setBodyDef
(
md
->
getBodyDef
());
newMd
->
setInitializer
(
md
->
initializer
());
newMd
->
setMaxInitLines
(
md
->
initializerLines
());
newMd
->
setMemberGroupId
(
root
->
mGrpId
);
newMd
->
setMemberSpecifiers
(
md
->
getMemberSpecifiers
());
}
}
}
}
}
}
}
EntryListIterator
eli
(
*
root
->
sublist
);
Entry
*
e
;
for
(;(
e
=
eli
.
current
());
++
eli
)
{
findUsingDeclImports
(
e
);
}
}
//----------------------------------------------------------------------
static
MemberDef
*
addVariableToClass
(
Entry
*
root
,
ClassDef
*
cd
,
...
...
@@ -7702,6 +7786,9 @@ void parseInput()
findMemberDocumentation
(
root
);
// may introduce new members !
transferRelatedFunctionDocumentation
();
msg
(
"Searching for members imported via using declarations...
\n
"
);
findUsingDeclImports
(
root
);
msg
(
"Building page list...
\n
"
);
buildPageList
(
root
);
...
...
@@ -7833,7 +7920,7 @@ void generateOutput()
msg
(
"Resolving user defined references...
\n
"
);
resolveUserReferences
();
msg
(
"Finding anchor
and section
in the documentation...
\n
"
);
msg
(
"Finding anchor
s and sections
in the documentation...
\n
"
);
findSectionsInDocumentation
();
msg
(
"Generating index page...
\n
"
);
...
...
src/doxygen.h
View file @
6f118034
...
...
@@ -87,8 +87,9 @@ class Doxygen
static
FormulaDict
formulaNameDict
;
static
StringDict
tagDestinationDict
;
static
StringDict
aliasDict
;
static
QIntDict
<
QCString
>
memberHeaderDict
;
// dictionary of the member groups heading
static
QIntDict
<
QCString
>
memberDocDict
;
// dictionary of the member groups heading
static
QIntDict
<
MemberGroupInfo
>
memGrpInfoDict
;
//static QIntDict<QCString> memberHeaderDict; // dictionary of the member groups heading
//static QIntDict<QCString> memberDocDict; // dictionary of the member groups heading
static
QDict
<
void
>
expandAsDefinedDict
;
static
NamespaceDef
*
globalScope
;
static
QDict
<
RefList
>
*
specialLists
;
// array of special lists: todo, test, bug, deprecated ...
...
...
src/entry.h
View file @
6f118034
...
...
@@ -132,15 +132,13 @@ struct Grouping
enum
GroupPri_t
{
GROUPING_LOWEST
,
GROUPING_AUTO_WEAK
=
GROUPING_LOWEST
,
//!< membership in group was defined via \@weakgroup \@{ \@}
GROUPING_AUTO_WEAK
=
GROUPING_LOWEST
,
//!< membership in group was defined via \@weakgroup \@{ \@}
GROUPING_AUTO_ADD
,
//!< membership in group was defined via \@add[to]group \@{ \@}
GROUPING_AUTO_DEF
,
//!< membership in group was defined via \@defgroup \@{ \@}
GROUPING_AUTO_HIGHEST
=
GROUPING_AUTO_DEF
,
GROUPING_AUTO_HIGHEST
=
GROUPING_AUTO_DEF
,
GROUPING_INGROUP
,
//!< membership in group was defined by \@ingroup
GROUPING_HIGHEST
=
GROUPING_INGROUP
GROUPING_HIGHEST
=
GROUPING_INGROUP
};
static
const
char
*
getGroupPriName
(
GroupPri_t
priority
)
...
...
src/filedef.cpp
View file @
6f118034
...
...
@@ -100,7 +100,7 @@ void FileDef::distributeMemberGroupDocumentation()
void
FileDef
::
findSectionsInDocumentation
()
{
docFindSections
(
documentation
(),
0
,
this
,
0
);
docFindSections
(
documentation
(),
0
,
this
,
0
,
docFile
()
);
MemberGroupSDict
::
Iterator
mgli
(
*
memberGroupSDict
);
MemberGroup
*
mg
;
for
(;(
mg
=
mgli
.
current
());
++
mgli
)
...
...
src/groupdef.cpp
View file @
6f118034
...
...
@@ -106,7 +106,7 @@ void GroupDef::distributeMemberGroupDocumentation()
void
GroupDef
::
findSectionsInDocumentation
()
{
docFindSections
(
documentation
(),
0
,
this
,
0
);
docFindSections
(
documentation
(),
0
,
this
,
0
,
docFile
()
);
MemberGroupSDict
::
Iterator
mgli
(
*
memberGroupSDict
);
MemberGroup
*
mg
;
for
(;(
mg
=
mgli
.
current
());
++
mgli
)
...
...
src/htmldocvisitor.cpp
View file @
6f118034
...
...
@@ -91,6 +91,8 @@ void HtmlDocVisitor::visit(DocSymbol *s)
case
DocSymbol
:
:
Hash
:
m_t
<<
"#"
;
break
;
case
DocSymbol
:
:
Percent
:
m_t
<<
"%"
;
break
;
case
DocSymbol
:
:
Copy
:
m_t
<<
"©"
;
break
;
case
DocSymbol
:
:
Tm
:
m_t
<<
"&tm;"
;
break
;
case
DocSymbol
:
:
Reg
:
m_t
<<
"®"
;
break
;
case
DocSymbol
:
:
Apos
:
m_t
<<
"'"
;
break
;
case
DocSymbol
:
:
Quot
:
m_t
<<
"
\"
"
;
break
;
case
DocSymbol
:
:
Uml
:
m_t
<<
"&"
<<
s
->
letter
()
<<
"uml;"
;
break
;
...
...
@@ -364,11 +366,12 @@ void HtmlDocVisitor::visitPre(DocSimpleSect *s)
case
DocSimpleSect
:
:
Attention
:
m_t
<<
theTranslator
->
trAttention
();
break
;
case
DocSimpleSect
:
:
User
:
break
;
case
DocSimpleSect
:
:
Rcs
:
break
;
case
DocSimpleSect
:
:
Unknown
:
break
;
}
// special case 1: user defined title
if
(
s
->
type
()
!=
DocSimpleSect
::
User
)
if
(
s
->
type
()
!=
DocSimpleSect
::
User
&&
s
->
type
()
!=
DocSimpleSect
::
Rcs
)
{
m_t
<<
":</b></dt><dd>"
;
}
...
...
@@ -644,9 +647,13 @@ void HtmlDocVisitor::visitPre(DocDotFile *df)
QString
outDir
=
Config_getString
(
"HTML_OUTPUT"
);
writeDotGraphFromFile
(
df
->
file
(),
outDir
,
baseName
,
BITMAP
);
m_t
<<
"<div align=
\"
center
\"
>"
<<
endl
;
QString
mapName
=
baseName
+
".map"
;
QString
mapFile
=
df
->
file
()
+
".map"
;
m_t
<<
"<img src=
\"
"
<<
baseName
<<
"."
<<
Config_getEnum
(
"DOT_IMAGE_FORMAT"
)
<<
"
\"
alt=
\"
"
<<
baseName
<<
"
\"
>"
<<
endl
;
<<
baseName
<<
"
\"
border=
\"
0
\"
usemap=
\"
#"
<<
mapName
<<
"
\"
>"
<<
endl
;
QString
imap
=
getDotImageMapFromFile
(
df
->
file
(),
outDir
);
m_t
<<
"<map name=
\"
"
<<
mapName
<<
"
\"
>"
<<
imap
<<
"</map>"
<<
endl
;
if
(
df
->
hasCaption
())
{
m_t
<<
"<p><strong>"
;
...
...
src/latexdocvisitor.cpp
View file @
6f118034
...
...
@@ -117,6 +117,8 @@ void LatexDocVisitor::visit(DocSymbol *s)
case
DocSymbol
:
:
Hash
:
m_t
<<
"
\\
#"
;
break
;
case
DocSymbol
:
:
Percent
:
m_t
<<
"
\\
%"
;
break
;
case
DocSymbol
:
:
Copy
:
m_t
<<
"
\\
copyright"
;
break
;
case
DocSymbol
:
:
Tm
:
m_t
<<
"
\\
texttrademark"
;
break
;
case
DocSymbol
:
:
Reg
:
m_t
<<
"
\\
textregistered"
;
break
;
case
DocSymbol
:
:
Apos
:
m_t
<<
"'"
;
break
;
case
DocSymbol
:
:
Quot
:
m_t
<<
"''"
;
break
;
case
DocSymbol
:
:
Uml
:
...
...
@@ -406,11 +408,12 @@ void LatexDocVisitor::visitPre(DocSimpleSect *s)
case
DocSimpleSect
:
:
Attention
:
m_t
<<
theTranslator
->
trAttention
();
break
;
case
DocSimpleSect
:
:
User
:
break
;
case
DocSimpleSect
:
:
Rcs
:
break
;
case
DocSimpleSect
:
:
Unknown
:
break
;
}
// special case 1: user defined title
if
(
s
->
type
()
!=
DocSimpleSect
::
User
)
if
(
s
->
type
()
!=
DocSimpleSect
::
User
&&
s
->
type
()
!=
DocSimpleSect
::
Rcs
)
{
m_t
<<
":]"
;
}
...
...
@@ -729,8 +732,13 @@ void LatexDocVisitor::visitPre(DocDotFile *df)
{
baseName
=
baseName
.
left
(
baseName
.
length
()
-
4
);
}
if
(
baseName
.
right
(
4
)
==
".dot"
)
{
baseName
=
baseName
.
left
(
baseName
.
length
()
-
4
);
}
QString
outDir
=
Config_getString
(
"LATEX_OUTPUT"
);
writeDotGraphFromFile
(
df
->
file
(),
outDir
,
baseName
,
EPS
);
QString
name
=
df
->
file
();
writeDotGraphFromFile
(
name
,
outDir
,
baseName
,
EPS
);
if
(
df
->
hasCaption
())
{
m_t
<<
"
\\
begin{figure}[H]"
<<
endl
;
...
...
src/latexgen.cpp
View file @
6f118034
...
...
@@ -246,6 +246,7 @@ static void writeDefaultHeaderPart1(QTextStream &t)
"
\\
usepackage{graphicx}
\n
"
"
\\
usepackage{multicol}
\n
"
"
\\
usepackage{float}
\n
"
"
\\
usepackage{textcomp}
\n
"
"
\\
usepackage{alltt}
\n
"
;
if
(
Config_getBool
(
"PDF_HYPERLINKS"
))
{
...
...
src/mandocvisitor.cpp
View file @
6f118034
...
...
@@ -80,7 +80,9 @@ void ManDocVisitor::visit(DocSymbol *s)
case
DocSymbol
:
:
Dollar
:
m_t
<<
"$"
;
break
;
case
DocSymbol
:
:
Hash
:
m_t
<<
"#"
;
break
;
case
DocSymbol
:
:
Percent
:
m_t
<<
"%"
;
break
;
case
DocSymbol
:
:
Copy
:
m_t
<<
"(c)"
;
break
;
case
DocSymbol
:
:
Copy
:
m_t
<<
"(C)"
;
break
;
case
DocSymbol
:
:
Tm
:
m_t
<<
"(TM)"
;
break
;
case
DocSymbol
:
:
Reg
:
m_t
<<
"(R)"
;
break
;
case
DocSymbol
:
:
Apos
:
m_t
<<
"'"
;
break
;
case
DocSymbol
:
:
Quot
:
m_t
<<
"''"
;
break
;
case
DocSymbol
:
:
Uml
:
m_t
<<
s
->
letter
()
<<
"
\\
*(4"
;
break
;
...
...
@@ -379,11 +381,12 @@ void ManDocVisitor::visitPre(DocSimpleSect *s)
case
DocSimpleSect
:
:
Attention
:
m_t
<<
theTranslator
->
trAttention
();
break
;
case
DocSimpleSect
:
:
User
:
break
;
case
DocSimpleSect
:
:
Rcs
:
break
;
case
DocSimpleSect
:
:
Unknown
:
break
;
}
// special case 1: user defined title
if
(
s
->
type
()
!=
DocSimpleSect
::
User
)
if
(
s
->
type
()
!=
DocSimpleSect
::
User
&&
s
->
type
()
!=
DocSimpleSect
::
Rcs
)
{
m_t
<<
":
\\
fP"
<<
endl
;
m_t
<<
".RS 4"
<<
endl
;
...
...
src/memberdef.cpp
View file @
6f118034
...
...
@@ -567,10 +567,11 @@ bool MemberDef::isBriefSectionVisible() const
// "", //getFileDef()->name().data(),
// argsString());
QCString
*
pMemGrp
=
Doxygen
::
memberDocDict
[
grpId
];
MemberGroupInfo
*
info
=
Doxygen
::
memGrpInfoDict
[
grpId
];
//QCString *pMemGrp = Doxygen::memberDocDict[grpId];
bool
hasDocs
=
hasDocumentation
()
||
// part of a documented member group
(
grpId
!=-
1
&&
pMemGrp
&&
!
pMemGrp
->
isEmpty
());
(
grpId
!=-
1
&&
info
&&
!
info
->
doc
.
isEmpty
());
// only include static members with file/namespace scope if
// explicitly enabled in the config file
...
...
@@ -1969,6 +1970,6 @@ void MemberDef::setDeclArgumentList(ArgumentList *al)
void
MemberDef
::
findSectionsInDocumentation
()
{
docFindSections
(
documentation
(),
0
,
this
,
0
);
docFindSections
(
documentation
(),
0
,
this
,
0
,
docFile
()
);
}
src/membergroup.cpp
View file @
6f118034
...
...
@@ -37,7 +37,7 @@
//}
MemberGroup
::
MemberGroup
(
Definition
*
parent
,
int
id
,
const
char
*
hdr
,
const
char
*
d
)
/* : Definition(idToName(id)) */
int
id
,
const
char
*
hdr
,
const
char
*
d
,
const
char
*
docFile
)
{
//printf("New member group id=%d header=%s desc=%s\n",id,hdr,d);
memberList
=
new
MemberList
;
...
...
@@ -49,6 +49,7 @@ MemberGroup::MemberGroup(Definition *parent,
inDeclSection
=
0
;
m_numDecMembers
=
-
1
;
m_parent
=
parent
;
m_docFile
=
docFile
;
//printf("Member group docs=`%s'\n",doc.data());
}
...
...
@@ -216,7 +217,7 @@ void MemberGroup::addListReferences(Definition *def)
void
MemberGroup
::
findSectionsInDocumentation
()
{
docFindSections
(
doc
,
0
,
0
,
this
);
docFindSections
(
doc
,
0
,
0
,
this
,
m_docFile
);
memberList
->
findSectionsInDocumentation
();
}
src/membergroup.h
View file @
6f118034
...
...
@@ -36,7 +36,8 @@ class Definition;
class
MemberGroup
{
public
:
MemberGroup
(
Definition
*
parent
,
int
id
,
const
char
*
header
,
const
char
*
docs
);
MemberGroup
(
Definition
*
parent
,
int
id
,
const
char
*
header
,
const
char
*
docs
,
const
char
*
docFile
);
~
MemberGroup
();
QCString
header
()
const
{
return
grpHeader
;
}
int
groupId
()
const
{
return
grpId
;
}
...
...
@@ -81,6 +82,7 @@ class MemberGroup
bool
inSameSection
;
int
m_numDecMembers
;
Definition
*
m_parent
;
QCString
m_docFile
;
};
class
MemberGroupList
:
public
QList
<
MemberGroup
>
...
...
@@ -101,6 +103,13 @@ class MemberGroupSDict : public SIntDict<MemberGroup>
~
MemberGroupSDict
()
{}
};
struct
MemberGroupInfo
{
QCString
header
;
QCString
doc
;
QCString
docFile
;
};
//class MemberGroupDict : public QIntDict<MemberGroup>
//{
// public:
...
...
src/message.cpp
View file @
6f118034
...
...
@@ -103,65 +103,59 @@ void msg(const char *fmt, ...)
}
}
void
warn
(
const
char
*
file
,
int
line
,
const
char
*
fmt
,
...
)
static
void
do_warn
(
const
char
*
tag
,
const
char
*
file
,
int
line
,
const
char
*
fmt
,
va_list
args
)
{
if
(
Config_getBool
(
"WARNINGS"
))
if
(
!
Config_getBool
(
tag
))
return
;
// warning type disabled
char
text
[
4096
];
vsprintf
(
text
,
fmt
,
args
);
if
(
file
==
0
)
file
=
"<unknown>"
;
switch
(
warnFormatOrder
)
{
if
(
file
==
0
)
file
=
"<unknown>"
;
char
text
[
4096
];
va_list
args
;
va_start
(
args
,
fmt
);
vsprintf
(
text
,
fmt
,
args
);
va_end
(
args
);
switch
(
warnFormatOrder
)
{
case
1
:
fprintf
(
warnFile
,
outputFormat
,
file
,
line
,
text
);
break
;
case
2
:
fprintf
(
warnFile
,
outputFormat
,
text
,
line
,
file
);
break
;
case
3
:
fprintf
(
warnFile
,
outputFormat
,
line
,
text
,
file
);
break
;
case
4
:
fprintf
(
warnFile
,
outputFormat
,
file
,
text
,
line
);
break
;
case
5
:
fprintf
(
warnFile
,
outputFormat
,
text
,
file
,
line
);
break
;
case
6
:
fprintf
(
warnFile
,
outputFormat
,
line
,
file
,
text
);
break
;
default:
printf
(
"Error: warning format has not been initialized!
\n
"
);
}
case
1
:
fprintf
(
warnFile
,
outputFormat
,
file
,
line
,
text
);
break
;
case
2
:
fprintf
(
warnFile
,
outputFormat
,
text
,
line
,
file
);
break
;
case
3
:
fprintf
(
warnFile
,
outputFormat
,
line
,
text
,
file
);
break
;
case
4
:
fprintf
(
warnFile
,
outputFormat
,
file
,
text
,
line
);
break
;
case
5
:
fprintf
(
warnFile
,
outputFormat
,
text
,
file
,
line
);
break
;
case
6
:
fprintf
(
warnFile
,
outputFormat
,
line
,
file
,
text
);
break
;
default:
printf
(
"Error: warning format has not been initialized!
\n
"
);
}
}
void
warn
(
const
char
*
file
,
int
line
,
const
char
*
fmt
,
...)
{
va_list
args
;
va_start
(
args
,
fmt
);
do_warn
(
"WARNINGS"
,
file
,
line
,
fmt
,
args
);
va_end
(
args
);
}
void
warn_cont
(
const
char
*
fmt
,
...)
{
if
(
Config_getBool
(
"WARNINGS"
))
{
va_list
args
;
va_start
(
args
,
fmt
);
vfprintf
(
warnFile
,
fmt
,
args
);
va_end
(
args
);
}
if
(
!
Config_getBool
(
"WARNINGS"
))
return
;
va_list
args
;
va_start
(
args
,
fmt
);
vfprintf
(
warnFile
,
fmt
,
args
);
va_end
(
args
);
}
void
warn_undoc
(
const
char
*
file
,
int
line
,
const
char
*
fmt
,
...)
{
if
(
Config_getBool
(
"WARN_IF_UNDOCUMENTED"
))
{
if
(
file
==
0
)
file
=
"<unknwon>"
;
char
text
[
4096
];
va_list
args
;
va_start
(
args
,
fmt
);
vsprintf
(
text
,
fmt
,
args
);
va_end
(
args
);
switch
(
warnFormatOrder
)
{
case
1
:
fprintf
(
warnFile
,
outputFormat
,
file
,
line
,
text
);
break
;
case
2
:
fprintf
(
warnFile
,
outputFormat
,
text
,
line
,
file
);
break
;
case
3
:
fprintf
(
warnFile
,
outputFormat
,
line
,
text
,
file
);
break
;
case
4
:
fprintf
(
warnFile
,
outputFormat
,
file
,
text
,
line
);
break
;
case
5
:
fprintf
(
warnFile
,
outputFormat
,
text
,
file
,
line
);
break
;
case
6
:
fprintf
(
warnFile
,
outputFormat
,
line
,
file
,
text
);
break
;
default:
printf
(
"Error: warning format has not been initialized!
\n
"
);
}
}
va_list
args
;
va_start
(
args
,
fmt
);
do_warn
(
"WARN_IF_UNDOCUMENTED"
,
file
,
line
,
fmt
,
args
);
va_end
(
args
);
}
void
warn_doc_error
(
const
char
*
file
,
int
line
,
const
char
*
fmt
,
...)
{
va_list
args
;
va_start
(
args
,
fmt
);
do_warn
(
"WARN_IF_DOC_ERROR"
,
file
,
line
,
fmt
,
args
);
va_end
(
args
);
}
void
err
(
const
char
*
fmt
,
...)
{
va_list
args
;
...
...
src/message.h
View file @
6f118034
...
...
@@ -24,6 +24,7 @@ extern void msg(const char *fmt, ...);
extern
void
warn
(
const
char
*
file
,
int
line
,
const
char
*
fmt
,
...);
extern
void
warn_cont
(
const
char
*
fmt
,
...);
extern
void
warn_undoc
(
const
char
*
file
,
int
line
,
const
char
*
fmt
,
...);
extern
void
warn_doc_error
(
const
char
*
file
,
int
line
,
const
char
*
fmt
,
...);
extern
void
err
(
const
char
*
fmt
,
...);
void
initWarningFormat
();
...
...
src/namespacedef.cpp
View file @
6f118034
...
...
@@ -65,7 +65,7 @@ void NamespaceDef::distributeMemberGroupDocumentation()
void
NamespaceDef
::
findSectionsInDocumentation
()
{
docFindSections
(
documentation
(),
0
,
this
,
0
);
docFindSections
(
documentation
(),
0
,
this
,
0
,
docFile
()
);
MemberGroupSDict
::
Iterator
mgli
(
*
memberGroupSDict
);
MemberGroup
*
mg
;
for
(;(
mg
=
mgli
.
current
());
++
mgli
)
...
...
src/page.h
View file @
6f118034
...
...
@@ -80,7 +80,7 @@ class PageInfo
}
void
findSectionsInDocumentation
()
{
docFindSections
(
doc
,
this
,
0
,
0
);
docFindSections
(
doc
,
this
,
0
,
0
,
defFileName
);
}
void
writeDocAnchorsToTagFile
()
...
...
src/perlmodgen.cpp
View file @
6f118034
...
...
@@ -542,6 +542,8 @@ void PerlModDocVisitor::visit(DocSymbol *sy)
case
DocSymbol
:
:
Ring
:
accent
=
"ring"
;
break
;
case
DocSymbol
:
:
BSlash
:
s
=
"
\\\\
"
;
break
;
case
DocSymbol
:
:
Copy
:
symbol
=
"copyright"
;
break
;
case
DocSymbol
:
:
Tm
:
symbol
=
"trademark"
;
break
;
case
DocSymbol
:
:
Reg
:
symbol
=
"registered"
;
break
;
case
DocSymbol
:
:
Szlig
:
symbol
=
"szlig"
;
break
;
case
DocSymbol
:
:
Apos
:
s
=
"
\\\'
"
;
break
;
case
DocSymbol
:
:
Unknown
:
...
...
@@ -770,6 +772,7 @@ void PerlModDocVisitor::visitPre(DocSimpleSect *s)
case
DocSimpleSect
:
:
Remark
:
type
=
"remark"
;
break
;
case
DocSimpleSect
:
:
Attention
:
type
=
"attention"
;
break
;
case
DocSimpleSect
:
:
User
:
type
=
"par"
;
break
;
case
DocSimpleSect
:
:
Rcs
:
type
=
"rcs"
;
break
;
case
DocSimpleSect
:
:
Unknown
:
err
(
"Error: unknown simple section found
\n
"
);
break
;
...
...
src/printdocvisitor.h
View file @
6f118034
...
...
@@ -264,6 +264,7 @@ class PrintDocVisitor : public DocVisitor
case
DocSimpleSect
:
:
Remark
:
printf
(
"remark"
);
break
;
case
DocSimpleSect
:
:
Attention
:
printf
(
"attention"
);
break
;
case
DocSimpleSect
:
:
User
:
printf
(
"user"
);
break
;
case
DocSimpleSect
:
:
Rcs
:
printf
(
"rcs"
);
break
;
case
DocSimpleSect
:
:
Unknown
:
printf
(
"unknown"
);
break
;
}
printf
(
">
\n
"
);
...
...
src/rtfdocvisitor.cpp
View file @
6f118034
...
...
@@ -95,7 +95,9 @@ void RTFDocVisitor::visit(DocSymbol *s)
case
DocSymbol
:
:
Dollar
:
m_t
<<
"$"
;
break
;
case
DocSymbol
:
:
Hash
:
m_t
<<
"#"
;
break
;
case
DocSymbol
:
:
Percent
:
m_t
<<
"%"
;
break
;
case
DocSymbol
:
:
Copy
:
m_t
<<
"
\251
"
;
break
;
case
DocSymbol
:
:
Copy
:
m_t
<<
"(C)"
;
break
;
case
DocSymbol
:
:
Tm
:
m_t
<<
"(TM)"
;
break
;
case
DocSymbol
:
:
Reg
:
m_t
<<
"(R)"
;
break
;
case
DocSymbol
:
:
Apos
:
m_t
<<
"'"
;
break
;
case
DocSymbol
:
:
Quot
:
m_t
<<
"
\"
"
;
break
;
case
DocSymbol
:
:
Uml
:
switch
(
s
->
letter
())
...
...
@@ -295,7 +297,7 @@ void RTFDocVisitor::visit(DocVerbatim *s)
m_t
<<
"{"
<<
endl
;
m_t
<<
"
\\
par"
<<
endl
;
m_t
<<
rtf_Style_Reset
<<
getStyle
(
"CodeExample"
);
m_t
<<
s
->
text
(
);
filter
(
s
->
text
()
);
m_t
<<
"
\\
par"
<<
endl
;
m_t
<<
"}"
<<
endl
;
break
;
...
...
@@ -349,7 +351,7 @@ void RTFDocVisitor::visit(DocInclude *inc)
m_t
<<
"{"
<<
endl
;
m_t
<<
"
\\
par"
<<
endl
;
m_t
<<
rtf_Style_Reset
<<
getStyle
(
"CodeExample"
);
m_t
<<
inc
->
text
(
);
filter
(
inc
->
text
()
);
m_t
<<
"
\\
par"
<<
endl
;
m_t
<<
"}"
<<
endl
;
break
;
...
...
@@ -491,11 +493,12 @@ void RTFDocVisitor::visitPre(DocSimpleSect *s)
case
DocSimpleSect
:
:
Attention
:
m_t
<<
theTranslator
->
trAttention
();
break
;
case
DocSimpleSect
:
:
User
:
break
;
case
DocSimpleSect
:
:
Rcs
:
break
;
case
DocSimpleSect
:
:
Unknown
:
break
;
}
// special case 1: user defined title
if
(
s
->
type
()
!=
DocSimpleSect
::
User
)
if
(
s
->
type
()
!=
DocSimpleSect
::
User
&&
s
->
type
()
!=
DocSimpleSect
::
Rcs
)
{
m_t
<<
":}"
;
// end bold
m_t
<<
"
\\
par"
<<
endl
;
...
...
src/scanner.l
View file @
6f118034
...
...
@@ -77,6 +77,7 @@ static int lastClassTemplSpecContext;
static int lastSkipHtmlCommentContext;
static int lastIfContext;
static int lastInternalDocContext;
static int lastPreLineCtrlContext;
static int nextDefContext;
static int overloadContext;
static Protection protection;
...
...
@@ -448,7 +449,8 @@ static void setContext()
insideIDL = fileName.right(4)==".idl" || fileName.right(4)==".odl";
insideJava = fileName.right(5)==".java";
insideCS = fileName.right(3)==".cs";
insidePHP = fileName.right(4)==".php" || fileName.right(4)==".inc";
insidePHP = fileName.right(4)==".php" || fileName.right(5)==".php4" ||
fileName.right(4)==".inc";
if ( insidePHP )
{
useOverrideCommands = TRUE;
...
...
@@ -1366,8 +1368,10 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
current->bodyLine = yyLineNr;
BEGIN( Define );
}
<FindMembers>{B}*"#"{B}+[0-9]+{B}+/"\"" { /* line control directive */
<FindMembers
,ReadBody
>{B}*"#"{B}+[0-9]+{B}+/"\"" { /* line control directive */
yyLineNr = atoi(&yytext[1]);
//printf("setting line number to %d\n",yyLineNr);
lastPreLineCtrlContext = YY_START;
BEGIN( PreLineCtrl );
}
<PreLineCtrl>"\""[^\n\"]*"\"" {
...
...
@@ -1375,7 +1379,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
<PreLineCtrl>. {}
<PreLineCtrl>\n {
BEGIN(FindMembers);
yyLineNr++;
BEGIN( lastPreLineCtrlContext );
}
<SkipCPP>.
<SkipCPP>\\[\r]*"\n"[\r]* { yyLineNr++ ; }
...
...
@@ -1560,7 +1565,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
BEGIN( Doc );
}
}
<FindMembers,FindFields,ReadInitializer>"//"([!/]?){B}*{CMD}"}"
|"/*"([!*]?){B}*{CMD}"}"{B}
*"*/" {
<FindMembers,FindFields,ReadInitializer>"//"([!/]?){B}*{CMD}"}"
.*|"/*"([!*]?){B}*{CMD}"}".
*"*/" {
if (memberGroupId==NOGROUP && autoGroupStack.isEmpty())
{
warn(yyFileName,yyLineNr,
...
...
@@ -1851,7 +1856,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
/*
<FindFieldArg>"," { unput(*yytext); BEGIN(FindFields); }
*/
<ReadBody>[^\r\n
{}"'/]*
{ current->program += yytext ; }
<ReadBody>[^\r\n
\#{}"'/]*
{ current->program += yytext ; }
<ReadBody>"//".* { current->program += yytext ; }
<ReadBody>\" { current->program += yytext ;
pCopyQuotedString = ¤t->program;
...
...
@@ -3659,9 +3664,15 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
memberGroupDocs+="\n\n";
}
memberGroupDocs+=current->doc;
Doxygen::memberDocDict.insert(memberGroupId,
new QCString(memberGroupDocs)
);
//Doxygen::memberDocDict.insert(memberGroupId,
// new QCString(memberGroupDocs)
// );
MemberGroupInfo *info=Doxygen::memGrpInfoDict.find(memberGroupId);
if (info)
{
info->doc = memberGroupDocs;
info->docFile = yyFileName;
}
current->doc.resize(0);
current->brief.resize(0);
BEGIN(lastDocContext);
...
...
@@ -4583,9 +4594,13 @@ static void startGroup()
memberGroupHeader="[NOHEADER]";
}
memberGroupId = newMemberGroupId();
Doxygen::memberHeaderDict.insert(memberGroupId,
new QCString(memberGroupHeader.stripWhiteSpace())
);
MemberGroupInfo *info = new MemberGroupInfo;
info->header = memberGroupHeader.stripWhiteSpace();
Doxygen::memGrpInfoDict.insert(memberGroupId,info);
//Doxygen::memberHeaderDict.insert(memberGroupId,
// new QCString(memberGroupHeader.stripWhiteSpace())
// );
memberGroupRelates = current->relates.copy();
memberGroupInside = current->inside.copy();
current->mGrpId = memberGroupId;
...
...
@@ -4609,9 +4624,12 @@ static void startGroupInDoc()
// endGroup();
//}
memberGroupId = newMemberGroupId();
Doxygen::memberHeaderDict.insert(memberGroupId,
new QCString(memberGroupHeader.stripWhiteSpace())
);
MemberGroupInfo *info = new MemberGroupInfo;
info->header = memberGroupHeader.stripWhiteSpace();
Doxygen::memGrpInfoDict.insert(memberGroupId,info);
//Doxygen::memberHeaderDict.insert(memberGroupId,
// new QCString(memberGroupHeader.stripWhiteSpace())
// );
memberGroupRelates = current->relates.copy();
memberGroupInside = current->inside.copy();
current->mGrpId = memberGroupId;
...
...
@@ -4627,9 +4645,15 @@ static void endGroup()
{
if (memberGroupId!=NOGROUP) // end of member group
{
Doxygen::memberDocDict.insert(memberGroupId,
new QCString(memberGroupDocs)
);
//Doxygen::memberDocDict.insert(memberGroupId,
// new QCString(memberGroupDocs)
// );
MemberGroupInfo *info=Doxygen::memGrpInfoDict.find(memberGroupId);
if (info)
{
info->doc = memberGroupDocs;
info->docFile = yyFileName;
}
memberGroupId=NOGROUP;
memberGroupRelates.resize(0);
memberGroupInside.resize(0);
...
...
src/translator_it.h
View file @
6f118034
...
...
@@ -19,6 +19,7 @@
*
* Revision history
*
* 2002/11: translated new items used since version 1.2.18
* 2002/08: translated new items used since version 1.2.17
* 2002/07: translated new items used since version 1.2.16
* 2002/06: modified trRelatedPagesDescription() method
...
...
@@ -57,7 +58,7 @@
*
* Il plurale dei termini inglesi non tradotti è stato reso con il singolare
* della parola inglese secondo una convenzione spesso ritrovata nella documentazione
* tecnica (ad es "lista dei file" e non "lista dei files")
* tecnica (ad es
.
"lista dei file" e non "lista dei files")
*
* Se avete suggerimenti sulla traduzione di alcuni termini o volete segnalare
* eventuali sviste potete scrivermi all'indirizzo: alessandro@falappa.net
...
...
@@ -66,7 +67,7 @@
#ifndef TRANSLATOR_IT_H
#define TRANSLATOR_IT_H
class
TranslatorItalian
:
public
Translator
Adapter_1_2_18
class
TranslatorItalian
:
public
Translator
{
public
:
...
...
@@ -1370,6 +1371,24 @@ class TranslatorItalian : public TranslatorAdapter_1_2_18
{
return
"Lista degli elementi deprecati"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.18
//////////////////////////////////////////////////////////////////////////
/*! Used as a header for declaration section of the events found in
* a C# program
*/
virtual
QCString
trEvents
()
{
return
"Eventi"
;
}
/*! Header used for the documentation section of a class' events. */
virtual
QCString
trEventDocumentation
()
{
return
"Documentazione degli eventi"
;
}
};
#endif
src/util.cpp
View file @
6f118034
...
...
@@ -3132,7 +3132,8 @@ const char *getOverloadDocs()
}
void
addMembersToMemberGroup
(
MemberList
*
ml
,
MemberGroupSDict
*
memberGroupSDict
,
Definition
*
context
)
MemberGroupSDict
*
memberGroupSDict
,
Definition
*
context
)
{
//printf("addMemberToMemberGroup()\n");
MemberListIterator
mli
(
*
ml
);
...
...
@@ -3151,14 +3152,21 @@ void addMembersToMemberGroup(MemberList *ml,
int
groupId
=
fmd
->
getMemberGroupId
();
if
(
groupId
!=-
1
)
{
QCString
*
pGrpHeader
=
Doxygen
::
memberHeaderDict
[
groupId
];
QCString
*
pDocs
=
Doxygen
::
memberDocDict
[
groupId
];
if
(
pGrpHeader
)
MemberGroupInfo
*
info
=
Doxygen
::
memGrpInfoDict
[
groupId
];
//QCString *pGrpHeader = Doxygen::memberHeaderDict[groupId];
//QCString *pDocs = Doxygen::memberDocDict[groupId];
if
(
info
)
{
MemberGroup
*
mg
=
memberGroupSDict
->
find
(
groupId
);
if
(
mg
==
0
)
{
mg
=
new
MemberGroup
(
context
,
groupId
,
*
pGrpHeader
,
pDocs
?
pDocs
->
data
()
:
0
);
mg
=
new
MemberGroup
(
context
,
groupId
,
info
->
header
,
info
->
doc
,
info
->
docFile
);
memberGroupSDict
->
append
(
groupId
,
mg
);
}
mg
->
insertMember
(
context
,
fmd
);
// insert in member group
...
...
@@ -3172,14 +3180,21 @@ void addMembersToMemberGroup(MemberList *ml,
int
groupId
=
md
->
getMemberGroupId
();
if
(
groupId
!=-
1
)
{
QCString
*
pGrpHeader
=
Doxygen
::
memberHeaderDict
[
groupId
];
QCString
*
pDocs
=
Doxygen
::
memberDocDict
[
groupId
];
if
(
pGrpHeader
)
MemberGroupInfo
*
info
=
Doxygen
::
memGrpInfoDict
[
groupId
];
//QCString *pGrpHeader = Doxygen::memberHeaderDict[groupId];
//QCString *pDocs = Doxygen::memberDocDict[groupId];
if
(
info
)
{
MemberGroup
*
mg
=
memberGroupSDict
->
find
(
groupId
);
if
(
mg
==
0
)
{
mg
=
new
MemberGroup
(
context
,
groupId
,
*
pGrpHeader
,
pDocs
?
pDocs
->
data
()
:
0
);
mg
=
new
MemberGroup
(
context
,
groupId
,
info
->
header
,
info
->
doc
,
info
->
docFile
);
memberGroupSDict
->
append
(
groupId
,
mg
);
}
md
=
ml
->
take
(
index
);
// remove from member list
...
...
src/xmldocvisitor.cpp
View file @
6f118034
...
...
@@ -76,6 +76,8 @@ void XmlDocVisitor::visit(DocSymbol *s)
case
DocSymbol
:
:
Hash
:
m_t
<<
"#"
;
break
;
case
DocSymbol
:
:
Percent
:
m_t
<<
"%"
;
break
;
case
DocSymbol
:
:
Copy
:
m_t
<<
"<copy/>"
;
break
;
case
DocSymbol
:
:
Tm
:
m_t
<<
"<trademark/>"
;
break
;
case
DocSymbol
:
:
Reg
:
m_t
<<
"<registered/>"
;
break
;
case
DocSymbol
:
:
Apos
:
m_t
<<
"'"
;
break
;
case
DocSymbol
:
:
Quot
:
m_t
<<
"
\"
"
;
break
;
case
DocSymbol
:
:
Uml
:
m_t
<<
"<umlaut char=
\"
"
<<
s
->
letter
()
<<
"
\"
/>"
;
break
;
...
...
@@ -334,7 +336,7 @@ void XmlDocVisitor::visitPre(DocSimpleSect *s)
case
DocSimpleSect
:
:
Date
:
m_t
<<
"date"
;
break
;
case
DocSimpleSect
:
:
Note
:
m_t
<<
"
bug
"
;
break
;
m_t
<<
"
note
"
;
break
;
case
DocSimpleSect
:
:
Warning
:
m_t
<<
"warning"
;
break
;
case
DocSimpleSect
:
:
Pre
:
...
...
@@ -349,6 +351,8 @@ void XmlDocVisitor::visitPre(DocSimpleSect *s)
m_t
<<
"attention"
;
break
;
case
DocSimpleSect
:
:
User
:
m_t
<<
"par"
;
break
;
case
DocSimpleSect
:
:
Rcs
:
m_t
<<
"rcs"
;
break
;
case
DocSimpleSect
:
:
Unknown
:
break
;
}
m_t
<<
"
\"
>"
;
...
...
src/xmlgen.cpp
View file @
6f118034
...
...
@@ -479,6 +479,8 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
case
Protected
:
t
<<
"protected"
;
break
;
case
Private
:
t
<<
"private"
;
break
;
}
t
<<
"
\"
static=
\"
"
;
if
(
md
->
isStatic
())
t
<<
"yes"
;
else
t
<<
"no"
;
t
<<
"
\"
"
;
if
(
isFunc
)
...
...
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