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
f12c7847
Commit
f12c7847
authored
Oct 07, 2001
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.2.11.1
parent
c52e7198
Changes
20
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
324 additions
and
167 deletions
+324
-167
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+3
-0
classdef.h
src/classdef.h
+1
-0
code.l
src/code.l
+9
-6
doxygen.cpp
src/doxygen.cpp
+105
-80
doxygen.h
src/doxygen.h
+6
-4
groupdef.cpp
src/groupdef.cpp
+6
-6
groupdef.h
src/groupdef.h
+4
-4
htmlgen.cpp
src/htmlgen.cpp
+9
-6
index.cpp
src/index.cpp
+71
-34
membergroup.cpp
src/membergroup.cpp
+1
-0
membername.cpp
src/membername.cpp
+11
-0
membername.h
src/membername.h
+21
-7
pre.l
src/pre.l
+4
-3
scanner.l
src/scanner.l
+49
-0
sortdict.h
src/sortdict.h
+7
-1
util.cpp
src/util.cpp
+11
-10
No files found.
INSTALL
View file @
f12c7847
DOXYGEN Version 1.2.11
-20011003
DOXYGEN Version 1.2.11
.1
Please read the installation section of the manual for instructions.
--------
Dimitri van Heesch (0
3
October 2001)
Dimitri van Heesch (0
7
October 2001)
README
View file @
f12c7847
DOXYGEN Version 1.2.11
_20011003
DOXYGEN Version 1.2.11
.1
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) (0
3
October 2001)
Dimitri van Heesch (dimitri@stack.nl) (0
7
October 2001)
VERSION
View file @
f12c7847
1.2.11
-20011003
1.2.11
.1
packages/rpm/doxygen.spec
View file @
f12c7847
Name: doxygen
Version: 1.2.11
_20011003
Version: 1.2.11
.1
Summary: documentation system for C, C++ and IDL
Release: 4
Source: doxygen-%{version}.src.tar.gz
...
...
src/classdef.cpp
View file @
f12c7847
...
...
@@ -1192,7 +1192,10 @@ void ClassDef::writeDocumentation(OutputList &ol)
endFile
(
ol
);
}
void
ClassDef
::
writeDocumentationForInnerClasses
(
OutputList
&
ol
)
{
// write inner classes after the parent, so the tag files contain
// the definition in proper order!
if
(
m_innerClasses
)
...
...
src/classdef.h
View file @
f12c7847
...
...
@@ -100,6 +100,7 @@ class ClassDef : public Definition
MemberNameInfoSDict
*
memberNameInfoSDict
()
{
return
m_allMemberNameInfoSDict
;
}
void
writeDocumentation
(
OutputList
&
ol
);
void
writeDocumentationForInnerClasses
(
OutputList
&
ol
);
void
writeMemberList
(
OutputList
&
ol
);
void
writeDeclaration
(
OutputList
&
ol
,
MemberDef
*
md
,
bool
inGroup
);
...
...
src/code.l
View file @
f12c7847
...
...
@@ -21,7 +21,6 @@
* includes
*/
#include <stdio.h>
//#include <iostream.h>
#include <assert.h>
#include <ctype.h>
#include <qregexp.h>
...
...
@@ -33,6 +32,7 @@
#include "message.h"
#include "outputlist.h"
#include "util.h"
#include "membername.h"
#define YY_NEVER_INTERACTIVE 1
...
...
@@ -450,7 +450,7 @@ static void generateClassLink(OutputDocInterface &ol,char *clName,int *clNameLen
else
{
MemberName *mn;
if (cd==0 && (mn=Doxygen::functionNameDict[clName]))
if (cd==0 && (mn=Doxygen::functionName
S
Dict[clName]))
{
if (mn->count()==1)
{
...
...
@@ -557,8 +557,8 @@ static bool getLink(const char *className,
static bool generateClassMemberLink(OutputDocInterface &ol,ClassDef *mcd,const char *memName)
{
//printf("generateClassMemberLink(
%s,
%s)\n",mcd->name().data(),memName);
MemberName *mmn=Doxygen::memberNameDict[memName];
//printf("generateClassMemberLink(
class=%s,member=
%s)\n",mcd->name().data(),memName);
MemberName *mmn=Doxygen::memberName
S
Dict[memName];
if (mmn)
{
MemberNameIterator mmni(*mmn);
...
...
@@ -581,6 +581,7 @@ static bool generateClassMemberLink(OutputDocInterface &ol,ClassDef *mcd,const c
// extract class definition of the return type in order to resolve
// a->b()->c() like call chains
g_classVar = stripClassName(xmd->typeString());
//printf("g_classVar=%s->%p\n",xmd->typeString(),g_classVar);
// add usage reference
if (g_currentDefinition && g_currentMemberDef &&
...
...
@@ -665,7 +666,7 @@ static void generateMemberLink(OutputDocInterface &ol,const char *varName,
if (vcd && vcd->isLinkable())
{
//printf("Found class %s for variable `%s'\n",g_classScope.data(),varName);
MemberName *vmn=Doxygen::memberNameDict[varName];
MemberName *vmn=Doxygen::memberName
S
Dict[varName];
if (vmn==0)
{
int vi;
...
...
@@ -675,7 +676,7 @@ static void generateMemberLink(OutputDocInterface &ol,const char *varName,
{
ClassDef *jcd = getClass(vn.left(vi));
vn=vn.right(vn.length()-vi-2);
vmn=Doxygen::memberNameDict[vn];
vmn=Doxygen::memberName
S
Dict[vn];
//printf("Trying name `%s' scope=%s\n",vn.data(),scope.data());
if (vmn)
{
...
...
@@ -1159,6 +1160,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
BEGIN( MemberCall );
}
<MemberCall>{SCOPETNAME}/{B}*"(" {
//printf("g_name=`%s' g_classVar=`%s'\n",g_name.data(),g_classVar?g_classVar->name().data():"<none>");
if (!g_name.isEmpty())
{
generateMemberLink(*g_code,g_name,yytext);
...
...
@@ -1190,6 +1192,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
}
}
<MemberCall>{SCOPENAME}/{B}* {
//printf("g_name=`%s' g_classVar=`%s'\n",g_name.data(),g_classVar?g_classVar->name().data():"<none>");
if (!g_name.isEmpty())
{
generateMemberLink(*g_code,g_name,yytext);
...
...
src/doxygen.cpp
View file @
f12c7847
...
...
@@ -72,13 +72,15 @@ ClassSDict Doxygen::hiddenClasses(257);
//NamespaceList Doxygen::namespaceList; // all namespaces
//NamespaceDict Doxygen::namespaceDict(257);
NamespaceSDict
Doxygen
::
namespaceSDict
(
17
);
NamespaceSDict
Doxygen
::
namespaceSDict
(
20
);
MemberNameList
Doxygen
::
memberNameList
;
// class member + related functions
MemberNameDict
Doxygen
::
memberNameDict
(
10007
);
//MemberNameList Doxygen::memberNameList; // class member + related functions
//MemberNameDict Doxygen::memberNameDict(10007);
MemberNameSDict
Doxygen
::
memberNameSDict
(
10000
);
MemberNameList
Doxygen
::
functionNameList
;
// all global function/namespace members
MemberNameDict
Doxygen
::
functionNameDict
(
10007
);
//MemberNameList Doxygen::functionNameList; // all global function/namespace members
//MemberNameDict Doxygen::functionNameDict(10007);
MemberNameSDict
Doxygen
::
functionNameSDict
(
10000
);
FileNameList
Doxygen
::
inputNameList
;
// all input files
FileNameDict
*
Doxygen
::
inputNameDict
;
...
...
@@ -127,14 +129,14 @@ void clearAll()
Doxygen
::
namespaceSDict
.
clear
();
Doxygen
::
pageSDict
->
clear
();
Doxygen
::
exampleSDict
->
clear
();
Doxygen
::
memberNameList
.
clear
();
Doxygen
::
functionNameList
.
clear
();
//
Doxygen::memberNameList.clear();
//
Doxygen::functionNameList.clear();
Doxygen
::
inputNameList
.
clear
();
Doxygen
::
groupList
.
clear
();
Doxygen
::
formulaList
.
clear
();
Doxygen
::
classSDict
.
clear
();
Doxygen
::
memberNameDict
.
clear
();
Doxygen
::
functionNameDict
.
clear
();
//
Doxygen::memberNameDict.clear();
//
Doxygen::functionNameDict.clear();
Doxygen
::
sectionDict
.
clear
();
Doxygen
::
inputNameDict
->
clear
();
Doxygen
::
includeNameDict
->
clear
();
...
...
@@ -161,10 +163,10 @@ void statistics()
Doxygen
::
imageNameDict
->
statistics
();
fprintf
(
stderr
,
"--- dotFileNameDict stats ----
\n
"
);
Doxygen
::
dotFileNameDict
->
statistics
();
fprintf
(
stderr
,
"--- memberNameDict stats ----
\n
"
);
Doxygen
::
memberNameDict
.
statistics
();
fprintf
(
stderr
,
"--- functionNameDict stats ----
\n
"
);
Doxygen
::
functionNameDict
.
statistics
();
//
fprintf(stderr,"--- memberNameDict stats ----\n");
//
Doxygen::memberNameDict.statistics();
//
fprintf(stderr,"--- functionNameDict stats ----\n");
//
Doxygen::functionNameDict.statistics();
fprintf
(
stderr
,
"--- excludeNameDict stats ----
\n
"
);
excludeNameDict
.
statistics
();
fprintf
(
stderr
,
"--- aliasDict stats ----
\n
"
);
...
...
@@ -1329,7 +1331,7 @@ static MemberDef *addVariableToClass(
// see if the member is already found in the same scope
// (this may be the case for a static member that is initialized
// outside the class)
MemberName
*
mn
=
Doxygen
::
memberNameDict
[
name
];
MemberName
*
mn
=
Doxygen
::
memberName
S
Dict
[
name
];
if
(
mn
)
{
MemberNameIterator
mni
(
*
mn
);
...
...
@@ -1390,8 +1392,9 @@ static MemberDef *addVariableToClass(
mn
=
new
MemberName
(
name
);
mn
->
append
(
md
);
//printf("Adding memberName=%s\n",mn->memberName());
Doxygen
::
memberNameDict
.
insert
(
name
,
mn
);
Doxygen
::
memberNameList
.
append
(
mn
);
//Doxygen::memberNameDict.insert(name,mn);
//Doxygen::memberNameList.append(mn);
Doxygen
::
memberNameSDict
.
append
(
name
,
mn
);
// add the member to the class
}
cd
->
insertMember
(
md
);
...
...
@@ -1469,7 +1472,7 @@ static MemberDef *addVariableToFile(
}
if
(
def
.
left
(
7
)
==
"static "
)
def
=
def
.
right
(
def
.
length
()
-
7
);
MemberName
*
mn
=
Doxygen
::
functionNameDict
[
name
];
MemberName
*
mn
=
Doxygen
::
functionName
S
Dict
[
name
];
if
(
mn
)
{
QCString
nscope
=
removeAnonymousScopes
(
scope
);
...
...
@@ -1565,8 +1568,9 @@ static MemberDef *addVariableToFile(
{
mn
=
new
MemberName
(
name
);
mn
->
append
(
md
);
Doxygen
::
functionNameDict
.
insert
(
name
,
mn
);
Doxygen
::
functionNameList
.
append
(
mn
);
//Doxygen::functionNameDict.insert(name,mn);
//Doxygen::functionNameList.append(mn);
Doxygen
::
functionNameSDict
.
append
(
name
,
mn
);
}
root
->
section
=
Entry
::
EMPTY_SEC
;
return
md
;
...
...
@@ -1979,7 +1983,7 @@ static void buildFunctionList(Entry *root)
// add member to the global list of all members
//printf("Adding member=%s class=%s\n",md->name().data(),cd->name().data());
MemberName
*
mn
;
if
((
mn
=
Doxygen
::
memberNameDict
[
name
]))
if
((
mn
=
Doxygen
::
memberName
S
Dict
[
name
]))
{
mn
->
append
(
md
);
}
...
...
@@ -1987,8 +1991,9 @@ static void buildFunctionList(Entry *root)
{
mn
=
new
MemberName
(
name
);
mn
->
append
(
md
);
Doxygen
::
memberNameDict
.
insert
(
name
,
mn
);
Doxygen
::
memberNameList
.
append
(
mn
);
//Doxygen::memberNameDict.insert(name,mn);
//Doxygen::memberNameList.append(mn);
Doxygen
::
memberNameSDict
.
append
(
name
,
mn
);
}
// add member to the class cd
...
...
@@ -2016,7 +2021,7 @@ static void buildFunctionList(Entry *root)
bool
found
=
FALSE
;
MemberName
*
mn
;
//MemberDef *fmd;
if
((
mn
=
Doxygen
::
functionNameDict
[
rname
]))
if
((
mn
=
Doxygen
::
functionName
S
Dict
[
rname
]))
{
//printf("--> function %s already found!\n",rname.data());
MemberNameIterator
mni
(
*
mn
);
...
...
@@ -2182,7 +2187,7 @@ static void buildFunctionList(Entry *root)
// add member to the list of file members
//printf("Adding member=%s\n",md->name().data());
MemberName
*
mn
;
if
((
mn
=
Doxygen
::
functionNameDict
[
name
]))
if
((
mn
=
Doxygen
::
functionName
S
Dict
[
name
]))
{
mn
->
append
(
md
);
}
...
...
@@ -2190,8 +2195,9 @@ static void buildFunctionList(Entry *root)
{
mn
=
new
MemberName
(
name
);
mn
->
append
(
md
);
Doxygen
::
functionNameDict
.
insert
(
name
,
mn
);
Doxygen
::
functionNameList
.
append
(
mn
);
//Doxygen::functionNameDict.insert(name,mn);
//Doxygen::functionNameList.append(mn);
Doxygen
::
functionNameSDict
.
append
(
name
,
mn
);
}
addMemberToGroups
(
root
,
md
);
root
->
section
=
Entry
::
EMPTY_SEC
;
...
...
@@ -2225,13 +2231,13 @@ static void buildFunctionList(Entry *root)
static
void
findFriends
()
{
//printf("findFriends()\n");
MemberName
ListIterator
fnli
(
Doxygen
::
functionNameLis
t
);
MemberName
SDict
::
Iterator
fnli
(
Doxygen
::
functionNameSDic
t
);
MemberName
*
fn
;
for
(;(
fn
=
fnli
.
current
());
++
fnli
)
// for each global function name
{
//printf("Function name=`%s'\n",fn->memberName());
MemberName
*
mn
;
if
((
mn
=
Doxygen
::
memberNameDict
[
fn
->
memberName
()]))
if
((
mn
=
Doxygen
::
memberName
S
Dict
[
fn
->
memberName
()]))
{
// there are members with the same name
//printf("Function name is also a member name\n");
MemberNameIterator
fni
(
*
fn
);
...
...
@@ -2288,7 +2294,7 @@ static void transferFunctionDocumentation()
//printf("transferFunctionDocumentation()\n");
// find matching function declaration and definitions.
MemberName
ListIterator
mnli
(
Doxygen
::
functionNameLis
t
);
MemberName
SDict
::
Iterator
mnli
(
Doxygen
::
functionNameSDic
t
);
MemberName
*
mn
;
for
(;(
mn
=
mnli
.
current
());
++
mnli
)
{
...
...
@@ -2367,7 +2373,7 @@ static void transferRelatedFunctionDocumentation()
{
// find match between function declaration and definition for
// related functions
MemberName
ListIterator
mnli
(
Doxygen
::
functionNameLis
t
);
MemberName
SDict
::
Iterator
mnli
(
Doxygen
::
functionNameSDic
t
);
MemberName
*
mn
;
for
(
mnli
.
toFirst
();(
mn
=
mnli
.
current
());
++
mnli
)
{
...
...
@@ -2378,7 +2384,7 @@ static void transferRelatedFunctionDocumentation()
{
//printf(" Function `%s'\n",md->name().data());
MemberName
*
rmn
;
if
((
rmn
=
Doxygen
::
memberNameDict
[
md
->
name
()]))
// check if there is a member with the same name
if
((
rmn
=
Doxygen
::
memberName
S
Dict
[
md
->
name
()]))
// check if there is a member with the same name
{
//printf(" Member name found\n");
MemberDef
*
rmd
;
...
...
@@ -3239,7 +3245,7 @@ static void computeMemberReferences()
static
void
addClassMemberTodoTestBugReferences
(
Definition
*
compound
)
{
MemberName
ListIterator
mnli
(
Doxygen
::
memberNameLis
t
);
MemberName
SDict
::
Iterator
mnli
(
Doxygen
::
memberNameSDic
t
);
MemberName
*
mn
=
0
;
for
(
mnli
.
toFirst
();(
mn
=
mnli
.
current
());
++
mnli
)
{
...
...
@@ -3272,7 +3278,7 @@ static void addClassMemberTodoTestBugReferences(Definition *compound)
static
void
addFileMemberTodoTestBugReferences
(
Definition
*
compound
)
{
MemberName
ListIterator
fnli
(
Doxygen
::
functionNameLis
t
);
MemberName
SDict
::
Iterator
fnli
(
Doxygen
::
functionNameSDic
t
);
MemberName
*
mn
=
0
;
for
(
fnli
.
toFirst
();(
mn
=
fnli
.
current
());
++
fnli
)
{
...
...
@@ -3305,7 +3311,7 @@ static void addFileMemberTodoTestBugReferences(Definition *compound)
static
void
addTodoTestBugReferences
()
{
MemberName
ListIterator
mnli
(
Doxygen
::
memberNameLis
t
);
MemberName
SDict
::
Iterator
mnli
(
Doxygen
::
memberNameSDic
t
);
MemberName
*
mn
=
0
;
for
(
mnli
.
toFirst
();(
mn
=
mnli
.
current
());
++
mnli
)
{
...
...
@@ -3316,7 +3322,7 @@ static void addTodoTestBugReferences()
md
->
visited
=
FALSE
;
}
}
MemberName
ListIterator
fnli
(
Doxygen
::
functionNameLis
t
);
MemberName
SDict
::
Iterator
fnli
(
Doxygen
::
functionNameSDic
t
);
for
(
fnli
.
toFirst
();(
mn
=
fnli
.
current
());
++
fnli
)
{
MemberNameIterator
mni
(
*
mn
);
...
...
@@ -3606,10 +3612,10 @@ static bool findGlobalMember(Entry *root,
Debug
::
print
(
Debug
::
FindMembers
,
0
,
"2. findGlobalMember(namespace=%s,name=%s,tempArg=%s,decl=%s)
\n
"
,
namespaceName
.
data
(),
name
,
tempArg
,
decl
);
MemberName
*
mn
=
Doxygen
::
functionNameDict
[
n
+
tempArg
];
// look in function dictionary
MemberName
*
mn
=
Doxygen
::
functionName
S
Dict
[
n
+
tempArg
];
// look in function dictionary
if
(
mn
==
0
)
{
mn
=
Doxygen
::
functionNameDict
[
n
];
// try without template arguments
mn
=
Doxygen
::
functionName
S
Dict
[
n
];
// try without template arguments
}
if
(
mn
)
// function name defined
{
...
...
@@ -3896,9 +3902,18 @@ static void findMember(Entry *root,
if
(
related
.
isEmpty
()
&&
root
->
parent
&&
(
root
->
parent
->
section
&
Entry
::
SCOPE_MASK
)
&&
!
root
->
parent
->
name
.
isEmpty
())
{
QCString
joinedName
=
root
->
parent
->
name
+
"::"
+
scopeName
;
if
(
!
scopeName
.
isEmpty
()
&&
(
getClass
(
joinedName
)
||
Doxygen
::
namespaceSDict
[
joinedName
]))
{
scopeName
=
joinedName
;
}
else
{
scopeName
=
mergeScopes
(
root
->
parent
->
name
,
scopeName
);
}
}
scopeName
=
stripTemplateSpecifiersFromScope
(
removeRedundantWhiteSpace
(
scopeName
),
FALSE
);
...
...
@@ -4024,11 +4039,11 @@ static void findMember(Entry *root,
"1. funcName=`%s'
\n
"
,
funcName
.
data
());
if
(
!
funcTempList
.
isEmpty
())
// try with member specialization
{
mn
=
Doxygen
::
memberNameDict
[
funcName
+
funcTempList
];
mn
=
Doxygen
::
memberName
S
Dict
[
funcName
+
funcTempList
];
}
if
(
mn
==
0
)
// try without specialization
{
mn
=
Doxygen
::
memberNameDict
[
funcName
];
mn
=
Doxygen
::
memberName
S
Dict
[
funcName
];
}
if
(
!
isRelated
&&
mn
)
// function name already found
{
...
...
@@ -4275,12 +4290,12 @@ static void findMember(Entry *root,
{
if
(
className
.
isEmpty
())
className
=
related
.
copy
();
ClassDef
*
cd
;
//printf("scopeName=`%s'
\n",scope
Name.data());
//printf("scopeName=`%s'
className=`%s'\n",scopeName.data(),class
Name.data());
if
((
cd
=
getClass
(
scopeName
)))
{
bool
newMember
=
TRUE
;
// assume we have a new member
bool
newMemberName
=
FALSE
;
if
((
mn
=
Doxygen
::
memberNameDict
[
funcName
])
==
0
)
if
((
mn
=
Doxygen
::
memberName
S
Dict
[
funcName
])
==
0
)
{
mn
=
new
MemberName
(
funcName
);
newMemberName
=
TRUE
;
// we create a new member name
...
...
@@ -4335,7 +4350,7 @@ static void findMember(Entry *root,
bool
found
=
FALSE
;
if
(
root
->
bodyLine
==-
1
)
{
MemberName
*
rmn
=
Doxygen
::
functionNameDict
[
funcName
];
MemberName
*
rmn
=
Doxygen
::
functionName
S
Dict
[
funcName
];
if
(
rmn
)
{
MemberDef
*
rmd
=
rmn
->
first
();
...
...
@@ -4389,8 +4404,9 @@ static void findMember(Entry *root,
//printf("Adding member=%s\n",md->name().data());
if
(
newMemberName
)
{
Doxygen
::
memberNameList
.
append
(
mn
);
Doxygen
::
memberNameDict
.
insert
(
funcName
,
mn
);
//Doxygen::memberNameList.append(mn);
//Doxygen::memberNameDict.insert(funcName,mn);
Doxygen
::
memberNameSDict
.
append
(
funcName
,
mn
);
}
}
}
...
...
@@ -4547,8 +4563,9 @@ static void findEnums(Entry *root)
ClassDef
*
cd
=
0
;
FileDef
*
fd
=
0
;
NamespaceDef
*
nd
=
0
;
MemberNameDict
*
mnd
=
0
;
MemberNameList
*
mnl
=
0
;
//MemberNameDict *mnd=0;
//MemberNameList *mnl=0;
MemberNameSDict
*
mnsd
=
0
;
bool
isGlobal
;
//printf("Found enum with name `%s'\n",root->name.data());
int
i
;
...
...
@@ -4575,22 +4592,25 @@ static void findEnums(Entry *root)
{
//printf("Enum `%s'::`%s'\n",cd->name(),name.data());
fd
=
0
;
mnd
=&
Doxygen
::
memberNameDict
;
mnl
=&
Doxygen
::
memberNameList
;
//mnd=&Doxygen::memberNameDict;
//mnl=&Doxygen::memberNameList;
mnsd
=&
Doxygen
::
memberNameSDict
;
isGlobal
=
FALSE
;
}
else
if
(
nd
&&
!
nd
->
name
().
isEmpty
()
&&
nd
->
name
().
at
(
0
)
!=
'@'
)
// found enum inside namespace
{
mnd
=&
Doxygen
::
functionNameDict
;
mnl
=&
Doxygen
::
functionNameList
;
//mnd=&Doxygen::functionNameDict;
//mnl=&Doxygen::functionNameList;
mnsd
=&
Doxygen
::
functionNameSDict
;
isGlobal
=
TRUE
;
}
else
// found a global enum
{
bool
ambig
;
fd
=
findFileDef
(
Doxygen
::
inputNameDict
,
root
->
fileName
,
ambig
);
mnd
=&
Doxygen
::
functionNameDict
;
mnl
=&
Doxygen
::
functionNameList
;
//mnd=&Doxygen::functionNameDict;
//mnl=&Doxygen::functionNameList;
mnsd
=&
Doxygen
::
functionNameSDict
;
isGlobal
=
TRUE
;
}
if
(
!
name
.
isEmpty
())
...
...
@@ -4666,7 +4686,7 @@ static void findEnums(Entry *root)
//printf("Adding member=%s\n",md->name().data());
MemberName
*
mn
;
if
((
mn
=
(
*
mnd
)[
name
]))
if
((
mn
=
(
*
mn
s
d
)[
name
]))
{
// this is used if the same enum is in multiple namespaces/classes
mn
->
append
(
md
);
...
...
@@ -4675,8 +4695,9 @@ static void findEnums(Entry *root)
{
mn
=
new
MemberName
(
name
);
mn
->
append
(
md
);
mnd
->
insert
(
name
,
mn
);
mnl
->
append
(
mn
);
//mnd->insert(name,mn);
//mnl->append(mn);
mnsd
->
append
(
name
,
mn
);
//printf("add %s to new memberName. Now %d members\n",
// name.data(),mn->count());
}
...
...
@@ -4687,7 +4708,7 @@ static void findEnums(Entry *root)
for
(;(
e
=
eli
.
current
());
++
eli
)
{
MemberName
*
fmn
=
0
;
if
(
!
e
->
name
.
isEmpty
()
&&
(
fmn
=
(
*
mnd
)[
e
->
name
]))
if
(
!
e
->
name
.
isEmpty
()
&&
(
fmn
=
(
*
mn
s
d
)[
e
->
name
]))
// get list of members with the same name as the field
{
MemberNameIterator
fmni
(
*
fmn
);
...
...
@@ -4780,7 +4801,7 @@ static void findEnumDocumentation(Entry *root)
{
//printf("Enum: scope=`%s' name=`%s'\n",cd->name(),name.data());
QCString
className
=
cd
->
name
().
copy
();
MemberName
*
mn
=
Doxygen
::
memberNameDict
[
name
];
MemberName
*
mn
=
Doxygen
::
memberName
S
Dict
[
name
];
if
(
mn
)
{
MemberNameIterator
mni
(
*
mn
);
...
...
@@ -4821,7 +4842,7 @@ static void findEnumDocumentation(Entry *root)
else
// enum outside class
{
MemberDef
*
md
;
MemberName
*
mn
=
Doxygen
::
functionNameDict
[
name
];
MemberName
*
mn
=
Doxygen
::
functionName
S
Dict
[
name
];
if
(
mn
&&
(
md
=
mn
->
getFirst
()))
{
md
->
setDocumentation
(
root
->
doc
);
...
...
@@ -4850,10 +4871,10 @@ static void findEnumDocumentation(Entry *root)
// seach for each enum (member or function) in mnl if it has documented
// enum values.
static
void
findDEV
(
const
MemberName
List
&
mnl
)
static
void
findDEV
(
const
MemberName
SDict
&
mnsd
)
{
MemberName
*
mn
;
MemberName
ListIterator
mnli
(
mnl
);
MemberName
SDict
::
Iterator
mnli
(
mnsd
);
// for each member name
for
(
mnli
.
toFirst
();(
mn
=
mnli
.
current
());
++
mnli
)
{
...
...
@@ -4887,8 +4908,8 @@ static void findDEV(const MemberNameList &mnl)
// values.
static
void
findDocumentedEnumValues
()
{
findDEV
(
Doxygen
::
memberName
Lis
t
);
findDEV
(
Doxygen
::
functionName
Lis
t
);
findDEV
(
Doxygen
::
memberName
SDic
t
);
findDEV
(
Doxygen
::
functionName
SDic
t
);
}
...
...
@@ -4899,7 +4920,7 @@ static void findDocumentedEnumValues()
static
void
computeMemberRelations
()
{
MemberName
ListIterator
mnli
(
Doxygen
::
memberNameLis
t
);
MemberName
SDict
::
Iterator
mnli
(
Doxygen
::
memberNameSDic
t
);
MemberName
*
mn
;
for
(
;
(
mn
=
mnli
.
current
())
;
++
mnli
)
// for each member name
{
...
...
@@ -5089,7 +5110,7 @@ static void addSourceReferences()
}
// add source references for member names
MemberName
ListIterator
mnli
(
Doxygen
::
memberNameLis
t
);
MemberName
SDict
::
Iterator
mnli
(
Doxygen
::
memberNameSDic
t
);
MemberName
*
mn
=
0
;
for
(
mnli
.
toFirst
();(
mn
=
mnli
.
current
());
++
mnli
)
{
...
...
@@ -5109,7 +5130,7 @@ static void addSourceReferences()
}
}
}
MemberName
ListIterator
fnli
(
Doxygen
::
functionNameLis
t
);
MemberName
SDict
::
Iterator
fnli
(
Doxygen
::
functionNameSDic
t
);
for
(
fnli
.
toFirst
();(
mn
=
fnli
.
current
());
++
fnli
)
{
MemberNameIterator
mni
(
*
mn
);
...
...
@@ -5187,6 +5208,7 @@ static void generateClassDocs()
cd
->
writeDocumentation
(
*
outputList
);
cd
->
writeMemberList
(
*
outputList
);
}
cd
->
writeDocumentationForInnerClasses
(
*
outputList
);
}
}
...
...
@@ -5194,7 +5216,7 @@ static void generateClassDocs()
static
void
inheritDocumentation
()
{
MemberName
ListIterator
mnli
(
Doxygen
::
memberNameLis
t
);
MemberName
SDict
::
Iterator
mnli
(
Doxygen
::
memberNameSDic
t
);
MemberName
*
mn
;
//int count=0;
for
(;(
mn
=
mnli
.
current
());
++
mnli
)
...
...
@@ -5326,7 +5348,7 @@ static void findDefineDocumentation(Entry *root)
md
->
setFileDef
(
fd
);
//printf("Adding member=%s\n",md->name().data());
MemberName
*
mn
;
if
((
mn
=
Doxygen
::
functionNameDict
[
root
->
name
]))
if
((
mn
=
Doxygen
::
functionName
S
Dict
[
root
->
name
]))
{
mn
->
append
(
md
);
}
...
...
@@ -5334,11 +5356,12 @@ static void findDefineDocumentation(Entry *root)
{
mn
=
new
MemberName
(
root
->
name
);
mn
->
append
(
md
);
Doxygen
::
functionNameDict
.
insert
(
root
->
name
,
mn
);
Doxygen
::
functionNameList
.
append
(
mn
);
//Doxygen::functionNameDict.insert(root->name,mn);
//Doxygen::functionNameList.append(mn);
Doxygen
::
functionNameSDict
.
append
(
root
->
name
,
mn
);
}
}
MemberName
*
mn
=
Doxygen
::
functionNameDict
[
root
->
name
];
MemberName
*
mn
=
Doxygen
::
functionName
S
Dict
[
root
->
name
];
if
(
mn
)
{
int
count
=
0
;
...
...
@@ -5790,6 +5813,7 @@ static void generateNamespaceDocs()
cd
->
writeDocumentation
(
*
outputList
);
cd
->
writeMemberList
(
*
outputList
);
}
cd
->
writeDocumentationForInnerClasses
(
*
outputList
);
}
}
}
...
...
@@ -7129,8 +7153,8 @@ void parseInput()
findMainPage
(
root
);
msg
(
"Sorting lists...
\n
"
);
Doxygen
::
memberName
Lis
t
.
sort
();
Doxygen
::
functionName
Lis
t
.
sort
();
Doxygen
::
memberName
SDic
t
.
sort
();
Doxygen
::
functionName
SDic
t
.
sort
();
Doxygen
::
hiddenClasses
.
sort
();
Doxygen
::
classSDict
.
sort
();
...
...
@@ -7337,13 +7361,14 @@ void generateOutput()
Doxygen
::
formulaList
.
generateBitmaps
(
Config_getString
(
"HTML_OUTPUT"
));
}
if
(
Config_getBool
(
"SEARCHENGINE"
)
||
Config_getList
(
"TAGFILES"
).
count
()
>
0
)
{
msg
(
"
\n
Now copy the file
\n\n
%s
\n\n
to the directory where the CGI binaries are "
"located and don't forget to run
\n\n
"
,(
Config_getString
(
"HTML_OUTPUT"
)
+
"/"
+
Config_getString
(
"CGI_NAME"
)).
data
());
msg
(
" %s/installdox
\n\n
to replace any dummy links.
\n\n
"
,
Config_getString
(
"HTML_OUTPUT"
).
data
());
}
// This is confusing people, so I removed it
//if (Config_getBool("SEARCHENGINE") || Config_getList("TAGFILES").count()>0)
//{
// msg("\nNow copy the file\n\n %s\n\nto the directory where the CGI binaries are "
// "located and don't forget to run\n\n",(Config_getString("HTML_OUTPUT")+"/"+Config_getString("CGI_NAME")).data());
// msg(" %s/installdox\n\nto replace any dummy links.\n\n",
// Config_getString("HTML_OUTPUT").data());
//}
if
(
Config_getBool
(
"GENERATE_HTML"
)
&&
Config_getBool
(
"GENERATE_HTMLHELP"
))
{
...
...
src/doxygen.h
View file @
f12c7847
...
...
@@ -70,10 +70,12 @@ class Doxygen
static
FileNameDict
*
imageNameDict
;
static
FileNameDict
*
dotFileNameDict
;
static
QStrList
tagfileList
;
static
MemberNameList
memberNameList
;
static
MemberNameList
functionNameList
;
static
MemberNameDict
memberNameDict
;
static
MemberNameDict
functionNameDict
;
//static MemberNameList memberNameList;
//static MemberNameList functionNameList;
//static MemberNameDict memberNameDict;
//static MemberNameDict functionNameDict;
static
MemberNameSDict
memberNameSDict
;
static
MemberNameSDict
functionNameSDict
;
static
FileList
fileList
;
static
FileDict
fileDict
;
static
ClassDef
unrelatedClass
;
...
...
src/groupdef.cpp
View file @
f12c7847
...
...
@@ -43,7 +43,7 @@ GroupDef::GroupDef(const char *df,int dl,const char *na,const char *t) :
pageDict
=
new
PageSDict
(
257
);
exampleDict
=
new
PageSDict
(
257
);
allMemberList
=
new
MemberList
;
allMemberNameInfo
Dict
=
new
MemberNameInfoDict
(
1009
);
allMemberNameInfo
SDict
=
new
MemberNameInfoSDict
(
17
);
fileName
=
(
QCString
)
"group_"
+
na
;
setGroupTitle
(
t
);
memberGroupList
=
new
MemberGroupList
;
...
...
@@ -79,7 +79,7 @@ GroupDef::~GroupDef()
delete
pageDict
;
delete
exampleDict
;
delete
allMemberList
;
delete
allMemberNameInfoDict
;
delete
allMemberNameInfo
S
Dict
;
delete
memberGroupList
;
delete
memberGroupDict
;
}
...
...
@@ -170,7 +170,7 @@ void GroupDef::insertMember(MemberDef *md,bool docOnly)
{
//fprintf(stderr, "GroupDef(%s)::insertMember(%s)\n", title.data(), md->name().data());
MemberNameInfo
*
mni
=
0
;
if
((
mni
=
(
*
allMemberNameInfoDict
)[
md
->
name
()]))
if
((
mni
=
(
*
allMemberNameInfo
S
Dict
)[
md
->
name
()]))
{
// member with this name already found
MemberNameInfoIterator
srcMnii
(
*
mni
);
MemberInfo
*
srcMi
;
...
...
@@ -189,7 +189,7 @@ void GroupDef::insertMember(MemberDef *md,bool docOnly)
{
mni
=
new
MemberNameInfo
(
md
->
name
());
mni
->
append
(
new
MemberInfo
(
md
,
md
->
protection
(),
md
->
virtualness
(),
FALSE
));
allMemberNameInfo
Dict
->
insert
(
mni
->
memberName
(),
mni
);
allMemberNameInfo
SDict
->
append
(
mni
->
memberName
(),
mni
);
}
allMemberList
->
append
(
md
);
switch
(
md
->
memberType
())
...
...
@@ -251,7 +251,7 @@ void GroupDef::insertMember(MemberDef *md,bool docOnly)
void
GroupDef
::
removeMember
(
MemberDef
*
md
)
{
// fprintf(stderr, "GroupDef(%s)::removeMember( %s )\n", title.data(), md->name().data());
MemberNameInfo
*
mni
=
allMemberNameInfoDict
->
find
(
md
->
name
());
MemberNameInfo
*
mni
=
allMemberNameInfo
S
Dict
->
find
(
md
->
name
());
if
(
mni
)
{
MemberNameInfoIterator
mnii
(
*
mni
);
...
...
@@ -266,7 +266,7 @@ void GroupDef::removeMember(MemberDef *md)
}
if
(
mni
->
isEmpty
()
)
{
allMemberNameInfoDict
->
remove
(
md
->
name
());
allMemberNameInfo
S
Dict
->
remove
(
md
->
name
());
delete
mni
;
}
...
...
src/groupdef.h
View file @
f12c7847
...
...
@@ -36,7 +36,7 @@ class OutputList;
class
NamespaceList
;
class
MemberGroupList
;
class
MemberGroupDict
;
class
MemberNameInfoDict
;
class
MemberNameInfo
S
Dict
;
class
PageSDict
;
class
PageInfo
;
...
...
@@ -64,11 +64,11 @@ class GroupDef : public Definition
int
countMembers
()
const
;
bool
isLinkableInProject
()
const
{
return
hasDocumentation
()
&&
!
isReference
();
return
!
isReference
();
}
bool
isLinkable
()
const
{
return
isLinkableInProject
()
||
isReference
()
;
return
TRUE
;
}
bool
isASubGroup
()
const
;
void
computeAnchors
();
...
...
@@ -97,7 +97,7 @@ class GroupDef : public Definition
PageSDict
*
exampleDict
;
// list of examples in the group
MemberList
*
allMemberList
;
MemberNameInfo
Dict
*
allMemberNameInfo
Dict
;
MemberNameInfo
SDict
*
allMemberNameInfoS
Dict
;
// members in the declaration part of the documentation
MemberList
decDefineMembers
;
...
...
src/htmlgen.cpp
View file @
f12c7847
...
...
@@ -943,7 +943,7 @@ void HtmlGenerator::endMemberDocName()
void
HtmlGenerator
::
startParameterList
()
{
DBG_HTML
(
t
<<
"<!-- startParameterList -->"
<<
endl
;)
t
<<
" <td class=
\"
md
\"
>( </td>"
<<
endl
;
t
<<
" <td class=
\"
md
\"
valign=
\"
top
\"
>( </td>"
<<
endl
;
}
void
HtmlGenerator
::
startParameterType
(
bool
first
)
...
...
@@ -951,7 +951,7 @@ void HtmlGenerator::startParameterType(bool first)
if
(
first
)
{
DBG_HTML
(
t
<<
"<!-- startFirstParameterType -->"
<<
endl
;)
t
<<
" <td class=
\"
md
\"
nowrap>"
;
t
<<
" <td class=
\"
md
\"
nowrap
valign=
\"
top
\"
>"
;
}
else
{
...
...
@@ -973,8 +973,11 @@ void HtmlGenerator::startParameterName(bool oneArgOnly)
{
DBG_HTML
(
t
<<
"<!-- startParameterName -->"
<<
endl
;)
t
<<
" <td class=
\"
mdname"
;
if
(
oneArgOnly
)
t
<<
"1"
;
t
<<
"
\"
> "
;
if
(
oneArgOnly
)
{
t
<<
"1
\"
valign=
\"
top"
;
}
t
<<
"
\"
nowrap> "
;
}
void
HtmlGenerator
::
endParameterName
(
bool
last
,
bool
emptyList
)
...
...
@@ -985,8 +988,8 @@ void HtmlGenerator::endParameterName(bool last,bool emptyList)
if
(
emptyList
)
{
t
<<
" </td>"
<<
endl
;
t
<<
" <td class=
\"
md
\"
>) </td>"
<<
endl
;
t
<<
" <td class=
\"
md
\"
>"
;
t
<<
" <td class=
\"
md
\"
valign=
\"
top
\"
>) </td>"
<<
endl
;
t
<<
" <td class=
\"
md
\"
nowrap
>"
;
}
else
{
...
...
src/index.cpp
View file @
f12c7847
...
...
@@ -323,7 +323,7 @@ void endFile(OutputList &ol,bool external)
//----------------------------------------------------------------------------
void
writeClassTree
(
OutputList
&
ol
,
BaseClassList
*
bcl
,
bool
hideSuper
)
void
writeClassTree
(
OutputList
&
ol
,
BaseClassList
*
bcl
,
bool
hideSuper
,
int
level
)
{
HtmlHelp
*
htmlHelp
=
0
;
FTVHelp
*
ftvHelp
=
0
;
...
...
@@ -347,7 +347,16 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper)
{
if
(
!
started
)
{
{
// UGLY HACK!
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
Latex
);
if
(
level
<
6
)
ol
.
startIndexList
();
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
startItemList
();
ol
.
popGeneratorState
();
}
if
(
hasHtmlHelp
)
htmlHelp
->
incContentsDepth
();
if
(
hasFtvHelp
)
ftvHelp
->
incContentsDepth
();
started
=
TRUE
;
...
...
@@ -390,13 +399,22 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper)
//printf("Class %s at %p visited=%d\n",cd->name().data(),cd,cd->visited);
bool
wasVisited
=
cd
->
visited
;
cd
->
visited
=
TRUE
;
writeClassTree
(
ol
,
cd
->
subClasses
(),
wasVisited
);
writeClassTree
(
ol
,
cd
->
subClasses
(),
wasVisited
,
level
+
1
);
}
}
}
if
(
started
)
{
{
// UGLY HACK!
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
Latex
);
if
(
level
<
6
)
ol
.
endIndexList
();
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
endItemList
();
ol
.
popGeneratorState
();
}
if
(
hasHtmlHelp
)
htmlHelp
->
decContentsDepth
();
if
(
hasFtvHelp
)
ftvHelp
->
decContentsDepth
();
}
...
...
@@ -406,7 +424,7 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper)
//----------------------------------------------------------------------------
/*! Generates HTML Help tree of classes */
void
writeClassTree
(
BaseClassList
*
cl
)
void
writeClassTree
(
BaseClassList
*
cl
,
int
level
)
{
HtmlHelp
*
htmlHelp
=
0
;
FTVHelp
*
ftvHelp
=
0
;
...
...
@@ -448,7 +466,7 @@ void writeClassTree(BaseClassList *cl)
}
if
(
hasChildren
)
{
writeClassTree
(
cd
->
subClasses
());
writeClassTree
(
cd
->
subClasses
()
,
level
+
1
);
}
cd
->
visited
=
TRUE
;
}
...
...
@@ -463,7 +481,7 @@ void writeClassTree(BaseClassList *cl)
//----------------------------------------------------------------------------
/*! Generates HTML Help tree of classes */
void
writeClassTreeNode
(
ClassDef
*
cd
,
bool
hasHtmlHelp
,
bool
hasFtvHelp
,
bool
&
started
)
void
writeClassTreeNode
(
ClassDef
*
cd
,
bool
hasHtmlHelp
,
bool
hasFtvHelp
,
bool
&
started
,
int
level
)
{
if
(
cd
->
isVisibleInHierarchy
()
&&
!
cd
->
visited
)
{
...
...
@@ -485,13 +503,13 @@ void writeClassTreeNode(ClassDef *cd,bool hasHtmlHelp,bool hasFtvHelp,bool &star
}
if
(
hasChildren
)
{
writeClassTree
(
cd
->
subClasses
());
writeClassTree
(
cd
->
subClasses
()
,
level
+
1
);
}
cd
->
visited
=
TRUE
;
}
}
void
writeClassTree
(
ClassList
*
cl
)
void
writeClassTree
(
ClassList
*
cl
,
int
level
)
{
bool
&
generateHtml
=
Config_getBool
(
"GENERATE_HTML"
)
;
bool
hasHtmlHelp
=
generateHtml
&&
Config_getBool
(
"GENERATE_HTMLHELP"
);
...
...
@@ -500,11 +518,11 @@ void writeClassTree(ClassList *cl)
bool
started
=
FALSE
;
for
(
;
cli
.
current
()
;
++
cli
)
{
writeClassTreeNode
(
cli
.
current
(),
hasHtmlHelp
,
hasFtvHelp
,
started
);
writeClassTreeNode
(
cli
.
current
(),
hasHtmlHelp
,
hasFtvHelp
,
started
,
level
);
}
}
void
writeClassTree
(
ClassSDict
*
d
)
void
writeClassTree
(
ClassSDict
*
d
,
int
level
)
{
bool
&
generateHtml
=
Config_getBool
(
"GENERATE_HTML"
)
;
bool
hasHtmlHelp
=
generateHtml
&&
Config_getBool
(
"GENERATE_HTMLHELP"
);
...
...
@@ -513,7 +531,7 @@ void writeClassTree(ClassSDict *d)
bool
started
=
FALSE
;
for
(
;
cli
.
current
()
;
++
cli
)
{
writeClassTreeNode
(
cli
.
current
(),
hasHtmlHelp
,
hasFtvHelp
,
started
);
writeClassTreeNode
(
cli
.
current
(),
hasHtmlHelp
,
hasFtvHelp
,
started
,
level
);
}
}
...
...
@@ -550,7 +568,16 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started)
{
if
(
!
started
)
{
{
// UGLY HACK!
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
Latex
);
ol
.
startIndexList
();
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
startItemList
();
ol
.
popGeneratorState
();
}
if
(
hasHtmlHelp
)
htmlHelp
->
incContentsDepth
();
if
(
hasFtvHelp
)
ftvHelp
->
incContentsDepth
();
started
=
TRUE
;
...
...
@@ -589,7 +616,7 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started)
}
if
(
hasChildren
)
{
writeClassTree
(
ol
,
cd
->
subClasses
(),
cd
->
visited
);
writeClassTree
(
ol
,
cd
->
subClasses
(),
cd
->
visited
,
1
);
cd
->
visited
=
TRUE
;
}
}
...
...
@@ -621,7 +648,16 @@ void writeClassHierarchy(OutputList &ol)
writeClassTreeForList
(
ol
,
&
Doxygen
::
hiddenClasses
,
started
);
if
(
started
)
{
{
// UGLY HACK!
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
Latex
);
ol
.
endIndexList
();
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
endItemList
();
ol
.
popGeneratorState
();
}
if
(
hasHtmlHelp
)
htmlHelp
->
decContentsDepth
();
if
(
hasFtvHelp
)
ftvHelp
->
decContentsDepth
();
}
...
...
@@ -1476,8 +1512,10 @@ void writeMemberList(OutputList &ol,bool useSections)
{
bool
first
=
TRUE
;
char
lastChar
=
0
;
MemberName
*
mn
=
Doxygen
::
memberNameList
.
first
();
while
(
mn
)
MemberNameSDict
::
Iterator
mnli
(
Doxygen
::
memberNameSDict
);
MemberName
*
mn
=
0
;
for
(
mnli
.
toFirst
();(
mn
=
mnli
.
current
());
++
mnli
)
{
MemberDef
*
md
=
mn
->
first
();
bool
found
=
FALSE
;
...
...
@@ -1549,7 +1587,6 @@ void writeMemberList(OutputList &ol,bool useSections)
md
=
mn
->
prev
();
}
}
mn
=
Doxygen
::
memberNameList
.
next
();
}
ol
.
endItemList
();
}
...
...
@@ -1560,8 +1597,9 @@ int countClassMembers()
{
int
i
=
0
;
for
(
i
=
0
;
i
<
256
;
i
++
)
g_memberIndexLetterUsed
[
i
]
=
FALSE
;
int
count
=
0
;
MemberName
*
mn
=
Doxygen
::
memberNameList
.
first
();
while
(
mn
)
MemberNameSDict
::
Iterator
mnli
(
Doxygen
::
memberNameSDict
);
MemberName
*
mn
=
0
;
for
(
mnli
.
toFirst
();(
mn
=
mnli
.
current
());
++
mnli
)
{
MemberDef
*
md
=
mn
->
first
();
bool
found
=
FALSE
;
...
...
@@ -1584,7 +1622,6 @@ int countClassMembers()
if
(
!
n
.
isEmpty
())
g_memberIndexLetterUsed
[
tolower
(
n
.
at
(
0
))]
=
TRUE
;
count
++
;
}
mn
=
Doxygen
::
memberNameList
.
next
();
}
return
count
;
}
...
...
@@ -1661,8 +1698,9 @@ void writeFileMemberList(OutputList &ol,bool useSections)
{
char
lastChar
=
0
;
bool
first
=
TRUE
;
MemberName
*
mn
=
Doxygen
::
functionNameList
.
first
();
while
(
mn
)
MemberNameSDict
::
Iterator
mnli
(
Doxygen
::
functionNameSDict
);
MemberName
*
mn
=
0
;
for
(
mnli
.
toFirst
();(
mn
=
mnli
.
current
());
++
mnli
)
{
MemberDef
*
md
=
mn
->
first
();
bool
found
=
FALSE
;
...
...
@@ -1732,7 +1770,6 @@ void writeFileMemberList(OutputList &ol,bool useSections)
md
=
mn
->
prev
();
}
}
mn
=
Doxygen
::
functionNameList
.
next
();
}
ol
.
endItemList
();
}
...
...
@@ -1743,8 +1780,9 @@ void writeNamespaceMemberList(OutputList &ol,bool useSections)
{
char
lastChar
=
0
;
bool
first
=
TRUE
;
MemberName
*
mn
=
Doxygen
::
functionNameList
.
first
();
while
(
mn
)
MemberNameSDict
::
Iterator
mnli
(
Doxygen
::
functionNameSDict
);
MemberName
*
mn
=
0
;
for
(
mnli
.
toFirst
();(
mn
=
mnli
.
current
());
++
mnli
)
{
MemberDef
*
md
=
mn
->
first
();
bool
found
=
FALSE
;
...
...
@@ -1807,7 +1845,6 @@ void writeNamespaceMemberList(OutputList &ol,bool useSections)
md
=
mn
->
prev
();
}
}
mn
=
Doxygen
::
functionNameList
.
next
();
}
if
(
!
first
)
ol
.
endItemList
();
}
...
...
@@ -1818,8 +1855,9 @@ int countNamespaceMembers()
{
int
i
=
0
;
for
(
i
=
0
;
i
<
256
;
i
++
)
g_namespaceIndexLetterUsed
[
i
]
=
FALSE
;
int
count
=
0
;
MemberName
*
mn
=
Doxygen
::
functionNameList
.
first
();
while
(
mn
)
MemberNameSDict
::
Iterator
mnli
(
Doxygen
::
functionNameSDict
);
MemberName
*
mn
=
0
;
for
(
mnli
.
toFirst
();(
mn
=
mnli
.
current
());
++
mnli
)
{
MemberDef
*
md
=
mn
->
first
();
bool
found
=
FALSE
;
...
...
@@ -1836,7 +1874,6 @@ int countNamespaceMembers()
md
=
mn
->
next
();
}
if
(
found
)
count
++
;
mn
=
Doxygen
::
functionNameList
.
next
();
}
return
count
;
}
...
...
@@ -1847,8 +1884,9 @@ int countFileMembers()
{
int
i
=
0
;
for
(
i
=
0
;
i
<
256
;
i
++
)
g_fileIndexLetterUsed
[
i
]
=
FALSE
;
int
count
=
0
;
MemberName
*
mn
=
Doxygen
::
functionNameList
.
first
();
while
(
mn
)
MemberNameSDict
::
Iterator
mnli
(
Doxygen
::
functionNameSDict
);
MemberName
*
mn
=
0
;
for
(
mnli
.
toFirst
();(
mn
=
mnli
.
current
());
++
mnli
)
{
MemberDef
*
md
=
mn
->
first
();
FileDef
*
fd
;
...
...
@@ -1868,7 +1906,6 @@ int countFileMembers()
md
=
mn
->
next
();
}
if
(
found
)
count
++
;
mn
=
Doxygen
::
functionNameList
.
next
();
}
return
count
;
}
...
...
@@ -2398,7 +2435,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,bool subLevel)
ftvHelp
->
incContentsDepth
();
}
writeClassTree
(
gd
->
classSDict
);
writeClassTree
(
gd
->
classSDict
,
1
);
if
(
htmlHelp
)
htmlHelp
->
decContentsDepth
();
if
(
ftvHelp
)
ftvHelp
->
decContentsDepth
();
}
...
...
src/membergroup.cpp
View file @
f12c7847
...
...
@@ -26,6 +26,7 @@
#include "language.h"
#include "scanner.h"
#include "groupdef.h"
#include "doxygen.h"
//static QCString idToName(int id)
//{
...
...
src/membername.cpp
View file @
f12c7847
...
...
@@ -71,6 +71,8 @@ MemberNameIterator::MemberNameIterator(const MemberName &mnlist) :
{
}
#if 0
MemberNameList::MemberNameList() : QList<MemberName>()
{
}
...
...
@@ -91,3 +93,12 @@ MemberNameListIterator::MemberNameListIterator(const MemberNameList &mnlist) :
{
}
#endif
int
MemberNameSDict
::
compareItems
(
GCI
item1
,
GCI
item2
)
{
MemberName
*
n1
=
(
MemberName
*
)
item1
;
MemberName
*
n2
=
(
MemberName
*
)
item2
;
return
stricmp
(
n1
->
memberName
(),
n2
->
memberName
());
}
src/membername.h
View file @
f12c7847
...
...
@@ -40,6 +40,7 @@ class MemberNameIterator : public QListIterator<MemberDef>
MemberNameIterator
(
const
MemberName
&
list
);
};
#if 0
class MemberNameList : public QList<MemberName>
{
public:
...
...
@@ -56,6 +57,16 @@ class MemberNameListIterator : public QListIterator<MemberName>
};
typedef QDict<MemberName> MemberNameDict;
#endif
class
MemberNameSDict
:
public
SDict
<
MemberName
>
{
public
:
MemberNameSDict
(
int
size
)
:
SDict
<
MemberName
>
(
size
)
{}
~
MemberNameSDict
()
{}
int
compareItems
(
GCI
item1
,
GCI
item2
);
};
struct
MemberInfo
{
...
...
@@ -89,6 +100,7 @@ class MemberNameInfoIterator : public QListIterator<MemberInfo>
:
QListIterator
<
MemberInfo
>
(
mnii
)
{}
};
#if 0
class MemberNameInfoList : public QList<MemberNameInfo>
{
public:
...
...
@@ -108,6 +120,15 @@ class MemberNameInfoDict : public QDict<MemberNameInfo>
~MemberNameInfoDict() {}
};
class MemberNameInfoListIterator : public QListIterator<MemberNameInfo>
{
public:
MemberNameInfoListIterator(const MemberNameInfoList &mil) :
QListIterator<MemberNameInfo>(mil) {}
};
#endif
class
MemberNameInfoSDict
:
public
SDict
<
MemberNameInfo
>
{
public
:
...
...
@@ -121,11 +142,4 @@ class MemberNameInfoSDict : public SDict<MemberNameInfo>
}
};
class
MemberNameInfoListIterator
:
public
QListIterator
<
MemberNameInfo
>
{
public
:
MemberNameInfoListIterator
(
const
MemberNameInfoList
&
mil
)
:
QListIterator
<
MemberNameInfo
>
(
mil
)
{}
};
#endif
src/pre.l
View file @
f12c7847
...
...
@@ -866,12 +866,13 @@ void addDefine()
md->setFileDef(g_yyFileDef);
md->setDefinition("#define "+g_defName);
MemberName *mn=Doxygen::functionNameDict[g_defName];
MemberName *mn=Doxygen::functionName
S
Dict[g_defName];
if (mn==0)
{
mn = new MemberName(g_defName);
Doxygen::functionNameList.append(mn);
Doxygen::functionNameDict.insert(g_defName,mn);
//Doxygen::functionNameList.append(mn);
//Doxygen::functionNameDict.insert(g_defName,mn);
Doxygen::functionNameSDict.append(g_defName,mn);
}
mn->append(md);
if (g_yyFileDef) g_yyFileDef->insertMember(md);
...
...
src/scanner.l
View file @
f12c7847
...
...
@@ -150,6 +150,8 @@ static bool needsSemi;
static int depthIf;
static int initializerSharpCount;
static QCString memberGroupRelates;
static QCString memberGroupInside;
//-----------------------------------------------------------------------------
...
...
@@ -166,6 +168,8 @@ static void initParser()
roundCount = 0;
curlyCount = 0;
memberGroupId = NOGROUP;
memberGroupRelates.resize(0);
memberGroupInside.resize(0);
mtype = Method;
gstat = FALSE;
virt = Normal;
...
...
@@ -185,6 +189,8 @@ static void initEntry()
current->virt = virt;
current->stat = gstat;
current->mGrpId = memberGroupId;
current->relates = memberGroupRelates.copy();
current->inside = memberGroupInside.copy();
if (!autoGroupStack.isEmpty())
{
current->groups->append(new Grouping(*autoGroupStack.top()));
...
...
@@ -1320,7 +1326,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
startGroup();
tmpDocType=-1;
if (current_root->section & Entry::SCOPE_MASK)
{
current->inside = current_root->name+"::";
if (current->mGrpId!=NOGROUP)
{
memberGroupInside = current->inside.copy();
}
}
if (yytext[1]=='/') // C++ style comment
{
current->brief.resize(0);
...
...
@@ -2589,14 +2601,26 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
current->doc.resize(0);
lastDocContext = YY_START;
if (current_root->section & Entry::SCOPE_MASK)
{
current->inside = current_root->name+"::";
if (current->mGrpId!=NOGROUP)
{
memberGroupInside = current->inside.copy();
}
}
BEGIN( Doc );
}
<FindMembers,FindFields,MemberSpec,FuncQual,SkipCurly,Operator,ClassVar,SkipInits,Bases>("//"{B}*)?"/**"/[^/*] {
removeSlashes=(yytext[1]=='/');
lastDocContext = YY_START;
if (current_root->section & Entry::SCOPE_MASK)
{
current->inside = current_root->name+"::";
if (current->mGrpId!=NOGROUP)
{
memberGroupInside = current->inside.copy();
}
}
if (!Config_getBool("JAVADOC_AUTOBRIEF")) // use the Qt style
{
tmpDocType=-1;
...
...
@@ -2629,7 +2653,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
tmpDocType=-1;
lastDocContext = YY_START;
if (current_root->section & Entry::SCOPE_MASK)
{
current->inside = current_root->name+"::";
if (current->mGrpId!=NOGROUP)
{
memberGroupInside = current->inside.copy();
}
}
BEGIN( LineDoc );
}
<FindMembers,FindFields,MemberSpec,FuncQual,Operator,ClassVar,Bases>"///"/[^/] {
...
...
@@ -2637,7 +2667,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
tmpDocType=-1;
lastDocContext = YY_START;
if (current_root->section & Entry::SCOPE_MASK)
{
current->inside = current_root->name+"::";
if (current->mGrpId!=NOGROUP)
{
memberGroupInside = current->inside.copy();
}
}
BEGIN( LineDoc );
}
<FindMembers>"extern"{BN}+"\"C"("++")?"\""{BN}*("{")? {
...
...
@@ -2997,6 +3033,10 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
<ClassDocRelates>({ID}"::")*{ID} {
current->relates = yytext;
if (current->mGrpId!=NOGROUP)
{
memberGroupRelates = yytext;
}
BEGIN( lastDocRelContext );
}
<NameSpaceDocArg1>{SCOPENAME} {
...
...
@@ -3332,6 +3372,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
else if (current->section == Entry::MEMBERGRP_SEC)
{
memberGroupId = newMemberGroupId();
memberGroupRelates = current->relates.copy();
memberGroupInside = current->inside.copy();
current->mGrpId = memberGroupId;
lastMemberGroupLine = yyLineNr;
}
...
...
@@ -3943,6 +3985,8 @@ static void startGroup()
memberGroupHeader="[NOHEADER]";
}
memberGroupId = newMemberGroupId();
memberGroupRelates = current->relates.copy();
memberGroupInside = current->inside.copy();
current->mGrpId = memberGroupId;
lastMemberGroupLine = yyLineNr;
}
...
...
@@ -3964,9 +4008,12 @@ static void endGroup()
new QCString(memberGroupDocs)
);
memberGroupId=NOGROUP;
memberGroupRelates.resize(0);
memberGroupInside.resize(0);
if (YY_START!=ReadInitializer)
{
current->mGrpId=NOGROUP;
current->relates.resize(0);
}
memberGroupHeader.resize(0);
memberGroupDocs.resize(0);
...
...
@@ -4056,6 +4103,8 @@ static void parseCompounds(Entry *rt)
//printf("name=%s current->stat=%d gstat=%d\n",ce->name.data(),current->stat,gstat);
memberGroupId = NOGROUP;
memberGroupRelates.resize(0);
memberGroupInside.resize(0);
scanYYlex() ;
delete current; current=0;
...
...
src/sortdict.h
View file @
f12c7847
...
...
@@ -130,6 +130,12 @@ class SDict
}
#endif
}
/*! Remove an item from the dictionary */
bool
remove
(
const
char
*
key
)
{
T
*
item
=
m_dict
->
take
(
key
);
return
item
?
m_list
->
remove
(
item
)
:
FALSE
;
}
/*! Sorts the members of the dictionary. First appending a number
* of members and then sorting them is faster (O(NlogN) than using
* inSort() for each member (O(N^2)).
...
...
@@ -170,7 +176,7 @@ class SDict
}
/*! Equavalent to find(). */
T
*
operator
[](
const
char
*
key
)
T
*
operator
[](
const
char
*
key
)
const
{
return
m_dict
->
find
(
key
);
}
...
...
src/util.cpp
View file @
f12c7847
...
...
@@ -370,14 +370,14 @@ QCString resolveTypeDef(Definition *d,const QCString &name)
MemberDef
*
md
=
0
;
while
(
mContext
&&
md
==
0
)
{
MemberNameDict
*
mnd
=
0
;
MemberName
S
Dict
*
mnd
=
0
;
if
(
mContext
->
definitionType
()
==
Definition
::
TypeClass
)
{
mnd
=&
Doxygen
::
memberNameDict
;
mnd
=&
Doxygen
::
memberName
S
Dict
;
}
else
{
mnd
=&
Doxygen
::
functionNameDict
;
mnd
=&
Doxygen
::
functionName
S
Dict
;
}
MemberName
*
mn
=
mnd
->
find
(
name
);
if
(
mn
)
...
...
@@ -1080,7 +1080,7 @@ static QCString trimTemplateSpecifiers(
QCString
result
=
s
;
int
i
=
className
.
length
()
-
1
;
if
(
className
.
at
(
i
)
==
'>'
)
// template specialization
if
(
i
>=
0
&&
className
.
at
(
i
)
==
'>'
)
// template specialization
{
// replace unspecialized occurrences in s, with their specialized versions.
int
count
=
1
;
...
...
@@ -2046,7 +2046,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
//printf("mScope=`%s' mName=`%s'\n",mScope.data(),mName.data());
MemberName
*
mn
=
Doxygen
::
memberNameDict
[
mName
];
MemberName
*
mn
=
Doxygen
::
memberName
S
Dict
[
mName
];
if
(
!
forceEmptyScope
&&
mn
&&
!
(
scopeName
.
isEmpty
()
&&
mScope
.
isEmpty
()))
{
//printf(" >member name found\n");
...
...
@@ -2157,7 +2157,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
// maybe an namespace, file or group member ?
//printf("Testing for global function scopeName=`%s' mScope=`%s' :: mName=`%s'\n",
// scopeName.data(),mScope.data(),mName.data());
if
((
mn
=
Doxygen
::
functionNameDict
[
mName
]))
// name is known
if
((
mn
=
Doxygen
::
functionName
S
Dict
[
mName
]))
// name is known
{
//printf(" >function name found\n");
NamespaceDef
*
fnd
=
0
;
...
...
@@ -2239,8 +2239,8 @@ bool getDefs(const QCString &scName,const QCString &memberName,
gd
=
md
->
getGroupDef
();
//printf("md->name()=`%s' md->args=`%s' fd=%p gd=%p\n",
// md->name().data(),args,fd,gd);
if
(
(
fd
&&
fd
->
isLinkable
())
||
(
gd
&&
gd
->
isLinkable
())
if
(
(
gd
&&
gd
->
isLinkable
())
||
(
fd
&&
fd
->
isLinkable
())
)
{
//printf("fd=%p gd=%p inGroup=`%d' args=`%s'\n",fd,gd,inGroup,args);
...
...
@@ -2274,8 +2274,8 @@ bool getDefs(const QCString &scName,const QCString &memberName,
//printf("member is linkable md->name()=`%s'\n",md->name().data());
fd
=
md
->
getFileDef
();
gd
=
md
->
getGroupDef
();
if
(
(
fd
&&
fd
->
isLinkable
())
||
(
gd
&&
gd
->
isLinkable
())
if
(
(
gd
&&
gd
->
isLinkable
())
||
(
fd
&&
fd
->
isLinkable
())
)
{
members
.
append
(
md
);
...
...
@@ -2309,6 +2309,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
{
fd
=
md
->
getFileDef
();
gd
=
md
->
getGroupDef
();
//printf("fd=%p gd=%p gd->isLinkable()=%d\n",fd,gd,gd->isLinkable());
if
(
gd
&&
gd
->
isLinkable
())
fd
=
0
;
else
gd
=
0
;
return
TRUE
;
}
...
...
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