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