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
aca0b889
Commit
aca0b889
authored
Jul 08, 2003
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.3.2-20030708
parent
509496da
Changes
44
Show whitespace changes
Inline
Side-by-side
Showing
44 changed files
with
363 additions
and
117 deletions
+363
-117
Doxyfile
Doxyfile
+1
-1
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
config.doc
doc/config.doc
+10
-0
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+1
-1
code.l
src/code.l
+2
-1
compound.xsd
src/compound.xsd
+11
-0
compound_xsd.h
src/compound_xsd.h
+11
-0
config.l
src/config.l
+10
-3
constexp.l
src/constexp.l
+0
-1
debug.cpp
src/debug.cpp
+2
-0
debug.h
src/debug.h
+2
-1
definition.cpp
src/definition.cpp
+20
-20
definition.h
src/definition.h
+2
-1
docparser.cpp
src/docparser.cpp
+6
-5
docparser.h
src/docparser.h
+1
-4
doctokenizer.l
src/doctokenizer.l
+5
-9
dot.cpp
src/dot.cpp
+3
-1
doxygen.cpp
src/doxygen.cpp
+11
-2
doxygen.h
src/doxygen.h
+3
-0
entry.cpp
src/entry.cpp
+6
-14
entry.h
src/entry.h
+3
-1
htmlhelp.h
src/htmlhelp.h
+1
-1
index.cpp
src/index.cpp
+16
-11
index.xsd
src/index.xsd
+60
-0
index_xsd.h
src/index_xsd.h
+60
-0
libdoxygen.pro.in
src/libdoxygen.pro.in
+2
-0
libdoxygen.t
src/libdoxygen.t
+5
-2
memberdef.cpp
src/memberdef.cpp
+21
-1
memberdef.h
src/memberdef.h
+1
-0
message.cpp
src/message.cpp
+7
-0
outputlist.cpp
src/outputlist.cpp
+3
-5
outputlist.h
src/outputlist.h
+1
-1
pagedef.cpp
src/pagedef.cpp
+8
-0
pagedef.h
src/pagedef.h
+1
-1
perlmodgen.cpp
src/perlmodgen.cpp
+2
-2
scanner.l
src/scanner.l
+9
-8
section.h
src/section.h
+12
-8
tagreader.cpp
src/tagreader.cpp
+1
-1
util.cpp
src/util.cpp
+8
-2
util.h
src/util.h
+2
-1
xmlgen.cpp
src/xmlgen.cpp
+27
-2
No files found.
Doxyfile
View file @
aca0b889
...
@@ -141,7 +141,7 @@ MAN_LINKS = NO
...
@@ -141,7 +141,7 @@ MAN_LINKS = NO
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
# configuration options related to the XML output
# configuration options related to the XML output
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
GENERATE_XML =
NO
GENERATE_XML =
YES
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
...
...
INSTALL
View file @
aca0b889
DOXYGEN Version 1.3.2
DOXYGEN Version 1.3.2
-20030708
Please read the installation section of the manual
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
(http://www.doxygen.org/install.html) for instructions.
--------
--------
Dimitri van Heesch (
25 June
2003)
Dimitri van Heesch (
08 July
2003)
README
View file @
aca0b889
DOXYGEN Version 1.3.2
DOXYGEN Version 1.3.2
_20030708
Please read INSTALL for compilation instructions.
Please read INSTALL for compilation instructions.
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (
25 June
2003)
Dimitri van Heesch (dimitri@stack.nl) (
08 July
2003)
VERSION
View file @
aca0b889
1.3.2
1.3.2
-20030708
doc/config.doc
View file @
aca0b889
...
@@ -191,6 +191,7 @@ followed by the descriptions of the tags grouped by category.
...
@@ -191,6 +191,7 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_source_browser
SOURCE_BROWSER
\
refitem
cfg_source_browser
SOURCE_BROWSER
\
refitem
cfg_strip_code_comments
STRIP_CODE_COMMENTS
\
refitem
cfg_strip_code_comments
STRIP_CODE_COMMENTS
\
refitem
cfg_strip_from_path
STRIP_FROM_PATH
\
refitem
cfg_strip_from_path
STRIP_FROM_PATH
\
refitem
cfg_subgrouping
SUBGROUPING
\
refitem
cfg_tab_size
TAB_SIZE
\
refitem
cfg_tab_size
TAB_SIZE
\
refitem
cfg_tagfiles
TAGFILES
\
refitem
cfg_tagfiles
TAGFILES
\
refitem
cfg_template_relations
TEMPLATE_RELATIONS
\
refitem
cfg_template_relations
TEMPLATE_RELATIONS
...
@@ -567,6 +568,15 @@ function's detailed documentation block.
...
@@ -567,6 +568,15 @@ function's detailed documentation block.
at the bottom of the documentation of classes and structs. If set to \c YES the
at the bottom of the documentation of classes and structs. If set to \c YES the
list will mention the files that were used to generate the documentation.
list will mention the files that were used to generate the documentation.
\anchor cfg_subgrouping
<dt>\c SUBGROUPING <dd>
\addindex SUBGROUPING
Set the \c SUBGROUPING tag to \c YES (the default) to allow class member groups of
the same type (for instance a group of public functions) to be put as a
subgroup of that type (e.g. under the Public Functions section). Set it to
\c NO to prevent subgrouping. Alternatively, this can be done per class using
the \ref cmdnosubgrouping "\\nosubgrouping" command.
</dl>
</dl>
\section messages_input Options related to warning and progress messages
\section messages_input Options related to warning and progress messages
...
...
packages/rpm/doxygen.spec
View file @
aca0b889
Summary: A documentation system for C/C++.
Summary: A documentation system for C/C++.
Name: doxygen
Name: doxygen
Version: 1.3.2
Version: 1.3.2
_20030708
Release: 1
Release: 1
Epoch: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
...
...
src/classdef.cpp
View file @
aca0b889
...
@@ -82,7 +82,7 @@ ClassDef::ClassDef(
...
@@ -82,7 +82,7 @@ ClassDef::ClassDef(
memberGroupSDict
=
new
MemberGroupSDict
;
memberGroupSDict
=
new
MemberGroupSDict
;
memberGroupSDict
->
setAutoDelete
(
TRUE
);
memberGroupSDict
->
setAutoDelete
(
TRUE
);
m_innerClasses
=
new
ClassSDict
(
17
);
m_innerClasses
=
new
ClassSDict
(
17
);
m_subGrouping
=
TRUE
;
m_subGrouping
=
Config_getBool
(
"SUBGROUPING"
)
;
m_templateInstances
=
0
;
m_templateInstances
=
0
;
m_templateMaster
=
0
;
m_templateMaster
=
0
;
m_templBaseClassNames
=
0
;
m_templBaseClassNames
=
0
;
...
...
src/code.l
View file @
aca0b889
...
@@ -1010,7 +1010,7 @@ static int yyread(char *buf,int max_size)
...
@@ -1010,7 +1010,7 @@ static int yyread(char *buf,int max_size)
B [ \t]
B [ \t]
BN [ \t\n\r]
BN [ \t\n\r]
ID [a-z_A-Z][a-z_A-Z0-9]*
ID [a-z_A-Z][a-z_A-Z0-9]*
SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
SCOPENAME
"$"?
(({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
TEMPLIST "<"[^\"\}\{\(\)\/\n\>]*">"
TEMPLIST "<"[^\"\}\{\(\)\/\n\>]*">"
SCOPETNAME ((({ID}{TEMPLIST}?){BN}*"::"{BN}*)*)((~{BN}*)?{ID})
SCOPETNAME ((({ID}{TEMPLIST}?){BN}*"::"{BN}*)*)((~{BN}*)?{ID})
SCOPEPREFIX ({ID}{TEMPLIST}?{BN}*"::"{BN}*)+
SCOPEPREFIX ({ID}{TEMPLIST}?{BN}*"::"{BN}*)+
...
@@ -1178,6 +1178,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
...
@@ -1178,6 +1178,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
<ClassName,ClassVar>[*&]+ {
<ClassName,ClassVar>[*&]+ {
addType();
addType();
g_code->codify(yytext);
g_code->codify(yytext);
BEGIN( Body ); // variable of type struct *
}
}
<ClassName>{ID}("::"{ID})* {
<ClassName>{ID}("::"{ID})* {
g_curClassName=yytext;
g_curClassName=yytext;
...
...
src/compound.xsd
0 → 100644
View file @
aca0b889
<xsd:schema
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
>
<xsd:element
name=
"doxygen"
type=
"DoxygenType"
/>
<xsd:complexType
name=
"DoxygenType"
>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute
name=
"version"
type=
"xsd:string"
use=
"required"
/>
</xsd:complexType>
</xsd:schema>
src/compound_xsd.h
0 → 100644
View file @
aca0b889
"<xsd:schema xmlns:xsd=
\"
http://www.w3.org/2001/XMLSchema
\"
>
\n
"
" <xsd:element name=
\"
doxygen
\"
type=
\"
DoxygenType
\"
/>
\n
"
"
\n
"
" <xsd:complexType name=
\"
DoxygenType
\"
>
\n
"
" <xsd:sequence>
\n
"
" </xsd:sequence>
\n
"
" <xsd:attribute name=
\"
version
\"
type=
\"
xsd:string
\"
use=
\"
required
\"
/>
\n
"
" </xsd:complexType>
\n
"
"
\n
"
"</xsd:schema>
\n
"
"
\n
"
src/config.l
View file @
aca0b889
...
@@ -1036,10 +1036,8 @@ void Config::check()
...
@@ -1036,10 +1036,8 @@ void Config::check()
QStrList &inputSources=Config_getList("INPUT");
QStrList &inputSources=Config_getList("INPUT");
if (inputSources.count()==0)
if (inputSources.count()==0)
{
{
//config_err("Error: tag INPUT: no input files specified after the INPUT tag.\n");
// use current dir as the default
//exit(1);
inputSources.append(QDir::currentDirPath());
inputSources.append(QDir::currentDirPath());
//config_warn("Warning: no files after the INPUT tag, defaulting to the current dir\n");
}
}
else
else
{
{
...
@@ -1671,6 +1669,15 @@ void Config::create()
...
@@ -1671,6 +1669,15 @@ void Config::create()
"list will mention the files that were used to generate the documentation. \n",
"list will mention the files that were used to generate the documentation. \n",
TRUE
TRUE
);
);
cb = addBool(
"SUBGROUPING",
"Set the SUBGROUPING tag to YES (the default) to allow class member groups of \n"
"the same type (for instance a group of public functions) to be put as a \n"
"subgroup of that type (e.g. under the Public Functions section). Set it to \n"
"NO to prevent subgrouping. Alternatively, this can be done per class using \n"
"the \\nosubgrouping command. \n",
TRUE
);
//-----------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------
addInfo( "Messages","configuration options related to warning and progress messages");
addInfo( "Messages","configuration options related to warning and progress messages");
//-----------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------
...
...
src/constexp.l
View file @
aca0b889
...
@@ -22,7 +22,6 @@
...
@@ -22,7 +22,6 @@
#include "cppvalue.h"
#include "cppvalue.h"
#include "ce_parse.h" // generated header file
#include "ce_parse.h" // generated header file
#define YY_NO_UNPUT
#define YY_NEVER_INTERACTIVE 1
#define YY_NEVER_INTERACTIVE 1
QCString g_strToken;
QCString g_strToken;
...
...
src/debug.cpp
View file @
aca0b889
...
@@ -55,6 +55,8 @@ static int labelToEnumValue(const char *l)
...
@@ -55,6 +55,8 @@ static int labelToEnumValue(const char *l)
return
Debug
::
Validate
;
return
Debug
::
Validate
;
else
if
(
label
==
"printtree"
)
else
if
(
label
==
"printtree"
)
return
Debug
::
PrintTree
;
return
Debug
::
PrintTree
;
else
if
(
label
==
"time"
)
return
Debug
::
Time
;
else
else
return
0
;
return
0
;
}
}
...
...
src/debug.h
View file @
aca0b889
...
@@ -30,7 +30,8 @@ class Debug
...
@@ -30,7 +30,8 @@ class Debug
Classes
=
0x00000010
,
Classes
=
0x00000010
,
CommentCnv
=
0x00000020
,
CommentCnv
=
0x00000020
,
Validate
=
0x00000040
,
Validate
=
0x00000040
,
PrintTree
=
0x00000080
PrintTree
=
0x00000080
,
Time
=
0x00000100
};
};
static
void
print
(
DebugMask
mask
,
int
prio
,
const
char
*
fmt
,...);
static
void
print
(
DebugMask
mask
,
int
prio
,
const
char
*
fmt
,...);
static
void
setFlag
(
const
char
*
label
);
static
void
setFlag
(
const
char
*
label
);
...
...
src/definition.cpp
View file @
aca0b889
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
#include "code.h"
#include "code.h"
#include "util.h"
#include "util.h"
#include "groupdef.h"
#include "groupdef.h"
#include "section.h"
Definition
::
Definition
(
const
char
*
df
,
int
dl
,
Definition
::
Definition
(
const
char
*
df
,
int
dl
,
const
char
*
name
,
const
char
*
b
,
const
char
*
d
)
const
char
*
name
,
const
char
*
b
,
const
char
*
d
)
...
@@ -74,33 +75,31 @@ Definition::~Definition()
...
@@ -74,33 +75,31 @@ Definition::~Definition()
delete
m_xrefListItems
;
delete
m_xrefListItems
;
}
}
void
Definition
::
addSectionsToDefinition
(
QList
<
QCString
>
*
anchorList
)
void
Definition
::
addSectionsToDefinition
(
QList
<
SectionInfo
>
*
anchorList
)
{
{
if
(
!
anchorList
)
return
;
if
(
!
anchorList
)
return
;
//printf("%s: addSectionsToDefinition(%d)\n",name().data(),anchorList->count());
//printf("%s: addSectionsToDefinition(%d)\n",name().data(),anchorList->count());
QCString
*
s
=
anchorList
->
first
();
SectionInfo
*
si
=
anchorList
->
first
();
while
(
s
)
while
(
si
)
{
SectionInfo
*
si
=
0
;
if
(
!
s
->
isEmpty
()
&&
(
si
=
Doxygen
::
sectionDict
[
*
s
]))
{
{
//printf("Add section `%s' to definition `%s'\n",
//printf("Add section `%s' to definition `%s'\n",
// si->label.data(),n.data());
// si->label.data(),name().data());
if
(
m_sectionDict
==
0
)
SectionInfo
*
gsi
=
Doxygen
::
sectionDict
.
find
(
si
->
label
);
if
(
gsi
==
0
)
{
{
m_sectionDict
=
new
SectionDict
(
17
);
gsi
=
new
SectionInfo
(
*
si
);
Doxygen
::
sectionDict
.
insert
(
si
->
label
,
gsi
);
}
}
if
(
m_sectionDict
->
find
(
*
s
)
==
0
)
if
(
m_sectionDict
==
0
)
{
{
m_sectionDict
->
insert
(
*
s
,
si
);
m_sectionDict
=
new
SectionDict
(
17
);
}
si
->
definition
=
this
;
}
}
else
if
(
m_sectionDict
->
find
(
gsi
->
label
)
==
0
)
{
{
//printf("Section `%s' not found!\n",s->data());
m_sectionDict
->
insert
(
gsi
->
label
,
gsi
);
gsi
->
definition
=
this
;
}
}
s
=
anchorList
->
next
();
s
i
=
anchorList
->
next
();
}
}
}
}
...
@@ -108,7 +107,7 @@ void Definition::writeDocAnchorsToTagFile()
...
@@ -108,7 +107,7 @@ void Definition::writeDocAnchorsToTagFile()
{
{
if
(
!
Config_getString
(
"GENERATE_TAGFILE"
).
isEmpty
()
&&
m_sectionDict
)
if
(
!
Config_getString
(
"GENERATE_TAGFILE"
).
isEmpty
()
&&
m_sectionDict
)
{
{
//printf("%s: writeDocAnchors(%d)\n",name().data(),m_sectionDict->count());
//printf("%s: writeDocAnchors
ToTagFile
(%d)\n",name().data(),m_sectionDict->count());
QDictIterator
<
SectionInfo
>
sdi
(
*
m_sectionDict
);
QDictIterator
<
SectionInfo
>
sdi
(
*
m_sectionDict
);
SectionInfo
*
si
;
SectionInfo
*
si
;
for
(;(
si
=
sdi
.
current
());
++
sdi
)
for
(;(
si
=
sdi
.
current
());
++
sdi
)
...
@@ -556,6 +555,7 @@ void Definition::addSourceReferences(MemberDef *md)
...
@@ -556,6 +555,7 @@ void Definition::addSourceReferences(MemberDef *md)
}
}
if
(
m_sourceRefsDict
->
find
(
name
)
==
0
)
if
(
m_sourceRefsDict
->
find
(
name
)
==
0
)
{
{
//printf("Adding reference %s->%s\n",md->name().data(),name.data());
m_sourceRefsDict
->
inSort
(
name
,
md
);
m_sourceRefsDict
->
inSort
(
name
,
md
);
}
}
}
}
...
...
src/definition.h
View file @
aca0b889
...
@@ -31,6 +31,7 @@ class MemberDef;
...
@@ -31,6 +31,7 @@ class MemberDef;
class
GroupDef
;
class
GroupDef
;
class
GroupList
;
class
GroupList
;
struct
ListItemInfo
;
struct
ListItemInfo
;
class
SectionInfo
;
/*! The common base class of all entity definitions found in the sources. */
/*! The common base class of all entity definitions found in the sources. */
class
Definition
class
Definition
...
@@ -89,7 +90,7 @@ class Definition
...
@@ -89,7 +90,7 @@ class Definition
/*! Add the list of anchors that mark the sections that are found in the
/*! Add the list of anchors that mark the sections that are found in the
* documentation.
* documentation.
*/
*/
void
addSectionsToDefinition
(
QList
<
QCString
>
*
anchorList
);
void
addSectionsToDefinition
(
QList
<
SectionInfo
>
*
anchorList
);
void
writeDocAnchorsToTagFile
();
void
writeDocAnchorsToTagFile
();
// source references
// source references
...
...
src/docparser.cpp
View file @
aca0b889
...
@@ -1144,8 +1144,8 @@ static void readTextFileByName(const QString &file,QString &text)
...
@@ -1144,8 +1144,8 @@ static void readTextFileByName(const QString &file,QString &text)
}
}
else
else
{
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: included file %s is not found"
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: included file %s is not found
.
"
"Check you EXAMPLE_PATH"
,
file
.
data
());
"Check you
r
EXAMPLE_PATH"
,
file
.
data
());
}
}
}
}
...
@@ -1167,10 +1167,12 @@ DocAnchor::DocAnchor(DocNode *parent,const QString &id,bool newAnchor)
...
@@ -1167,10 +1167,12 @@ DocAnchor::DocAnchor(DocNode *parent,const QString &id,bool newAnchor)
SectionInfo
*
sec
=
Doxygen
::
sectionDict
[
id
];
SectionInfo
*
sec
=
Doxygen
::
sectionDict
[
id
];
if
(
sec
)
if
(
sec
)
{
{
//printf("Found anchor %s\n",id.data());
m_file
=
sec
->
fileName
;
m_file
=
sec
->
fileName
;
m_anchor
=
sec
->
label
;
m_anchor
=
sec
->
label
;
if
(
g_sectionDict
&&
g_sectionDict
->
find
(
id
)
==
0
)
if
(
g_sectionDict
&&
g_sectionDict
->
find
(
id
)
==
0
)
{
{
//printf("Inserting in dictionary!\n");
g_sectionDict
->
insert
(
id
,
sec
);
g_sectionDict
->
insert
(
id
,
sec
);
}
}
}
}
...
@@ -4672,8 +4674,7 @@ void DocRoot::parse()
...
@@ -4672,8 +4674,7 @@ void DocRoot::parse()
DocNode
*
validatingParseDoc
(
const
char
*
fileName
,
int
startLine
,
DocNode
*
validatingParseDoc
(
const
char
*
fileName
,
int
startLine
,
const
char
*
context
,
MemberDef
*
md
,
const
char
*
context
,
MemberDef
*
md
,
const
char
*
input
,
bool
isExample
,
const
char
*
input
,
bool
isExample
,
const
char
*
exampleName
,
const
char
*
exampleName
)
SectionDict
*
sections
)
{
{
//printf("========== validating %s at line %d\n",fileName,startLine);
//printf("========== validating %s at line %d\n",fileName,startLine);
...
@@ -4696,7 +4697,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
...
@@ -4696,7 +4697,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
g_hasParamCommand
=
FALSE
;
g_hasParamCommand
=
FALSE
;
g_paramsFound
.
setAutoDelete
(
FALSE
);
g_paramsFound
.
setAutoDelete
(
FALSE
);
g_paramsFound
.
clear
();
g_paramsFound
.
clear
();
g_sectionDict
=
sections
;
g_sectionDict
=
0
;
//
sections;
doctokenizerYYlineno
=
startLine
;
doctokenizerYYlineno
=
startLine
;
doctokenizerYYinit
(
input
,
g_fileName
);
doctokenizerYYinit
(
input
,
g_fileName
);
...
...
src/docparser.h
View file @
aca0b889
...
@@ -30,7 +30,6 @@
...
@@ -30,7 +30,6 @@
class
DocNode
;
class
DocNode
;
class
MemberDef
;
class
MemberDef
;
class
PageInfo
;
class
Definition
;
class
Definition
;
class
MemberGroup
;
class
MemberGroup
;
class
SectionDict
;
class
SectionDict
;
...
@@ -48,15 +47,13 @@ class SectionDict;
...
@@ -48,15 +47,13 @@ class SectionDict;
* @param input String representation of the documentation block.
* @param input String representation of the documentation block.
* @param isExample TRUE if the documentation belongs to an example.
* @param isExample TRUE if the documentation belongs to an example.
* @param exampleName Base name of the example file (0 if isExample is FALSE).
* @param exampleName Base name of the example file (0 if isExample is FALSE).
* @param sections Sections (and anchors) found in the documentation are
* collected here (if not 0).
* @returns Root node of the abstract syntax tree. Ownership of the
* @returns Root node of the abstract syntax tree. Ownership of the
* pointer is handed over to the caller.
* pointer is handed over to the caller.
*/
*/
DocNode
*
validatingParseDoc
(
const
char
*
fileName
,
int
startLine
,
DocNode
*
validatingParseDoc
(
const
char
*
fileName
,
int
startLine
,
const
char
*
context
,
MemberDef
*
md
,
const
char
*
context
,
MemberDef
*
md
,
const
char
*
input
,
bool
isExample
,
const
char
*
input
,
bool
isExample
,
const
char
*
exampleName
=
0
,
SectionDict
*
sections
=
0
);
const
char
*
exampleName
=
0
);
/*! Main entry point for parsing simple text fragments. These
/*! Main entry point for parsing simple text fragments. These
* fragments are limited to words, whitespace and symbols.
* fragments are limited to words, whitespace and symbols.
...
...
src/doctokenizer.l
View file @
aca0b889
...
@@ -206,7 +206,7 @@ static void parseHtmlAttribs(const char *att)
...
@@ -206,7 +206,7 @@ static void parseHtmlAttribs(const char *att)
static void processSection()
static void processSection()
{
{
//printf("
found section/anchor with name `%s'\n"
,g_secLabel.data());
//printf("
%s: found section/anchor with name `%s'\n",g_fileName.data()
,g_secLabel.data());
QCString file;
QCString file;
if (g_memberGroup)
if (g_memberGroup)
{
{
...
@@ -221,15 +221,11 @@ static void processSection()
...
@@ -221,15 +221,11 @@ static void processSection()
warn(g_fileName,yylineno,"Found section/anchor %s without context\n",g_secLabel.data());
warn(g_fileName,yylineno,"Found section/anchor %s without context\n",g_secLabel.data());
}
}
SectionInfo *si=0;
SectionInfo *si=0;
if ((si=Doxygen::sectionDict.find(g_secLabel))
==0
)
if ((si=Doxygen::sectionDict.find(g_secLabel)))
{
{
si = new SectionInfo(file,g_secLabel,g_secTitle,g_secType);
si->fileName = file;
Doxygen::sectionDict.insert(g_secLabel,si);
//si = new SectionInfo(file,g_secLabel,g_secTitle,g_secType);
}
//Doxygen::sectionDict.insert(g_secLabel,si);
else if (!si->generated)
{
warn(g_fileName,yylineno,"Duplicate section/anchor label %s found!\n",
g_secLabel.data());
}
}
}
}
...
...
src/dot.cpp
View file @
aca0b889
...
@@ -426,7 +426,9 @@ static void writeBoxMemberList(QTextStream &t,char prot,MemberList &ml,ClassDef
...
@@ -426,7 +426,9 @@ static void writeBoxMemberList(QTextStream &t,char prot,MemberList &ml,ClassDef
{
{
if
(
mma
->
getClassDef
()
==
scope
)
if
(
mma
->
getClassDef
()
==
scope
)
{
{
t
<<
prot
<<
" "
<<
convertLabel
(
mma
->
name
())
<<
"
\\
l"
;
t
<<
prot
<<
" "
<<
convertLabel
(
mma
->
name
());
if
(
mma
->
isFunction
())
t
<<
"()"
;
t
<<
"
\\
l"
;
}
}
}
}
}
}
...
...
src/doxygen.cpp
View file @
aca0b889
...
@@ -111,6 +111,8 @@ NamespaceDef *Doxygen::globalScope = new NamespaceDef("<globalScope>",1,"<globa
...
@@ -111,6 +111,8 @@ NamespaceDef *Doxygen::globalScope = new NamespaceDef("<globalScope>",1,"<globa
QDict
<
RefList
>
*
Doxygen
::
xrefLists
=
new
QDict
<
RefList
>
;
// dictionary of cross-referenced item lists
QDict
<
RefList
>
*
Doxygen
::
xrefLists
=
new
QDict
<
RefList
>
;
// dictionary of cross-referenced item lists
bool
Doxygen
::
parseSourcesNeeded
=
FALSE
;
bool
Doxygen
::
parseSourcesNeeded
=
FALSE
;
double
Doxygen
::
sysElapsedTime
=
0.0
;
QTime
Doxygen
::
runningTime
;
static
StringList
inputFiles
;
static
StringList
inputFiles
;
static
StringDict
excludeNameDict
(
1009
);
// sections
static
StringDict
excludeNameDict
(
1009
);
// sections
...
@@ -6072,8 +6074,6 @@ static void findMainPage(Entry *root)
...
@@ -6072,8 +6074,6 @@ static void findMainPage(Entry *root)
indexName
,
root
->
doc
,
title
);
indexName
,
root
->
doc
,
title
);
//setFileNameForSections(root->anchors,"index",Doxygen::mainPage);
//setFileNameForSections(root->anchors,"index",Doxygen::mainPage);
Doxygen
::
mainPage
->
setFileName
(
indexName
);
Doxygen
::
mainPage
->
setFileName
(
indexName
);
Doxygen
::
mainPage
->
addSectionsToDefinition
(
root
->
anchors
);
//Doxygen::mainPage->addSections(root->anchors);
// a page name is a label as well!
// a page name is a label as well!
SectionInfo
*
si
=
new
SectionInfo
(
SectionInfo
*
si
=
new
SectionInfo
(
...
@@ -6082,6 +6082,7 @@ static void findMainPage(Entry *root)
...
@@ -6082,6 +6082,7 @@ static void findMainPage(Entry *root)
Doxygen
::
mainPage
->
title
(),
Doxygen
::
mainPage
->
title
(),
SectionInfo
::
Section
);
SectionInfo
::
Section
);
Doxygen
::
sectionDict
.
insert
(
indexName
,
si
);
Doxygen
::
sectionDict
.
insert
(
indexName
,
si
);
Doxygen
::
mainPage
->
addSectionsToDefinition
(
root
->
anchors
);
}
}
else
else
{
{
...
@@ -7109,6 +7110,7 @@ void initDoxygen()
...
@@ -7109,6 +7110,7 @@ void initDoxygen()
setlocale
(
LC_NUMERIC
,
"C"
);
setlocale
(
LC_NUMERIC
,
"C"
);
#endif
#endif
Doxygen
::
runningTime
.
start
();
initPreprocessor
();
initPreprocessor
();
Doxygen
::
sectionDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
sectionDict
.
setAutoDelete
(
TRUE
);
...
@@ -8194,5 +8196,12 @@ void generateOutput()
...
@@ -8194,5 +8196,12 @@ void generateOutput()
QDir
::
setCurrent
(
oldDir
);
QDir
::
setCurrent
(
oldDir
);
}
}
cleanUpDoxygen
();
cleanUpDoxygen
();
if
(
Debug
::
isFlagSet
(
Debug
::
Time
))
{
printf
(
"Total elapsed time: %.3f seconds
\n
(of which %.3f seconds waiting for external tools to finish)
\n
"
,
((
double
)
Doxygen
::
runningTime
.
elapsed
())
/
1000.0
,
Doxygen
::
sysElapsedTime
);
}
}
}
src/doxygen.h
View file @
aca0b889
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
#include "qtbc.h"
#include "qtbc.h"
#include <qtextstream.h>
#include <qtextstream.h>
#include <qdatetime.h>
#include "groupdef.h"
#include "groupdef.h"
#include "filedef.h"
#include "filedef.h"
#include "classdef.h"
#include "classdef.h"
...
@@ -94,6 +95,8 @@ class Doxygen
...
@@ -94,6 +95,8 @@ class Doxygen
static
QDict
<
RefList
>
*
xrefLists
;
// array of xref lists: todo, test, bug, deprecated ...
static
QDict
<
RefList
>
*
xrefLists
;
// array of xref lists: todo, test, bug, deprecated ...
static
QCString
htmlFileExtension
;
static
QCString
htmlFileExtension
;
static
bool
parseSourcesNeeded
;
static
bool
parseSourcesNeeded
;
static
double
sysElapsedTime
;
static
QTime
runningTime
;
};
};
void
initDoxygen
();
void
initDoxygen
();
...
...
src/entry.cpp
View file @
aca0b889
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
#include "entry.h"
#include "entry.h"
#include "util.h"
#include "util.h"
#include "section.h"
int
Entry
::
num
=
0
;
int
Entry
::
num
=
0
;
...
@@ -32,8 +33,7 @@ Entry::Entry()
...
@@ -32,8 +33,7 @@ Entry::Entry()
extends
->
setAutoDelete
(
TRUE
);
extends
->
setAutoDelete
(
TRUE
);
groups
=
new
QList
<
Grouping
>
;
groups
=
new
QList
<
Grouping
>
;
groups
->
setAutoDelete
(
TRUE
);
groups
->
setAutoDelete
(
TRUE
);
anchors
=
new
QList
<
QCString
>
;
anchors
=
new
QList
<
SectionInfo
>
;
anchors
->
setAutoDelete
(
TRUE
);
argList
=
new
ArgumentList
;
argList
=
new
ArgumentList
;
argList
->
setAutoDelete
(
TRUE
);
argList
->
setAutoDelete
(
TRUE
);
//printf("Entry::Entry() tArgList=0\n");
//printf("Entry::Entry() tArgList=0\n");
...
@@ -92,8 +92,7 @@ Entry::Entry(const Entry &e)
...
@@ -92,8 +92,7 @@ Entry::Entry(const Entry &e)
extends
->
setAutoDelete
(
TRUE
);
extends
->
setAutoDelete
(
TRUE
);
groups
=
new
QList
<
Grouping
>
;
groups
=
new
QList
<
Grouping
>
;
groups
->
setAutoDelete
(
TRUE
);
groups
->
setAutoDelete
(
TRUE
);
anchors
=
new
QList
<
QCString
>
;
anchors
=
new
QList
<
SectionInfo
>
;
anchors
->
setAutoDelete
(
TRUE
);
argList
=
new
ArgumentList
;
argList
=
new
ArgumentList
;
argList
->
setAutoDelete
(
TRUE
);
argList
->
setAutoDelete
(
TRUE
);
tArgLists
=
0
;
tArgLists
=
0
;
...
@@ -123,11 +122,11 @@ Entry::Entry(const Entry &e)
...
@@ -123,11 +122,11 @@ Entry::Entry(const Entry &e)
groups
->
append
(
new
Grouping
(
*
g
));
groups
->
append
(
new
Grouping
(
*
g
));
}
}
QListIterator
<
QCString
>
sli2
(
*
e
.
anchors
);
QListIterator
<
SectionInfo
>
sli2
(
*
e
.
anchors
);
QCString
*
s
;
SectionInfo
*
s
;
for
(;(
s
=
sli2
.
current
());
++
sli2
)
for
(;(
s
=
sli2
.
current
());
++
sli2
)
{
{
anchors
->
append
(
new
QCString
(
*
s
));
anchors
->
append
(
new
SectionInfo
(
*
s
));
}
}
// deep copy argument list
// deep copy argument list
...
@@ -301,13 +300,6 @@ int Entry::getSize()
...
@@ -301,13 +300,6 @@ int Entry::getSize()
size
+=
sizeof
(
g
->
pri
);
size
+=
sizeof
(
g
->
pri
);
g
=
groups
->
next
();
g
=
groups
->
next
();
}
}
QCString
*
s
=
anchors
->
first
();
while
(
s
)
{
size
+=
sizeof
(
QLNode
);
size
+=
s
->
length
()
+
1
;
s
=
anchors
->
next
();
}
Entry
*
e
=
sublist
->
first
();
Entry
*
e
=
sublist
->
first
();
while
(
e
)
while
(
e
)
{
{
...
...
src/entry.h
View file @
aca0b889
...
@@ -21,6 +21,8 @@
...
@@ -21,6 +21,8 @@
#include "qtbc.h"
#include "qtbc.h"
#include <qlist.h>
#include <qlist.h>
class
SectionInfo
;
enum
Protection
{
Public
,
Protected
,
Private
,
Package
}
;
enum
Protection
{
Public
,
Protected
,
Private
,
Package
}
;
enum
Specifier
{
Normal
,
Virtual
,
Pure
}
;
enum
Specifier
{
Normal
,
Virtual
,
Pure
}
;
enum
MethodTypes
{
Method
,
Signal
,
Slot
,
DCOP
,
Property
,
Event
};
enum
MethodTypes
{
Method
,
Signal
,
Slot
,
DCOP
,
Property
,
Event
};
...
@@ -281,7 +283,7 @@ class Entry
...
@@ -281,7 +283,7 @@ class Entry
QList
<
Entry
>
*
sublist
;
//!< entries that are children of this one
QList
<
Entry
>
*
sublist
;
//!< entries that are children of this one
QList
<
BaseInfo
>
*
extends
;
//!< list of base classes
QList
<
BaseInfo
>
*
extends
;
//!< list of base classes
QList
<
Grouping
>
*
groups
;
//!< list of groups this entry belongs to
QList
<
Grouping
>
*
groups
;
//!< list of groups this entry belongs to
QList
<
QCString
>
*
anchors
;
//!< list of anchors defined in this entry
QList
<
SectionInfo
>
*
anchors
;
//!< list of anchors defined in this entry
QCString
fileName
;
//!< file this entry was extracted from
QCString
fileName
;
//!< file this entry was extracted from
int
startLine
;
//!< start line of entry in the source
int
startLine
;
//!< start line of entry in the source
QList
<
ListItemInfo
>
*
sli
;
//!< special lists (test/todo/bug/deprecated/..) this entry is in
QList
<
ListItemInfo
>
*
sli
;
//!< special lists (test/todo/bug/deprecated/..) this entry is in
...
...
src/htmlhelp.h
View file @
aca0b889
...
@@ -36,7 +36,7 @@ class HtmlHelp
...
@@ -36,7 +36,7 @@ class HtmlHelp
{
{
/*! used in imageNumber param of HTMLHelp::addContentsItem() function
/*! used in imageNumber param of HTMLHelp::addContentsItem() function
to specify document icon in tree view.
to specify document icon in tree view.
Writes
<param name="ImageNumber" value="xx"
> in .HHC file. */
Writes
\<param name="ImageNumber" value="xx"\
> in .HHC file. */
enum
ImageNumber
{
enum
ImageNumber
{
BOOK_CLOSED
=
1
,
BOOK_OPEN
,
BOOK_CLOSED
=
1
,
BOOK_OPEN
,
BOOK_CLOSED_NEW
,
BOOK_OPEN_NEW
,
BOOK_CLOSED_NEW
,
BOOK_OPEN_NEW
,
...
...
src/index.cpp
View file @
aca0b889
...
@@ -2132,7 +2132,15 @@ int countNamespaceMembers(int filter)
...
@@ -2132,7 +2132,15 @@ int countNamespaceMembers(int filter)
while
(
md
&&
!
found
)
while
(
md
&&
!
found
)
{
{
NamespaceDef
*
nd
=
md
->
getNamespaceDef
();
NamespaceDef
*
nd
=
md
->
getNamespaceDef
();
if
(
nd
&&
nd
->
isLinkableInProject
()
&&
md
->
isLinkableInProject
())
if
(
nd
&&
nd
->
isLinkableInProject
()
&&
md
->
isLinkableInProject
()
&&
(
filter
==
NMHL_All
||
(
filter
==
NMHL_Functions
&&
md
->
isFunction
())
||
(
filter
==
NMHL_Variables
&&
md
->
isVariable
())
||
(
filter
==
NMHL_Typedefs
&&
md
->
isTypedef
())
||
(
filter
==
NMHL_Enums
&&
md
->
isEnumerate
())
||
(
filter
==
NMHL_EnumValues
&&
md
->
isEnumValue
())
)
)
{
{
QCString
n
=
mn
->
memberName
();
QCString
n
=
mn
->
memberName
();
if
(
!
n
.
isEmpty
())
g_namespaceIndexLetterUsed
[
filter
][
tolower
(
n
.
at
(
0
))]
=
TRUE
;
if
(
!
n
.
isEmpty
())
g_namespaceIndexLetterUsed
[
filter
][
tolower
(
n
.
at
(
0
))]
=
TRUE
;
...
@@ -3120,18 +3128,15 @@ void writeIndex(OutputList &ol)
...
@@ -3120,18 +3128,15 @@ void writeIndex(OutputList &ol)
if
(
!
Config_getString
(
"GENERATE_TAGFILE"
).
isEmpty
())
if
(
!
Config_getString
(
"GENERATE_TAGFILE"
).
isEmpty
())
{
{
Doxygen
::
tagFile
<<
" <compound kind=
\"
page
\"
>"
<<
endl
Doxygen
::
tagFile
<<
" <compound kind=
\"
page
\"
>"
<<
endl
<<
" <filename>"
<<
convertToXML
(
Doxygen
::
mainPage
->
getOutputFileBase
())
<<
"</filename>"
<<
endl
<<
" <title>"
<<
convertToXML
(
Doxygen
::
mainPage
->
title
())
<<
"</title>"
<<
endl
<<
" <name>"
<<
" <name>"
<<
convertToXML
(
Doxygen
::
mainPage
->
name
())
<<
convertToXML
(
Doxygen
::
mainPage
->
name
())
<<
"</name>"
<<
"</name>"
<<
endl
<<
endl
;
<<
" <title>"
<<
convertToXML
(
Doxygen
::
mainPage
->
title
())
<<
"</title>"
<<
endl
<<
" <filename>"
<<
convertToXML
(
Doxygen
::
mainPage
->
getOutputFileBase
())
<<
"</filename>"
<<
endl
;
Doxygen
::
mainPage
->
writeDocAnchorsToTagFile
();
Doxygen
::
mainPage
->
writeDocAnchorsToTagFile
();
Doxygen
::
tagFile
<<
" </compound>"
<<
endl
;
Doxygen
::
tagFile
<<
" </compound>"
<<
endl
;
...
...
src/index.xsd
0 → 100644
View file @
aca0b889
<xsd:schema
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
>
<xsd:element
name=
"doxygen"
type=
"DoxygenType"
/>
<xsd:complexType
name=
"DoxygenType"
>
<xsd:sequence>
<xsd:element
name=
"compound"
type=
"CompoundType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xsd:sequence>
<xsd:attribute
name=
"version"
type=
"xsd:string"
use=
"required"
/>
</xsd:complexType>
<xsd:complexType
name=
"CompoundType"
>
<xsd:sequence>
<xsd:element
name=
"name"
type=
"xsd:string"
/>
<xsd:element
name=
"member"
type=
"MemberType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xsd:sequence>
<xsd:attribute
name=
"refid"
type=
"xsd:Name"
use=
"required"
/>
<xsd:attribute
name=
"kind"
type=
"CompoundKind"
use=
"required"
/>
</xsd:complexType>
<xsd:complexType
name=
"MemberType"
>
<xsd:sequence>
<xsd:element
name=
"name"
type=
"xsd:string"
/>
</xsd:sequence>
<xsd:attribute
name=
"refid"
type=
"xsd:Name"
use=
"required"
/>
<xsd:attribute
name=
"kind"
type=
"MemberKind"
use=
"required"
/>
</xsd:complexType>
<xsd:simpleType
name=
"CompoundKind"
>
<xsd:restriction
base=
"xsd:string"
>
<xsd:enumeration
value=
"class"
/>
<xsd:enumeration
value=
"struct"
/>
<xsd:enumeration
value=
"union"
/>
<xsd:enumeration
value=
"interface"
/>
<xsd:enumeration
value=
"exception"
/>
<xsd:enumeration
value=
"file"
/>
<xsd:enumeration
value=
"namespace"
/>
<xsd:enumeration
value=
"group"
/>
<xsd:enumeration
value=
"page"
/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType
name=
"MemberKind"
>
<xsd:restriction
base=
"xsd:string"
>
<xsd:enumeration
value=
"define"
/>
<xsd:enumeration
value=
"property"
/>
<xsd:enumeration
value=
"event"
/>
<xsd:enumeration
value=
"variable"
/>
<xsd:enumeration
value=
"typedef"
/>
<xsd:enumeration
value=
"enum"
/>
<xsd:enumeration
value=
"function"
/>
<xsd:enumeration
value=
"signal"
/>
<xsd:enumeration
value=
"prototype"
/>
<xsd:enumeration
value=
"friend"
/>
<xsd:enumeration
value=
"dcop"
/>
<xsd:enumeration
value=
"slot"
/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
src/index_xsd.h
0 → 100644
View file @
aca0b889
"<xsd:schema xmlns:xsd=
\"
http://www.w3.org/2001/XMLSchema
\"
>
\n
"
" <xsd:element name=
\"
doxygen
\"
type=
\"
DoxygenType
\"
/>
\n
"
"
\n
"
" <xsd:complexType name=
\"
DoxygenType
\"
>
\n
"
" <xsd:sequence>
\n
"
" <xsd:element name=
\"
compound
\"
type=
\"
CompoundType
\"
minOccurs=
\"
0
\"
maxOccurs=
\"
unbounded
\"
/>
\n
"
" </xsd:sequence>
\n
"
" <xsd:attribute name=
\"
version
\"
type=
\"
xsd:string
\"
use=
\"
required
\"
/>
\n
"
" </xsd:complexType>
\n
"
"
\n
"
" <xsd:complexType name=
\"
CompoundType
\"
>
\n
"
" <xsd:sequence>
\n
"
" <xsd:element name=
\"
name
\"
type=
\"
xsd:string
\"
/>
\n
"
" <xsd:element name=
\"
member
\"
type=
\"
MemberType
\"
minOccurs=
\"
0
\"
maxOccurs=
\"
unbounded
\"
/>
\n
"
" </xsd:sequence>
\n
"
" <xsd:attribute name=
\"
refid
\"
type=
\"
xsd:Name
\"
use=
\"
required
\"
/>
\n
"
" <xsd:attribute name=
\"
kind
\"
type=
\"
CompoundKind
\"
use=
\"
required
\"
/>
\n
"
" </xsd:complexType>
\n
"
"
\n
"
" <xsd:complexType name=
\"
MemberType
\"
>
\n
"
" <xsd:sequence>
\n
"
" <xsd:element name=
\"
name
\"
type=
\"
xsd:string
\"
/>
\n
"
" </xsd:sequence>
\n
"
" <xsd:attribute name=
\"
refid
\"
type=
\"
xsd:Name
\"
use=
\"
required
\"
/>
\n
"
" <xsd:attribute name=
\"
kind
\"
type=
\"
MemberKind
\"
use=
\"
required
\"
/>
\n
"
" </xsd:complexType>
\n
"
"
\n
"
" <xsd:simpleType name=
\"
CompoundKind
\"
>
\n
"
" <xsd:restriction base=
\"
xsd:string
\"
>
\n
"
" <xsd:enumeration value=
\"
class
\"
/>
\n
"
" <xsd:enumeration value=
\"
struct
\"
/>
\n
"
" <xsd:enumeration value=
\"
union
\"
/>
\n
"
" <xsd:enumeration value=
\"
interface
\"
/>
\n
"
" <xsd:enumeration value=
\"
exception
\"
/>
\n
"
" <xsd:enumeration value=
\"
file
\"
/>
\n
"
" <xsd:enumeration value=
\"
namespace
\"
/>
\n
"
" <xsd:enumeration value=
\"
group
\"
/>
\n
"
" <xsd:enumeration value=
\"
page
\"
/>
\n
"
" </xsd:restriction>
\n
"
" </xsd:simpleType>
\n
"
"
\n
"
" <xsd:simpleType name=
\"
MemberKind
\"
>
\n
"
" <xsd:restriction base=
\"
xsd:string
\"
>
\n
"
" <xsd:enumeration value=
\"
define
\"
/>
\n
"
" <xsd:enumeration value=
\"
property
\"
/>
\n
"
" <xsd:enumeration value=
\"
event
\"
/>
\n
"
" <xsd:enumeration value=
\"
variable
\"
/>
\n
"
" <xsd:enumeration value=
\"
typedef
\"
/>
\n
"
" <xsd:enumeration value=
\"
enum
\"
/>
\n
"
" <xsd:enumeration value=
\"
function
\"
/>
\n
"
" <xsd:enumeration value=
\"
signal
\"
/>
\n
"
" <xsd:enumeration value=
\"
prototype
\"
/>
\n
"
" <xsd:enumeration value=
\"
friend
\"
/>
\n
"
" <xsd:enumeration value=
\"
dcop
\"
/>
\n
"
" <xsd:enumeration value=
\"
slot
\"
/>
\n
"
" </xsd:restriction>
\n
"
" </xsd:simpleType>
\n
"
"
\n
"
"</xsd:schema>
\n
"
"
\n
"
src/libdoxygen.pro.in
View file @
aca0b889
...
@@ -22,6 +22,7 @@ HEADERS = bufstr.h \
...
@@ -22,6 +22,7 @@ HEADERS = bufstr.h \
cmdmapper.h \
cmdmapper.h \
code.h \
code.h \
commentcnv.h \
commentcnv.h \
compound_xsd.h \
config.h \
config.h \
constexp.h \
constexp.h \
cppvalue.h \
cppvalue.h \
...
@@ -50,6 +51,7 @@ HEADERS = bufstr.h \
...
@@ -50,6 +51,7 @@ HEADERS = bufstr.h \
htmlhelp.h \
htmlhelp.h \
image.h \
image.h \
index.h \
index.h \
index_xsd.h \
instdox.h \
instdox.h \
language.h \
language.h \
latexdocvisitor.h \
latexdocvisitor.h \
...
...
src/libdoxygen.t
View file @
aca0b889
...
@@ -76,6 +76,9 @@ sub GenerateDep {
...
@@ -76,6 +76,9 @@ sub GenerateDep {
$
(
YACC
)
-
l
-
d
-
p
cppExpYY
constexp
.
y
-
o
ce_parse
.
c
$
(
YACC
)
-
l
-
d
-
p
cppExpYY
constexp
.
y
-
o
ce_parse
.
c
-
rm
ce_parse
.
c
-
rm
ce_parse
.
c
#treeview.h: treeview.js
index_xsd
.
h:
index
.
xsd
# cat treeview.js | sed -e "s/\\\\/\\\\\\\\/g" -e "s/\"/\\\\\"/g" -e "s/^/\"/g" -e "s/$$/\\\\n\"/g" >treeview.h
cat
index
.
xsd
|
sed
-
e
"s/\\\\/\\\\\\\\/g"
-
e
"s/\"/\\\\\"/g"
-
e
"s/^/\"/g"
-
e
"s/$$/\\\\n\"/g"
>
index_xsd
.
h
compound_xsd
.
h:
compound
.
xsd
cat
compound
.
xsd
|
sed
-
e
"s/\\\\/\\\\\\\\/g"
-
e
"s/\"/\\\\\"/g"
-
e
"s/^/\"/g"
-
e
"s/$$/\\\\n\"/g"
>
compound_xsd
.
h
src/memberdef.cpp
View file @
aca0b889
...
@@ -498,9 +498,21 @@ void MemberDef::writeLink(OutputList &ol,ClassDef *cd,NamespaceDef *nd,
...
@@ -498,9 +498,21 @@ void MemberDef::writeLink(OutputList &ol,ClassDef *cd,NamespaceDef *nd,
ol
.
writeObjectLink
(
group
->
getReference
(),
group
->
getOutputFileBase
(),
anchor
(),
name
());
ol
.
writeObjectLink
(
group
->
getReference
(),
group
->
getOutputFileBase
(),
anchor
(),
name
());
}
}
else
// local link
else
// local link
{
QCString
sep
=
Config_getBool
(
"OPTIMIZE_OUTPUT_JAVA"
)
?
"."
:
"::"
;
if
(
cd
)
{
ol
.
writeObjectLink
(
d
->
getReference
(),
d
->
getOutputFileBase
(),
anchor
(),
cd
->
name
()
+
sep
+
name
());
}
else
if
(
nd
)
{
ol
.
writeObjectLink
(
d
->
getReference
(),
d
->
getOutputFileBase
(),
anchor
(),
nd
->
name
()
+
sep
+
name
());
}
else
{
{
ol
.
writeObjectLink
(
d
->
getReference
(),
d
->
getOutputFileBase
(),
anchor
(),
name
());
ol
.
writeObjectLink
(
d
->
getReference
(),
d
->
getOutputFileBase
(),
anchor
(),
name
());
}
}
}
}
}
/*! If this member has an anonymous class/struct/union as its type, then
/*! If this member has an anonymous class/struct/union as its type, then
...
@@ -2017,3 +2029,11 @@ void MemberDef::enableCallGraph(bool e)
...
@@ -2017,3 +2029,11 @@ void MemberDef::enableCallGraph(bool e)
if
(
e
)
Doxygen
::
parseSourcesNeeded
=
TRUE
;
if
(
e
)
Doxygen
::
parseSourcesNeeded
=
TRUE
;
}
}
bool
MemberDef
::
protectionVisible
()
const
{
return
prot
==
Public
||
(
prot
==
Private
&&
Config_getBool
(
"EXTRACT_PRIVATE"
))
||
(
prot
==
Protected
&&
Config_getBool
(
"EXTRACT_PROTECTED"
))
||
(
prot
==
Package
&&
Config_getBool
(
"EXTRACT_PACKAGE"
));
}
src/memberdef.h
View file @
aca0b889
...
@@ -129,6 +129,7 @@ class MemberDef : public Definition
...
@@ -129,6 +129,7 @@ class MemberDef : public Definition
bool
isDestructor
()
const
;
bool
isDestructor
()
const
;
bool
hasOneLineInitializer
()
const
;
bool
hasOneLineInitializer
()
const
;
bool
hasMultiLineInitializer
()
const
;
bool
hasMultiLineInitializer
()
const
;
bool
protectionVisible
()
const
;
// output info
// output info
bool
isLinkableInProject
()
const
;
bool
isLinkableInProject
()
const
;
...
...
src/message.cpp
View file @
aca0b889
...
@@ -17,8 +17,11 @@
...
@@ -17,8 +17,11 @@
#include <stdarg.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdio.h>
#include <qdatetime.h>
#include "config.h"
#include "config.h"
#include "util.h"
#include "util.h"
#include "debug.h"
#include "doxygen.h"
static
QCString
outputFormat
;
static
QCString
outputFormat
;
static
int
warnFormatOrder
;
// 1 = $file,$line,$text
static
int
warnFormatOrder
;
// 1 = $file,$line,$text
...
@@ -96,6 +99,10 @@ void msg(const char *fmt, ...)
...
@@ -96,6 +99,10 @@ void msg(const char *fmt, ...)
{
{
if
(
!
Config_getBool
(
"QUIET"
))
if
(
!
Config_getBool
(
"QUIET"
))
{
{
if
(
Debug
::
isFlagSet
(
Debug
::
Time
))
{
printf
(
"%.3f sec: "
,((
double
)
Doxygen
::
runningTime
.
elapsed
())
/
1000.0
);
}
va_list
args
;
va_list
args
;
va_start
(
args
,
fmt
);
va_start
(
args
,
fmt
);
vfprintf
(
stdout
,
fmt
,
args
);
vfprintf
(
stdout
,
fmt
,
args
);
...
...
src/outputlist.cpp
View file @
aca0b889
...
@@ -194,7 +194,7 @@ void OutputList::popGeneratorState()
...
@@ -194,7 +194,7 @@ void OutputList::popGeneratorState()
void
OutputList
::
parseDoc
(
const
char
*
fileName
,
int
startLine
,
void
OutputList
::
parseDoc
(
const
char
*
fileName
,
int
startLine
,
const
char
*
clName
,
MemberDef
*
md
,
const
char
*
clName
,
MemberDef
*
md
,
const
QCString
&
docStr
,
bool
isExample
,
const
QCString
&
docStr
,
bool
isExample
,
const
char
*
exampleName
,
SectionDict
*
sections
)
const
char
*
exampleName
)
{
{
int
count
=
0
;
int
count
=
0
;
if
(
docStr
.
isEmpty
())
return
;
if
(
docStr
.
isEmpty
())
return
;
...
@@ -211,14 +211,12 @@ void OutputList::parseDoc(const char *fileName,int startLine,
...
@@ -211,14 +211,12 @@ void OutputList::parseDoc(const char *fileName,int startLine,
if
(
docStr
.
at
(
docStr
.
length
()
-
1
)
==
'\n'
)
if
(
docStr
.
at
(
docStr
.
length
()
-
1
)
==
'\n'
)
{
{
root
=
validatingParseDoc
(
fileName
,
startLine
,
root
=
validatingParseDoc
(
fileName
,
startLine
,
clName
,
md
,
docStr
,
isExample
,
exampleName
,
clName
,
md
,
docStr
,
isExample
,
exampleName
);
sections
);
}
}
else
else
{
{
root
=
validatingParseDoc
(
fileName
,
startLine
,
root
=
validatingParseDoc
(
fileName
,
startLine
,
clName
,
md
,
docStr
+
"
\n
"
,
isExample
,
exampleName
,
clName
,
md
,
docStr
+
"
\n
"
,
isExample
,
exampleName
);
sections
);
}
}
og
=
outputs
->
first
();
og
=
outputs
->
first
();
...
...
src/outputlist.h
View file @
aca0b889
...
@@ -62,7 +62,7 @@ class OutputList : public OutputDocInterface
...
@@ -62,7 +62,7 @@ class OutputList : public OutputDocInterface
void
parseDoc
(
const
char
*
fileName
,
int
startLine
,
void
parseDoc
(
const
char
*
fileName
,
int
startLine
,
const
char
*
clName
,
MemberDef
*
md
,
const
QCString
&
docStr
,
const
char
*
clName
,
MemberDef
*
md
,
const
QCString
&
docStr
,
bool
isExample
,
const
char
*
exampleName
=
0
,
SectionDict
*
sections
=
0
);
bool
isExample
,
const
char
*
exampleName
=
0
);
void
parseText
(
const
QCString
&
textStr
);
void
parseText
(
const
QCString
&
textStr
);
...
...
src/pagedef.cpp
View file @
aca0b889
...
@@ -25,3 +25,11 @@ GroupDef *PageDef::getGroupDef() const
...
@@ -25,3 +25,11 @@ GroupDef *PageDef::getGroupDef() const
return
partOfGroups
()
?
partOfGroups
()
->
getFirst
()
:
0
;
return
partOfGroups
()
?
partOfGroups
()
->
getFirst
()
:
0
;
}
}
QCString
PageDef
::
getOutputFileBase
()
const
{
if
(
getGroupDef
())
return
getGroupDef
()
->
getOutputFileBase
();
else
return
m_fileName
;
}
src/pagedef.h
View file @
aca0b889
...
@@ -34,7 +34,7 @@ class PageDef : public Definition
...
@@ -34,7 +34,7 @@ class PageDef : public Definition
}
}
// functions to get a uniform interface with Definitions
// functions to get a uniform interface with Definitions
QCString
getOutputFileBase
()
const
{
return
m_fileName
;
}
QCString
getOutputFileBase
()
const
;
void
findSectionsInDocumentation
();
void
findSectionsInDocumentation
();
QCString
title
()
const
{
return
m_title
;
}
QCString
title
()
const
{
return
m_title
;
}
GroupDef
*
getGroupDef
()
const
;
GroupDef
*
getGroupDef
()
const
;
...
...
src/perlmodgen.cpp
View file @
aca0b889
...
@@ -226,7 +226,7 @@ void PerlModOutput::iaddQuoted(const char *s)
...
@@ -226,7 +226,7 @@ void PerlModOutput::iaddQuoted(const char *s)
{
{
char
c
;
char
c
;
while
((
c
=
*
s
++
)
!=
0
)
{
while
((
c
=
*
s
++
)
!=
0
)
{
if
(
c
==
'\''
)
if
(
(
c
==
'\''
)
||
(
c
==
'\\'
)
)
m_stream
->
add
(
'\\'
);
m_stream
->
add
(
'\\'
);
m_stream
->
add
(
c
);
m_stream
->
add
(
c
);
}
}
...
@@ -243,7 +243,7 @@ void PerlModOutput::iaddFieldQuotedChar(const char *field, char content)
...
@@ -243,7 +243,7 @@ void PerlModOutput::iaddFieldQuotedChar(const char *field, char content)
{
{
iaddField
(
field
);
iaddField
(
field
);
m_stream
->
add
(
'\''
);
m_stream
->
add
(
'\''
);
if
(
content
==
'\''
)
if
(
(
content
==
'\''
)
||
(
content
==
'\\'
)
)
m_stream
->
add
(
'\\'
);
m_stream
->
add
(
'\\'
);
m_stream
->
add
(
content
);
m_stream
->
add
(
content
);
m_stream
->
add
(
'\''
);
m_stream
->
add
(
'\''
);
...
...
src/scanner.l
View file @
aca0b889
...
@@ -336,7 +336,7 @@ static void addXRefItem(const char *listName,const char *itemTitle,const char *l
...
@@ -336,7 +336,7 @@ static void addXRefItem(const char *listName,const char *itemTitle,const char *l
SectionInfo *si=new SectionInfo(listName,anchorLabel,
SectionInfo *si=new SectionInfo(listName,anchorLabel,
sectionTitle,SectionInfo::Anchor);
sectionTitle,SectionInfo::Anchor);
Doxygen::sectionDict.insert(anchorLabel,si);
Doxygen::sectionDict.insert(anchorLabel,si);
current->anchors->append(new
QCString(anchorLabel
));
current->anchors->append(new
SectionInfo(*si
));
}
}
current->brief = slString.copy(); // restore orginial brief desc.
current->brief = slString.copy(); // restore orginial brief desc.
}
}
...
@@ -503,7 +503,7 @@ FILE ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|("\""[^\n\"]+
...
@@ -503,7 +503,7 @@ FILE ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|("\""[^\n\"]+
ID [a-z_A-Z][a-z_A-Z0-9]*
ID [a-z_A-Z][a-z_A-Z0-9]*
LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
SCOPEID {ID}({ID}*{BN}*"::"{BN}*)*({ID}?)
SCOPEID {ID}({ID}*{BN}*"::"{BN}*)*({ID}?)
SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
SCOPENAME
"$"?
(({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
CSSCOPENAME (({ID}?{BN}*"."{BN}*)*)((~{BN}*)?{ID})
CSSCOPENAME (({ID}?{BN}*"."{BN}*)*)((~{BN}*)?{ID})
ATTR ({B}+[^>\n]*)?
ATTR ({B}+[^>\n]*)?
A [aA]
A [aA]
...
@@ -3976,14 +3976,14 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
...
@@ -3976,14 +3976,14 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
*pSkipDoc+=*yytext;
*pSkipDoc+=*yytext;
}
}
<AnchorLabel>{LABELID} {
<AnchorLabel>{LABELID} {
//sectionLabel=yytext
;
SectionInfo *si = new SectionInfo(yyFileName,yytext,0,SectionInfo::Anchor)
;
//addSection(
);
Doxygen::sectionDict.insert(yytext,si
);
//current->doc += "\\anchor "+sectionLabel+" "
;
current->anchors->append(si)
;
current->doc+=yytext;
current->doc+=yytext;
BEGIN(lastAnchorContext);
BEGIN(lastAnchorContext);
}
}
<SectionLabel>{LABELID} {
<SectionLabel>{LABELID} {
//
sectionLabel=yytext;
sectionLabel=yytext;
sectionTitle.resize(0);
sectionTitle.resize(0);
current->doc+=yytext;
current->doc+=yytext;
BEGIN(SectionTitle);
BEGIN(SectionTitle);
...
@@ -3991,8 +3991,9 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
...
@@ -3991,8 +3991,9 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
<SectionTitle>[^\n*]*/"\n" {
<SectionTitle>[^\n*]*/"\n" {
sectionTitle+=yytext;
sectionTitle+=yytext;
sectionTitle=sectionTitle.stripWhiteSpace();
sectionTitle=sectionTitle.stripWhiteSpace();
//current->doc += "\\section "+sectionLabel+" ";
SectionInfo *si = new SectionInfo(yyFileName,sectionLabel,sectionTitle,SectionInfo::Anchor);
//addSection();
current->anchors->append(si);
Doxygen::sectionDict.insert(yytext,si);
current->doc+=yytext;
current->doc+=yytext;
BEGIN(PageDoc);
BEGIN(PageDoc);
}
}
...
...
src/section.h
View file @
aca0b889
...
@@ -25,7 +25,6 @@
...
@@ -25,7 +25,6 @@
#include "sortdict.h"
#include "sortdict.h"
class
Definition
;
class
Definition
;
class
PageInfo
;
struct
SectionInfo
struct
SectionInfo
{
{
...
@@ -33,18 +32,23 @@ struct SectionInfo
...
@@ -33,18 +32,23 @@ struct SectionInfo
Subsubsection
,
Paragraph
,
Anchor
Subsubsection
,
Paragraph
,
Anchor
};
};
SectionInfo
(
const
char
*
f
,
const
char
*
l
,
const
char
*
t
,
SectionInfo
(
const
char
*
f
,
const
char
*
l
,
const
char
*
t
,
SectionType
st
,
const
char
*
r
=
0
)
SectionType
st
,
const
char
*
r
=
0
)
:
{
label
=
l
;
title
=
t
;
type
=
st
;
ref
=
r
;
label
(
l
),
title
(
t
),
type
(
st
),
ref
(
r
),
definition
(
0
),
definition
=
0
;
pageRef
=
0
;
generated
=
FALSE
;
fileName
(
f
),
generated
(
FALSE
)
fileName
=
f
;
{
}
SectionInfo
(
const
SectionInfo
&
s
)
{
label
=
s
.
label
.
copy
();
title
=
s
.
title
.
copy
();
ref
=
s
.
ref
.
copy
();
type
=
s
.
type
;
definition
=
s
.
definition
;
fileName
=
s
.
fileName
.
copy
();
generated
=
s
.
generated
;
}
}
~
SectionInfo
()
{}
~
SectionInfo
()
{}
QCString
label
;
QCString
label
;
QCString
title
;
QCString
title
;
QCString
ref
;
SectionType
type
;
SectionType
type
;
QCString
ref
;
Definition
*
definition
;
Definition
*
definition
;
PageInfo
*
pageRef
;
QCString
fileName
;
QCString
fileName
;
bool
generated
;
bool
generated
;
};
};
...
...
src/tagreader.cpp
View file @
aca0b889
...
@@ -865,7 +865,7 @@ void TagFileParser::addDocAnchors(Entry *e,QStrList &l)
...
@@ -865,7 +865,7 @@ void TagFileParser::addDocAnchors(Entry *e,QStrList &l)
SectionInfo
*
si
=
new
SectionInfo
(
e
->
fileName
,
*
anchorName
,
*
anchorName
,
SectionInfo
*
si
=
new
SectionInfo
(
e
->
fileName
,
*
anchorName
,
*
anchorName
,
SectionInfo
::
Anchor
,
m_tagName
);
SectionInfo
::
Anchor
,
m_tagName
);
Doxygen
::
sectionDict
.
insert
(
*
anchorName
,
si
);
Doxygen
::
sectionDict
.
insert
(
*
anchorName
,
si
);
e
->
anchors
->
append
(
anchorName
);
e
->
anchors
->
append
(
si
);
}
}
else
else
{
{
...
...
src/util.cpp
View file @
aca0b889
...
@@ -25,6 +25,7 @@
...
@@ -25,6 +25,7 @@
#include <qregexp.h>
#include <qregexp.h>
#include <qfileinfo.h>
#include <qfileinfo.h>
#include <qdir.h>
#include <qdir.h>
#include <qdatetime.h>
#include "util.h"
#include "util.h"
#include "message.h"
#include "message.h"
...
@@ -91,6 +92,8 @@ void TextGeneratorOLImpl::writeLink(const char *extRef,const char *file,
...
@@ -91,6 +92,8 @@ void TextGeneratorOLImpl::writeLink(const char *extRef,const char *file,
/*! Implements an interruptable system call on Unix/Windows */
/*! Implements an interruptable system call on Unix/Windows */
int
iSystem
(
const
char
*
command
,
const
char
*
args
,
bool
isBatchFile
)
int
iSystem
(
const
char
*
command
,
const
char
*
args
,
bool
isBatchFile
)
{
{
QTime
time
;
time
.
start
();
#ifndef _WIN32
#ifndef _WIN32
isBatchFile
=
isBatchFile
;
isBatchFile
=
isBatchFile
;
/*! taken from the system() manpage on my Linux box */
/*! taken from the system() manpage on my Linux box */
...
@@ -129,6 +132,7 @@ int iSystem(const char *command,const char *args,bool isBatchFile)
...
@@ -129,6 +132,7 @@ int iSystem(const char *command,const char *args,bool isBatchFile)
}
}
}
}
}
}
Doxygen
::
sysElapsedTime
+=
((
double
)
time
.
elapsed
())
/
1000.0
;
return
status
;
return
status
;
#else // Other Unices just use fork
#else // Other Unices just use fork
...
@@ -157,6 +161,7 @@ int iSystem(const char *command,const char *args,bool isBatchFile)
...
@@ -157,6 +161,7 @@ int iSystem(const char *command,const char *args,bool isBatchFile)
}
}
else
else
{
{
Doxygen
::
sysElapsedTime
+=
((
double
)
time
.
elapsed
())
/
1000.0
;
return
status
;
return
status
;
}
}
}
}
...
@@ -199,9 +204,10 @@ int iSystem(const char *command,const char *args,bool isBatchFile)
...
@@ -199,9 +204,10 @@ int iSystem(const char *command,const char *args,bool isBatchFile)
CloseHandle
(
sInfo
.
hProcess
);
CloseHandle
(
sInfo
.
hProcess
);
}
}
}
}
Doxygen
::
sysElapsedTime
+=
((
double
)
time
.
elapsed
())
/
1000.0
;
return
0
;
return
0
;
//return system(command);
#endif
#endif
}
}
...
@@ -3635,7 +3641,7 @@ found:
...
@@ -3635,7 +3641,7 @@ found:
PageDef
*
addRelatedPage
(
const
char
*
name
,
const
QCString
&
ptitle
,
PageDef
*
addRelatedPage
(
const
char
*
name
,
const
QCString
&
ptitle
,
const
QCString
&
doc
,
const
QCString
&
doc
,
QList
<
QCString
>
*
/*anchors*/
,
QList
<
SectionInfo
>
*
/*anchors*/
,
const
char
*
fileName
,
int
startLine
,
const
char
*
fileName
,
int
startLine
,
const
QList
<
ListItemInfo
>
*
sli
,
const
QList
<
ListItemInfo
>
*
sli
,
GroupDef
*
gd
,
GroupDef
*
gd
,
...
...
src/util.h
View file @
aca0b889
...
@@ -48,6 +48,7 @@ struct TagInfo;
...
@@ -48,6 +48,7 @@ struct TagInfo;
class
MemberNameInfoSDict
;
class
MemberNameInfoSDict
;
struct
ListItemInfo
;
struct
ListItemInfo
;
class
PageDef
;
class
PageDef
;
class
SectionInfo
;
//--------------------------------------------------------------------
//--------------------------------------------------------------------
...
@@ -185,7 +186,7 @@ int filterCRLF(char *buf,int len);
...
@@ -185,7 +186,7 @@ int filterCRLF(char *buf,int len);
void
addRefItem
(
const
QList
<
ListItemInfo
>
*
sli
,
const
char
*
prefix
,
void
addRefItem
(
const
QList
<
ListItemInfo
>
*
sli
,
const
char
*
prefix
,
const
char
*
name
,
const
char
*
title
,
const
char
*
args
=
0
);
const
char
*
name
,
const
char
*
title
,
const
char
*
args
=
0
);
PageDef
*
addRelatedPage
(
const
char
*
name
,
const
QCString
&
ptitle
,
PageDef
*
addRelatedPage
(
const
char
*
name
,
const
QCString
&
ptitle
,
const
QCString
&
doc
,
QList
<
QCString
>
*
anchors
,
const
QCString
&
doc
,
QList
<
SectionInfo
>
*
anchors
,
const
char
*
fileName
,
int
startLine
,
const
char
*
fileName
,
int
startLine
,
const
QList
<
ListItemInfo
>
*
sli
,
const
QList
<
ListItemInfo
>
*
sli
,
GroupDef
*
gd
=
0
,
GroupDef
*
gd
=
0
,
...
...
src/xmlgen.cpp
View file @
aca0b889
...
@@ -47,6 +47,14 @@
...
@@ -47,6 +47,14 @@
// debug inside output
// debug inside output
//#define XML_DB(x) QCString __t;__t.sprintf x;m_t << __t
//#define XML_DB(x) QCString __t;__t.sprintf x;m_t << __t
//------------------
static
const
char
index_xsd
[]
=
#include "index_xsd.h"
;
//------------------
inline
void
writeXMLString
(
QTextStream
&
t
,
const
char
*
s
)
inline
void
writeXMLString
(
QTextStream
&
t
,
const
char
*
s
)
{
{
...
@@ -1448,16 +1456,33 @@ void generateXML()
...
@@ -1448,16 +1456,33 @@ void generateXML()
}
}
}
}
QDir
xmlDir
(
outputDirectory
);
QDir
xmlDir
(
outputDirectory
);
QCString
fileName
=
outputDirectory
+
"/index.x
ml
"
;
QCString
fileName
=
outputDirectory
+
"/index.x
sd
"
;
QFile
f
(
fileName
);
QFile
f
(
fileName
);
if
(
!
f
.
open
(
IO_WriteOnly
))
if
(
!
f
.
open
(
IO_WriteOnly
))
{
{
err
(
"Cannot open file %s for writing!
\n
"
,
fileName
.
data
());
err
(
"Cannot open file %s for writing!
\n
"
,
fileName
.
data
());
return
;
return
;
}
}
f
.
writeBlock
(
index_xsd
,
strlen
(
index_xsd
));
f
.
close
();
fileName
=
outputDirectory
+
"/index.xml"
;
f
.
setName
(
fileName
);
if
(
!
f
.
open
(
IO_WriteOnly
))
{
err
(
"Cannot open file %s for writing!
\n
"
,
fileName
.
data
());
return
;
}
QTextStream
t
(
&
f
);
QTextStream
t
(
&
f
);
t
.
setEncoding
(
QTextStream
::
Latin1
);
t
.
setEncoding
(
QTextStream
::
Latin1
);
writeXMLHeader
(
t
);
// write index header
t
<<
"<?xml version='1.0' encoding='"
<<
theTranslator
->
idLanguageCharset
()
<<
"' standalone='no'?>"
<<
endl
;;
t
<<
"<doxygen xmlns:xsi=
\"
http://www.w3.org/2001/XMLSchema-instance
\"
"
;
t
<<
"xsi:noNamespaceSchemaLocation=
\"
index.xsd
\"
"
;
t
<<
"version=
\"
"
<<
versionString
<<
"
\"
>"
<<
endl
;
ClassSDict
::
Iterator
cli
(
Doxygen
::
classSDict
);
ClassSDict
::
Iterator
cli
(
Doxygen
::
classSDict
);
ClassDef
*
cd
;
ClassDef
*
cd
;
for
(
cli
.
toFirst
();(
cd
=
cli
.
current
());
++
cli
)
for
(
cli
.
toFirst
();(
cd
=
cli
.
current
());
++
cli
)
...
...
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