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
ce5e0dcf
Commit
ce5e0dcf
authored
Mar 11, 2001
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.2.6
parent
9a5a2a29
Changes
34
Show whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
763 additions
and
355 deletions
+763
-355
Doxyfile
Doxyfile
+19
-23
INSTALL
INSTALL
+2
-2
Makefile.in
Makefile.in
+5
-5
README
README
+2
-2
VERSION
VERSION
+1
-1
xml.cpp
addon/xmlgen/xml.cpp
+2
-2
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
Doxyfile
qtools/Doxyfile
+166
-0
classdef.cpp
src/classdef.cpp
+15
-11
classdef.h
src/classdef.h
+118
-42
diagram.cpp
src/diagram.cpp
+2
-2
doc.l
src/doc.l
+21
-12
dot.cpp
src/dot.cpp
+6
-6
doxygen.cpp
src/doxygen.cpp
+17
-9
doxysearch.cpp
src/doxysearch.cpp
+4
-4
doxytag.l
src/doxytag.l
+4
-1
htmlgen.cpp
src/htmlgen.cpp
+6
-4
htmlgen.h
src/htmlgen.h
+3
-1
index.cpp
src/index.cpp
+9
-9
latexgen.cpp
src/latexgen.cpp
+201
-173
latexgen.h
src/latexgen.h
+10
-3
mangen.cpp
src/mangen.cpp
+5
-2
mangen.h
src/mangen.h
+4
-1
outputgen.h
src/outputgen.h
+9
-5
outputlist.h
src/outputlist.h
+6
-2
packagedef.cpp
src/packagedef.cpp
+2
-1
packagedef.h
src/packagedef.h
+1
-1
rtfgen.cpp
src/rtfgen.cpp
+22
-9
rtfgen.h
src/rtfgen.h
+3
-1
scanner.l
src/scanner.l
+22
-2
tagreader.cpp
src/tagreader.cpp
+52
-1
translator.h
src/translator.h
+13
-13
translator_de.h
src/translator_de.h
+4
-4
translator_fr.h
src/translator_fr.h
+6
-0
No files found.
Doxyfile
View file @
ce5e0dcf
# Doxyfile 1.2.
3-20001126
# Doxyfile 1.2.
5-20010304
#---------------------------------------------------------------------------
# General configuration options
...
...
@@ -35,7 +35,11 @@ TAB_SIZE = 8
ENABLED_SECTIONS =
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
ALIASES =
MAX_INITIALIZER_LINES = 30
OPTIMIZE_OUTPUT_FOR_C = NO
SHOW_USED_FILES = YES
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
...
...
@@ -47,22 +51,9 @@ WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = src \
qtools \
$(QTDIR)/src/doc/qarray.doc \
$(QTDIR)/src/doc/qdict.doc \
$(QTDIR)/src/doc/qintdict.doc \
$(QTDIR)/src/doc/qlist.doc \
$(QTDIR)/src/doc/qptrdict.doc \
$(QTDIR)/src/doc/qsortedlist.doc \
$(QTDIR)/src/doc/qstack.doc \
$(QTDIR)/src/doc/qstrlist.doc \
$(QTDIR)/src/doc/qvector.doc \
$(QTDIR)/src/doc/qvaluelist.doc \
$(QTDIR)/src/doc/qtl.doc
INPUT = src
FILE_PATTERNS = *.h \
*.cpp \
q*.doc
RECURSIVE = NO
EXCLUDE = src/code.cpp \
src/config.cpp \
...
...
@@ -75,7 +66,12 @@ EXCLUDE = src/code.cpp \
src/scanner.cpp \
src/tag.cpp \
src/doc.cpp \
src/logos.cpp
src/logos.cpp \
src/doxysearch.cpp \
src/suffixtree.cpp \
src/suffixtree.h \
src/searchindex.cpp \
src/searchindex.h
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
...
...
@@ -98,6 +94,9 @@ HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
...
...
@@ -129,10 +128,6 @@ GENERATE_MAN = NO
MAN_OUTPUT =
MAN_EXTENSION = .3
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
...
...
@@ -146,7 +141,7 @@ EXPAND_AS_DEFINED =
#---------------------------------------------------------------------------
# Configuration::addtions related to external references
#---------------------------------------------------------------------------
TAGFILES =
TAGFILES =
qtools_docs/qtools.tag=../../qtools_docs/html
GENERATE_TAGFILE =
ALLEXTERNALS = NO
PERL_PATH = /usr/bin/perl
...
...
@@ -160,9 +155,10 @@ INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DOT_PATH =
MAX_DOT_GRAPH_WIDTH =
2048
MAX_DOT_GRAPH_HEIGHT =
2048
MAX_DOT_GRAPH_WIDTH =
1024
MAX_DOT_GRAPH_HEIGHT =
1024
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::addtions related to the search engine
#---------------------------------------------------------------------------
...
...
INSTALL
View file @
ce5e0dcf
DOXYGEN Version 1.2.
5-20010304
DOXYGEN Version 1.2.
6
Please read the installation section of the manual for instructions.
--------
Dimitri van Heesch (
04
March 2001)
Dimitri van Heesch (
11
March 2001)
Makefile.in
View file @
ce5e0dcf
...
...
@@ -63,8 +63,8 @@ install: doxywizard_install
cd
$(DOCDIR)
/doc
;
$(MAKE)
rm
-rf
$(DOCDIR)
/doc
cd
$(DOCDIR)
/latex
;
$(MAKE)
cp
$(DOCDIR)
/latex/doxygen_manual.pdf
$(
INSTALL)
/doc/doxygen
cp
$(DOCDIR)
/latex/doxygen_manual.ps
$(INSTALL)
/doc/doxygen
cp
$(DOCDIR)
/latex/doxygen_manual.pdf
$(
DOCDIR)
cp
$(DOCDIR)
/latex/doxygen_manual.ps
$(DOCDIR)
rm
-rf
$(DOCDIR)
/latex
docs
:
FORCE
...
...
README
View file @
ce5e0dcf
DOXYGEN Version 1.2.
5-20010304
DOXYGEN Version 1.2.
6
Please read INSTALL for compilation instructions.
...
...
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Dimitri van Heesch (
04
March 2001)
Dimitri van Heesch (
11
March 2001)
VERSION
View file @
ce5e0dcf
1.2.
5-20010304
1.2.
6
addon/xmlgen/xml.cpp
View file @
ce5e0dcf
...
...
@@ -329,10 +329,10 @@ void generateXMLForClass(ClassDef *cd,QTextStream &t)
}
t
<<
" </basecompoundlist>"
<<
endl
;
}
if
(
cd
->
su
per
Classes
()
->
count
()
>
0
)
if
(
cd
->
su
b
Classes
()
->
count
()
>
0
)
{
t
<<
" <derivedcompoundlist>"
<<
endl
;
BaseClassListIterator
bcli
(
*
cd
->
su
per
Classes
());
BaseClassListIterator
bcli
(
*
cd
->
su
b
Classes
());
BaseClassDef
*
bcd
;
for
(
bcli
.
toFirst
();(
bcd
=
bcli
.
current
());
++
bcli
)
{
...
...
packages/rpm/doxygen.spec
View file @
ce5e0dcf
Name: doxygen
Version: 1.2.
5-20010304
Version: 1.2.
6
Summary: documentation system for C, C++ and IDL
Release: 1
Source0: doxygen-%{version}.src.tar.gz
...
...
qtools/Doxyfile
0 → 100644
View file @
ce5e0dcf
# Doxyfile 1.2.5-20010304
#---------------------------------------------------------------------------
# General configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = Doxygen
PROJECT_NUMBER =
OUTPUT_DIRECTORY = ../qtools_docs
OUTPUT_LANGUAGE = English
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ALWAYS_DETAILED_SEC = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = $(PWD)/
INTERNAL_DOCS = NO
CLASS_DIAGRAMS = YES
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
CASE_SENSE_NAMES = NO
HIDE_SCOPE_NAMES = NO
VERBATIM_HEADERS = YES
SHOW_INCLUDE_FILES = YES
JAVADOC_AUTOBRIEF = YES
INHERIT_DOCS = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 8
ENABLED_SECTIONS =
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
ALIASES =
MAX_INITIALIZER_LINES = 30
OPTIMIZE_OUTPUT_FOR_C = NO
SHOW_USED_FILES = YES
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = . \
$(QTDIR)/src/doc/qarray.doc \
$(QTDIR)/src/doc/qdict.doc \
$(QTDIR)/src/doc/qintdict.doc \
$(QTDIR)/src/doc/qlist.doc \
$(QTDIR)/src/doc/qptrdict.doc \
$(QTDIR)/src/doc/qsortedlist.doc \
$(QTDIR)/src/doc/qstack.doc \
$(QTDIR)/src/doc/qstrlist.doc \
$(QTDIR)/src/doc/qvector.doc \
$(QTDIR)/src/doc/qvaluelist.doc \
$(QTDIR)/src/doc/qtl.doc
FILE_PATTERNS = *.h \
*.cpp \
q*.doc
RECURSIVE = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
IMAGE_PATH =
INPUT_FILTER =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT =
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT =
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT =
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT =
MAN_EXTENSION = .3
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
#---------------------------------------------------------------------------
# Configuration::addtions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE = ../qtools_docs/qtools.tag
ALLEXTERNALS = NO
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DOT_PATH =
MAX_DOT_GRAPH_WIDTH = 2048
MAX_DOT_GRAPH_HEIGHT = 2048
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::addtions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO
CGI_NAME = search.cgi
CGI_URL =
DOC_URL =
DOC_ABSPATH =
BIN_ABSPATH = /usr/local/bin/
EXT_DOC_PATHS =
src/classdef.cpp
View file @
ce5e0dcf
...
...
@@ -138,11 +138,11 @@ void ClassDef::insertBaseClass(ClassDef *cd,const char *n,Protection p,
inherits
->
append
(
new
BaseClassDef
(
cd
,
n
,
p
,
s
,
t
));
}
// inserts a su
per
class in the inherited list
void
ClassDef
::
insertSu
per
Class
(
ClassDef
*
cd
,
Protection
p
,
// inserts a su
b
class in the inherited list
void
ClassDef
::
insertSu
b
Class
(
ClassDef
*
cd
,
Protection
p
,
Specifier
s
,
const
char
*
t
)
{
//printf("*** insert su
per
class %s into %s\n",cd->name().data(),name().data());
//printf("*** insert su
b
class %s into %s\n",cd->name().data(),name().data());
inheritedBy
->
inSort
(
new
BaseClassDef
(
cd
,
0
,
p
,
s
,
t
));
}
...
...
@@ -732,7 +732,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
if
(
Config
::
classDiagramFlag
)
ol
.
disableAllBut
(
OutputGenerator
::
Man
);
// write su
per
classes
// write su
b
classes
int
count
;
if
((
count
=
inherits
->
count
())
>
0
)
{
...
...
@@ -856,7 +856,9 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
writeString
(
"<center><font size=
\"
2
\"
>["
);
ol
.
writeHtmlLink
(
"graph_legend.html"
,
theTranslator
->
trLegend
());
ol
.
startHtmlLink
(
"graph_legend.html"
);
ol
.
docify
(
theTranslator
->
trLegend
());
ol
.
endHtmlLink
();
ol
.
writeString
(
"]</font></center>"
);
ol
.
popGeneratorState
();
}
...
...
@@ -889,7 +891,9 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
writeString
(
"<center><font size=
\"
2
\"
>["
);
ol
.
writeHtmlLink
(
"graph_legend.html"
,
theTranslator
->
trLegend
());
ol
.
startHtmlLink
(
"graph_legend.html"
);
ol
.
docify
(
theTranslator
->
trLegend
());
ol
.
endHtmlLink
();
ol
.
writeString
(
"]</font></center>"
);
ol
.
popGeneratorState
();
}
...
...
@@ -1465,7 +1469,7 @@ bool ClassDef::isLinkableInProject()
/*! the class is visible in a class diagram, or class hierarchy */
bool
ClassDef
::
isVisibleInHierarchy
()
{
return
// show all classes or a su
per
class is visible
{
return
// show all classes or a su
b
class is visible
(
Config
::
allExtFlag
||
hasNonReferenceSuperClass
())
&&
// and not an annonymous compound
name
().
find
(
'@'
)
==-
1
&&
...
...
@@ -1501,7 +1505,7 @@ bool ClassDef::isBaseClass(ClassDef *bcd)
/*!
* recusively merges the `all members' lists of a class base
* with that of this class. Must only be called for classes without
* su
per
classes!
* su
b
classes!
*/
void
ClassDef
::
mergeMembers
()
...
...
@@ -1527,7 +1531,7 @@ void ClassDef::mergeMembers()
MemberNameInfo
*
dstMni
;
if
((
dstMni
=
dstMnd
->
find
(
srcMni
->
memberName
())))
// a member with that name is already in the class.
// the member may hide or reimplement the one in the su
per
class
// the member may hide or reimplement the one in the su
b
class
// or there may be another path to the base class that is already
// visited via another branch in the class hierarchy.
{
...
...
@@ -1643,13 +1647,13 @@ void ClassDef::mergeMembers()
}
}
}
else
// base class has a member that is not in the su
per
class => copy
else
// base class has a member that is not in the su
b
class => copy
{
// create a deep copy of the list (only the MemberInfo's will be
// copied, not the actual MemberDef's)
MemberNameInfo
*
newMni
=
new
MemberNameInfo
(
srcMni
->
memberName
());
// copy the member(s) from the base to the su
per
class
// copy the member(s) from the base to the su
b
class
MemberNameInfoIterator
mnii
(
*
srcMni
);
MemberInfo
*
mi
;
for
(;(
mi
=
mnii
.
current
());
++
mnii
)
...
...
src/classdef.h
View file @
ce5e0dcf
...
...
@@ -48,92 +48,118 @@ struct IncludeInfo;
/*! \brief This class contains all information about a compound.
*
* A compound can be a class, struct, union, interface, or exception
* A compound can be a class, struct, union, interface, or exception.
* \note This class should be renamed to CompoundDef
*/
class
ClassDef
:
public
Definition
{
public
:
/*! \name Public API
* \{
*/
/*! The various compound types */
enum
CompoundType
{
Class
=
Entry
::
CLASS_SEC
,
Struct
=
Entry
::
STRUCT_SEC
,
Union
=
Entry
::
UNION_SEC
,
Interface
=
Entry
::
INTERFACE_SEC
,
Exception
=
Entry
::
EXCEPTION_SEC
};
ClassDef
(
const
char
*
fileName
,
int
startLine
,
const
char
*
name
,
CompoundType
ct
,
const
char
*
ref
=
0
,
const
char
*
fName
=
0
);
~
ClassDef
();
DefType
definitionType
()
{
return
TypeClass
;
}
QCString
getOutputFileBase
()
const
{
return
fileName
;
}
/*! Returns the name as it is appears in the documentation */
QCString
displayName
()
const
;
/*! Returns the type of compound this is */
CompoundType
compoundType
()
const
{
return
compType
;
}
/*! Returns the type of compound as a string */
QCString
compoundTypeString
()
const
;
void
insertBaseClass
(
ClassDef
*
,
const
char
*
name
,
Protection
p
,
Specifier
s
,
const
char
*
t
=
0
);
/*! Returns the list of base classes from which this class directly
* inherits.
*/
BaseClassList
*
baseClasses
()
{
return
inherits
;
}
void
insertSuperClass
(
ClassDef
*
,
Protection
p
,
Specifier
s
,
const
char
*
t
=
0
);
BaseClassList
*
superClasses
()
{
return
inheritedBy
;
}
void
setIncludeFile
(
FileDef
*
fd
,
const
char
*
incName
,
bool
local
);
/*! Returns the list of sub classes that directly inherit from this class
*/
BaseClassList
*
subClasses
()
{
return
inheritedBy
;
}
/*! Returns a list of all members. This includes any inherited members.
* Members are sorted alphabetically.
*/
MemberNameInfoList
*
memberNameInfoList
()
{
return
allMemberNameInfoList
;
}
/*! Returns a dictionary of all members. This includes any inherited
* members. Members are sorted alphabetically.
*/
MemberNameInfoDict
*
memberNameInfoDict
()
{
return
allMemberNameInfoDict
;
}
void
insertMember
(
MemberDef
*
);
void
insertUsedFile
(
const
char
*
);
void
computeAnchors
();
void
computeMemberGroups
();
void
setAnchor
(
MemberDef
*
);
void
dumpMembers
();
void
writeDocumentation
(
OutputList
&
ol
);
void
writeMemberList
(
OutputList
&
ol
);
void
writeDeclaration
(
OutputList
&
ol
,
MemberDef
*
md
,
bool
inGroup
);
bool
addExample
(
const
char
*
anchor
,
const
char
*
name
,
const
char
*
file
);
bool
hasExamples
();
void
setProtection
(
Protection
p
)
{
prot
=
p
;
}
/*! Return the protection level (Public,Protected,Private) in which
* this compound was found.
*/
Protection
protection
()
const
{
return
prot
;
}
/*! returns TRUE iff a link is possible to an item within this project.
*/
bool
isLinkableInProject
();
/*! a link to this class is possible (either within this project,
* or as a cross-reference to another project
/*! return TRUE iff a link to this class is possible (either within
* this project, or as a cross-reference to another project).
*/
bool
isLinkable
()
{
return
isLinkableInProject
()
||
isReference
();
}
bool
hasNonReferenceSuperClass
();
/*! the class is visible in a class diagram, or class hierarchy */
bool
isVisibleInHierarchy
();
// template argument functions
/*! Returns the template arguments of this class
* Will return 0 if not applicable.
*/
ArgumentList
*
templateArguments
()
const
{
return
tempArgs
;
}
/*! Returns the template arguments that this nested class "inherits"
* from its outer class (doxygen assumes there is only one!).
* Will return 0 if not applicable.
*/
ArgumentList
*
outerTemplateArguments
()
const
;
void
setTemplateArguments
(
ArgumentList
*
al
);
//QCString getTemplateNameString();
/*! Returns the namespace this compound is in, or 0 if it has a global
* scope.
*/
NamespaceDef
*
getNamespaceDef
()
{
return
nspace
;
}
/*! Returns the file in which this compound's definition can be found.
* Should not return 0 (but it might be a good idea to check anyway).
*/
FileDef
*
getFileDef
()
const
{
return
fileDef
;
}
void
setNamespace
(
NamespaceDef
*
nd
)
{
nspace
=
nd
;
}
void
setFileDef
(
FileDef
*
fd
)
{
fileDef
=
fd
;
}
void
mergeMembers
();
/*! Returns the Java package this class is in or 0 if not applicable.
*/
PackageDef
*
packageDef
()
const
;
/*! Returns TRUE iff \a bcd is a direct or indirect base class of this
* class. This function will recusively traverse all branches of the
* inheritance tree.
*/
bool
isBaseClass
(
ClassDef
*
bcd
);
void
determineImplUsageRelation
();
void
determineIntfUsageRelation
();
UsesClassDict
*
usedImplementationClasses
()
const
{
return
usesImplClassDict
;
}
UsesClassDict
*
usedInterfaceClasses
()
const
{
return
usesIntfClassDict
;
}
void
setSubGrouping
(
bool
enabled
)
{
subGrouping
=
enabled
;
}
bool
visited
;
void
addMembersToMemberGroup
();
void
distributeMemberGroupDocumentation
();
//void generateXML(QTextStream &t);
//void generateXMLSection(QTextStream &t,MemberList *ml,const char *type);
PackageDef
*
packageDef
()
const
;
/* member lists by protection */
MemberList
pubMembers
;
...
...
@@ -170,9 +196,60 @@ class ClassDef : public Definition
MemberList
variableMembers
;
MemberList
propertyMembers
;
/*! \} */
/*! \name Doxygen internal API
* \{
*/
void
insertBaseClass
(
ClassDef
*
,
const
char
*
name
,
Protection
p
,
Specifier
s
,
const
char
*
t
=
0
);
void
insertSubClass
(
ClassDef
*
,
Protection
p
,
Specifier
s
,
const
char
*
t
=
0
);
void
setIncludeFile
(
FileDef
*
fd
,
const
char
*
incName
,
bool
local
);
void
insertMember
(
MemberDef
*
);
void
insertUsedFile
(
const
char
*
);
void
computeAnchors
();
void
computeMemberGroups
();
void
setAnchor
(
MemberDef
*
);
void
dumpMembers
();
bool
addExample
(
const
char
*
anchor
,
const
char
*
name
,
const
char
*
file
);
void
addMembersToMemberGroup
();
void
distributeMemberGroupDocumentation
();
void
setNamespace
(
NamespaceDef
*
nd
)
{
nspace
=
nd
;
}
void
setTemplateArguments
(
ArgumentList
*
al
);
void
mergeMembers
();
void
setFileDef
(
FileDef
*
fd
)
{
fileDef
=
fd
;
}
void
determineImplUsageRelation
();
void
determineIntfUsageRelation
();
void
setSubGrouping
(
bool
enabled
)
{
subGrouping
=
enabled
;
}
void
setProtection
(
Protection
p
)
{
prot
=
p
;
}
/*! Creates a new compound definition.
* \param fileName full path and file name in which this compound was
* found.
* \param startLine line number where the definition of this compound
* starts.
* \param name the name of this compound (including scope)
* \param ct the kind of Compound
* \param ref the tag file from which this compound is extracted
* or 0 if the compound doesn't come from a tag file
* \param fName the file name as found in the tag file.
* This overwrites the file that doxygen normally
* generates based on the compound type & name.
*/
ClassDef
(
const
char
*
fileName
,
int
startLine
,
const
char
*
name
,
CompoundType
ct
,
const
char
*
ref
=
0
,
const
char
*
fName
=
0
);
/*! Destroys a compound definition. */
~
ClassDef
();
bool
visited
;
protected
:
void
addUsedInterfaceClasses
(
MemberDef
*
md
,
const
char
*
typeStr
);
void
addMemberListToGroup
(
MemberList
*
);
bool
hasExamples
();
bool
hasNonReferenceSuperClass
();
/*! \} */
private
:
QCString
fileName
;
// HTML containing the class docs
...
...
@@ -184,7 +261,6 @@ class ClassDef : public Definition
BaseClassList
*
inheritedBy
;
NamespaceDef
*
nspace
;
// the namespace this class is in
/* user defined member groups */
MemberGroupList
*
memberGroupList
;
MemberGroupDict
*
memberGroupDict
;
...
...
src/diagram.cpp
View file @
ce5e0dcf
...
...
@@ -249,8 +249,8 @@ void DiagramRow::insertClass(DiagramItem *parent,ClassDef *cd,bool doBases,
if
(
parent
)
parent
->
addChild
(
di
);
di
->
move
(
count
()
*
gridWidth
,
level
*
gridHeight
);
append
(
di
);
BaseClassList
*
bcl
=
doBases
?
cd
->
baseClasses
()
:
cd
->
su
per
Classes
();
/* there are base/su
per
classes */
BaseClassList
*
bcl
=
doBases
?
cd
->
baseClasses
()
:
cd
->
su
b
Classes
();
/* there are base/su
b
classes */
int
count
=
0
;
BaseClassDef
*
bcd
=
bcl
->
first
();
while
(
bcd
)
...
...
src/doc.l
View file @
ce5e0dcf
...
...
@@ -88,6 +88,7 @@ static bool inWarningBlock;
static bool inRemarkBlock;
static bool inAttentionBlock;
static bool inParBlock;
static bool insideHtmlLink;
static QCString sectionRef;
static bool insideVerbatim = FALSE;
static bool insidePre = FALSE;
...
...
@@ -134,6 +135,7 @@ static void initParser()
inRemarkBlock = FALSE;
inAttentionBlock = FALSE;
inParBlock = FALSE;
insideHtmlLink = FALSE;
}
//-----------------------------------------------------------------------------
...
...
@@ -840,8 +842,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
%x DocDontInclude
%x DocHtmlLink
%x DocHtmlAnchor
%x DocHtmlHref1
%x DocHtmlHref2
%x DocHtmlHref
%x DocSkiplineKey
%x DocSkipKey
%x DocLineKey
...
...
@@ -889,6 +890,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
<DocScan,Text>"&"[AEIOUaeiou]"circ;" { outDoc->writeCirc(yytext[1]); }
<DocScan,Text>"&"[ANOano]"tilde;" { outDoc->writeTilde(yytext[1]); }
<DocScan,Text>"ß" { outDoc->writeSharpS(); }
<DocScan,Text>"&"[cC]"cedil;" { outDoc->writeCCedil(yytext[1]); }
<DocScan,Text>"&[aA]ring;" { outDoc->writeRing(yytext[1]); }
<DocScan,DocHtmlScan,DocLatexScan>"$("[a-z_A-Z]+")" {
QCString envvar=&yytext[2];
...
...
@@ -1784,7 +1786,10 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
removeRedundantWhiteSpace(oName),inSeeBlock);
BEGIN(DocScan);
}
<DocScan>("http:"|"https:"|"ftp:"|"file:"){URLMASK} { outDoc->writeHtmlLink(yytext,yytext); }
<DocScan>("http:"|"https:"|"ftp:"|"file:"){URLMASK} { outDoc->startHtmlLink(yytext);
outDoc->docify(yytext);
outDoc->endHtmlLink();
}
<DocScan>[a-zA-Z_0-9\.\-]+"@"[0-9a-z_A-Z\.\-]+ { outDoc->writeMailLink(yytext); }
<DocScan>{FILESCHAR}*{FILEECHAR}+/".\\n" { // special exception that is otherwise matches by FILEMASK
generateRef(*outDoc,className,yytext,inSeeBlock);
...
...
@@ -2036,7 +2041,12 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
<DocScan>"<"{BR}{ATTR}">" { outDoc->lineBreak(); }
<DocScan>"<"{I}{ATTR}">" { outDoc->startEmphasis(); }
<DocScan>"</"{I}{ATTR}">" { outDoc->endEmphasis(); }
<DocScan>"</"{A}{ATTR}">"
<DocScan>"</"{A}{ATTR}">" { if (insideHtmlLink)
{
outDoc->endHtmlLink();
insideHtmlLink=FALSE;
}
}
<DocScan>"<"{A} { BEGIN(DocHtmlLink); }
<DocScan>"<"{BOLD}{ATTR}">" { outDoc->startBold(); }
<DocScan>"</"{BOLD}{ATTR}">" { outDoc->endBold(); }
...
...
@@ -2055,15 +2065,14 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
<DocHtmlLink>{HREF}{BN}*"="{BN}*("\""?) {
htmlUrl.resize(0);
htmlText.resize(0);
BEGIN(DocHtmlHref1); }
<DocHtmlHref1>{URLMASK} {
BEGIN(DocHtmlHref);
}
<DocHtmlHref>{URLMASK} {
htmlUrl=yytext;
}
<DocHtmlHref1>">" { BEGIN(DocHtmlHref2); }
<DocHtmlHref2>[^<]* { htmlText+=yytext; }
<DocHtmlHref2>"<" {
outDoc->writeHtmlLink(htmlUrl,htmlText);
unput(*yytext);
<DocHtmlHref>">" {
outDoc->startHtmlLink(htmlUrl);
insideHtmlLink=TRUE;
BEGIN(DocScan);
}
<DocHtmlLink,DocHtmlAnchor>">" { BEGIN(DocScan); }
...
...
src/dot.cpp
View file @
ce5e0dcf
...
...
@@ -154,7 +154,7 @@ static bool readBoundingBoxEPS(const char *fileName,int *width,int *height)
*/
static
bool
isLeaf
(
ClassDef
*
cd
)
{
BaseClassList
*
bcl
=
cd
->
su
per
Classes
();
BaseClassList
*
bcl
=
cd
->
su
b
Classes
();
if
(
bcl
->
count
()
>
0
)
// class has children, check their visibility
{
BaseClassListIterator
bcli
(
*
bcl
);
...
...
@@ -613,7 +613,7 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
void
DotGfxHierarchyTable
::
addHierarchy
(
DotNode
*
n
,
ClassDef
*
cd
,
bool
hideSuper
)
{
//printf("addHierarchy `%s' baseClasses=%d\n",cd->name().data(),cd->baseClasses()->count());
BaseClassListIterator
bcli
(
*
cd
->
su
per
Classes
());
BaseClassListIterator
bcli
(
*
cd
->
su
b
Classes
());
BaseClassDef
*
bcd
;
for
(
;
(
bcd
=
bcli
.
current
())
;
++
bcli
)
{
...
...
@@ -673,7 +673,7 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,ClassDef *cd,bool hideSuper)
bn
->
addParent
(
n
);
m_usedNodes
->
insert
(
bClass
->
name
(),
bn
);
// add node to the used list
}
if
(
!
bClass
->
visited
&&
!
hideSuper
&&
bClass
->
su
per
Classes
()
->
count
()
>
0
)
if
(
!
bClass
->
visited
&&
!
hideSuper
&&
bClass
->
su
b
Classes
()
->
count
()
>
0
)
{
bool
wasVisited
=
bClass
->
visited
;
bClass
->
visited
=
TRUE
;
...
...
@@ -698,7 +698,7 @@ DotGfxHierarchyTable::DotGfxHierarchyTable()
ClassDef
*
cd
;
for
(
cli
.
toLast
();(
cd
=
cli
.
current
());
--
cli
)
{
//printf("Trying %s su
perClasses=%d\n",cd->name().data(),cd->super
Classes()->count());
//printf("Trying %s su
bClasses=%d\n",cd->name().data(),cd->sub
Classes()->count());
if
(
!
hasVisibleRoot
(
cd
->
baseClasses
()))
{
if
(
cd
->
isVisibleInHierarchy
())
// root class in the graph
...
...
@@ -715,7 +715,7 @@ DotGfxHierarchyTable::DotGfxHierarchyTable()
//m_usedNodes->clear();
m_usedNodes
->
insert
(
cd
->
name
(),
n
);
m_rootNodes
->
insert
(
0
,
n
);
if
(
!
cd
->
visited
&&
cd
->
su
per
Classes
()
->
count
()
>
0
)
if
(
!
cd
->
visited
&&
cd
->
su
b
Classes
()
->
count
()
>
0
)
{
addHierarchy
(
n
,
cd
,
cd
->
visited
);
cd
->
visited
=
TRUE
;
...
...
@@ -846,7 +846,7 @@ void DotClassGraph::addClass(ClassDef *cd,DotNode *n,int prot,
void
DotClassGraph
::
buildGraph
(
ClassDef
*
cd
,
DotNode
*
n
,
int
distance
,
bool
base
)
{
BaseClassListIterator
bcli
(
base
?
*
cd
->
baseClasses
()
:
*
cd
->
su
per
Classes
());
BaseClassListIterator
bcli
(
base
?
*
cd
->
baseClasses
()
:
*
cd
->
su
b
Classes
());
BaseClassDef
*
bcd
;
for
(
;
(
bcd
=
bcli
.
current
())
;
++
bcli
)
{
...
...
src/doxygen.cpp
View file @
ce5e0dcf
...
...
@@ -732,6 +732,7 @@ static void buildClassList(Entry *root)
cd
->
setTemplateArguments
(
root
->
tArgList
);
cd
->
setProtection
(
root
->
protection
);
cd
->
addSectionsToDefinition
(
root
->
anchors
);
// file definition containing the class cd
cd
->
setBodySegment
(
root
->
bodyLine
,
root
->
endBodyLine
);
cd
->
setBodyDef
(
fd
);
...
...
@@ -1541,8 +1542,8 @@ void buildVarList(Entry *root)
{
if
(
!
pScope
.
isEmpty
()
&&
(
pcd
=
getClass
(
pScope
)))
{
Protection
p
=
(
Protection
)
QMAX
((
int
)
root
->
protection
,(
int
)
cd
->
protection
());
md
=
addVariableToClass
(
root
,
pcd
,
mtype
,
pScope
,
name
,
TRUE
,
indentDepth
,
0
,
p
);
//
Protection p = (Protection)QMAX((int)root->protection,(int)cd->protection());
md
=
addVariableToClass
(
root
,
pcd
,
mtype
,
pScope
,
name
,
TRUE
,
indentDepth
,
0
,
root
->
protection
);
}
else
// annonymous scope inside namespace or file => put variable in the global scope
{
...
...
@@ -2379,7 +2380,7 @@ static bool findBaseClassRelation(Entry *root,ClassDef *cd,
if
(
baseClassIsTypeDef
)
usedName
=
bi
->
name
;
cd
->
insertBaseClass
(
baseClass
,
usedName
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
// add this class as super class to the base class
baseClass
->
insertSu
per
Class
(
cd
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
baseClass
->
insertSu
b
Class
(
cd
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
return
TRUE
;
}
else
if
(
scopeOffset
==
0
&&
insertUndocumented
)
...
...
@@ -2393,7 +2394,7 @@ static bool findBaseClassRelation(Entry *root,ClassDef *cd,
// add base class to this class
cd
->
insertBaseClass
(
baseClass
,
bi
->
name
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
// add this class as super class to the base class
baseClass
->
insertSu
per
Class
(
cd
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
baseClass
->
insertSu
b
Class
(
cd
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
// the undocumented base was found in this file
baseClass
->
insertUsedFile
(
root
->
fileName
);
// add class to the list
...
...
@@ -2586,8 +2587,8 @@ static void addTodoTestBugReferences()
Definition
*
d
=
md
->
getClassDef
();
QCString
scopeName
;
if
(
d
)
scopeName
=
d
->
name
();
if
(
d
==
0
)
d
=
md
->
getFileDef
();
if
(
d
==
0
)
d
=
md
->
getGroupDef
();
if
(
d
==
0
)
d
=
md
->
getFileDef
();
// TODO: i18n this
QCString
memLabel
=
"member"
;
if
(
Config
::
optimizeForCFlag
)
memLabel
=
"field"
;
...
...
@@ -2607,8 +2608,8 @@ static void addTodoTestBugReferences()
Definition
*
d
=
md
->
getNamespaceDef
();
QCString
scopeName
;
if
(
d
)
scopeName
=
d
->
name
();
if
(
d
==
0
)
d
=
md
->
getBodyDef
();
if
(
d
==
0
)
d
=
md
->
getGroupDef
();
if
(
d
==
0
)
d
=
md
->
getFileDef
();
// TODO: i18n this
QCString
memLabel
=
"member"
;
if
(
Config
::
optimizeForCFlag
)
memLabel
=
"global"
;
...
...
@@ -3348,7 +3349,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
" related=`%s'
\n
"
" exceptions=`%s'
\n
"
" isRelated=%d
\n
"
" isFiend=%d
\n
"
" isF
r
iend=%d
\n
"
" isFunc=%d
\n\n
"
,
namespaceName
.
data
(),
className
.
data
(),
classTempList
.
data
(),
funcType
.
data
(),
funcName
.
data
(),
funcArgs
.
data
(),
funcTempList
.
data
(),
...
...
@@ -4298,7 +4299,7 @@ static void buildCompleteMemberLists()
for
(
cli
.
toFirst
();(
cd
=
cli
.
current
());
++
cli
)
{
if
(
!
cd
->
isReference
()
&&
// not an external class
cd
->
su
per
Classes
()
->
count
()
==
0
&&
// is a root of the hierarchy
cd
->
su
b
Classes
()
->
count
()
==
0
&&
// is a root of the hierarchy
cd
->
baseClasses
()
->
count
()
>
0
)
// and has at least one base class
{
cd
->
mergeMembers
();
...
...
@@ -4792,7 +4793,12 @@ static void buildPackageList(Entry *root)
PackageDef
*
pd
=
0
;
if
(
!
root
->
name
.
isEmpty
()
&&
(
pd
=
Doxygen
::
packageDict
.
find
(
root
->
name
))
==
0
)
{
pd
=
new
PackageDef
(
root
->
fileName
,
root
->
startLine
,
root
->
name
);
QCString
tagName
;
if
(
root
->
tagInfo
)
{
tagName
=
root
->
tagInfo
->
tagName
;
}
pd
=
new
PackageDef
(
root
->
fileName
,
root
->
startLine
,
root
->
name
,
tagName
);
Doxygen
::
packageDict
.
inSort
(
root
->
name
,
pd
);
}
if
(
pd
)
...
...
@@ -6207,7 +6213,9 @@ void generateOutput()
* Check/create output directorties *
**************************************************************************/
if
(
Config
::
outputDir
.
isEmpty
())
{
Config
::
outputDir
=
QDir
::
currentDirPath
();
}
else
{
QDir
dir
(
Config
::
outputDir
);
...
...
src/doxysearch.cpp
View file @
ce5e0dcf
...
...
@@ -509,7 +509,7 @@ void generateResults(SearchResults *sr)
"</center></td></tr>
\n
"
,
page
+
1
,
numPages
);
printf
(
" <tr bgcolor=#ffffff>
\n
"
" <td colspan=2>
\n
"
" <
dl compact
>
\n
"
);
" <
table border=
\"
0
\"
cellspacing=
\"
2
\"
cellpadding=
\"
2
\"
>
\n
"
);
int
i
;
for
(
i
=
0
;
i
<
resultCount
&&
pageEntries
>
0
;
i
++
)
{
...
...
@@ -526,8 +526,8 @@ void generateResults(SearchResults *sr)
readString
(
f
,
htmlName
,
MAXSTRLEN
);
int
rank
=
(
int
)(
d
->
rank
*
100
+
0.5
);
if
(
rank
==
0
)
rank
++
;
printf
(
" <
dt
><b><font color=#%2x00%2x>%d</font></b>"
"<
dd><a href=
\"
%s/%s
\"
>%s</a
>
\n
"
,
printf
(
" <
tr><td align=
\"
right
\"
><b><font color=#%2x00%2x>%d</font></b>"
"<
/td><td><a href=
\"
%s/%s
\"
>%s</a></td></tr
>
\n
"
,
rank
*
2
+
55
,
255
-
rank
*
2
,
rank
,
d
->
fileInfo
->
url
,
htmlName
,
linkName
);
pageEntries
--
;
...
...
@@ -537,7 +537,7 @@ void generateResults(SearchResults *sr)
skipEntries
--
;
}
}
printf
(
" </
dl
>
\n
"
printf
(
" </
table
>
\n
"
" </td>
\n
"
" </tr>
\n
"
" <tr><td colspan=2 bgcolor=
\"
#4040c0
\"
><center> "
);
...
...
src/doxytag.l
View file @
ce5e0dcf
...
...
@@ -287,7 +287,10 @@ QCString unhtmlify(const char *str)
<SearchRefName>"\" doxytag=\"" {
BEGIN( ReadRefName );
}
<SearchRefName>"\"></a>" {
<SearchRefName>"\"></a><a" { // HACK: avoid finding links in code fragments
BEGIN( Start );
}
<SearchRefName>"\"></a>" { // HACK: deal with Qt code
if (nameBug)
BEGIN( Start );
else
...
...
src/htmlgen.cpp
View file @
ce5e0dcf
...
...
@@ -171,8 +171,7 @@ void HtmlGenerator::startFile(const char *name,const char *title,bool external)
{
t
<<
substituteKeywords
(
g_header
,
lastTitle
);
}
t
<<
"<!-- Generated by Doxygen "
<<
versionString
<<
" on "
<<
dateToString
(
TRUE
)
<<
" -->"
<<
endl
;
t
<<
"<!-- Generated by Doxygen "
<<
versionString
<<
" -->"
<<
endl
;
}
void
HtmlGenerator
::
startQuickIndexItem
(
const
char
*
s
,
const
char
*
l
)
...
...
@@ -436,14 +435,17 @@ void HtmlGenerator::endTextLink()
t
<<
"</a>"
;
}
void
HtmlGenerator
::
writeHtmlLink
(
const
char
*
url
,
const
char
*
text
)
void
HtmlGenerator
::
startHtmlLink
(
const
char
*
url
)
{
t
<<
"<a "
;
if
(
Config
::
ftvHelpFlag
)
t
<<
"target=
\"
top
\"
"
;
t
<<
"href=
\"
"
;
if
(
url
)
t
<<
url
;
t
<<
"
\"
>"
;
docify
(
text
);
}
void
HtmlGenerator
::
endHtmlLink
()
{
t
<<
"</a>"
;
}
...
...
src/htmlgen.h
View file @
ce5e0dcf
...
...
@@ -81,7 +81,8 @@ class HtmlGenerator : public OutputGenerator
const
char
*
anchor
,
const
char
*
name
);
void
startTextLink
(
const
char
*
file
,
const
char
*
anchor
);
void
endTextLink
();
void
writeHtmlLink
(
const
char
*
url
,
const
char
*
text
);
void
startHtmlLink
(
const
char
*
url
);
void
endHtmlLink
();
void
writeMailLink
(
const
char
*
url
);
void
startTypewriter
()
{
t
<<
"<code>"
;
}
void
endTypewriter
()
{
t
<<
"</code>"
;
}
...
...
@@ -172,6 +173,7 @@ class HtmlGenerator : public OutputGenerator
void
writeTilde
(
char
c
)
{
t
<<
"&"
<<
c
<<
"tilde;"
;
}
void
writeRing
(
char
c
)
{
t
<<
"&"
<<
c
<<
"ring;"
;
}
void
writeSharpS
()
{
t
<<
"ß"
;
}
void
writeCCedil
(
char
c
)
{
t
<<
"&"
<<
c
<<
"cedil;"
;
}
void
startDescList
()
{
t
<<
"<dl compact><dt>"
<<
endl
;
}
void
endDescList
()
{
t
<<
"</dl>"
;
}
void
startParamList
()
{
startDescList
();
}
...
...
src/index.cpp
View file @
ce5e0dcf
...
...
@@ -359,7 +359,7 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper)
started
=
TRUE
;
}
//printf("Passed...\n");
bool
hasChildren
=
!
cd
->
visited
&&
!
hideSuper
&&
cd
->
su
per
Classes
()
->
count
()
>
0
;
bool
hasChildren
=
!
cd
->
visited
&&
!
hideSuper
&&
cd
->
su
b
Classes
()
->
count
()
>
0
;
if
(
cd
->
isLinkable
())
{
ol
.
writeIndexItem
(
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
cd
->
displayName
());
...
...
@@ -395,7 +395,7 @@ 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
->
su
per
Classes
(),
wasVisited
);
writeClassTree
(
ol
,
cd
->
su
b
Classes
(),
wasVisited
);
}
}
}
...
...
@@ -438,7 +438,7 @@ void writeClassTree(BaseClassList *cl)
if
(
hasFtvHelp
)
ftvHelp
->
incContentsDepth
();
started
=
TRUE
;
}
bool
hasChildren
=
cd
->
su
per
Classes
()
->
count
()
>
0
;
bool
hasChildren
=
cd
->
su
b
Classes
()
->
count
()
>
0
;
if
(
cd
->
isLinkable
())
{
if
(
hasHtmlHelp
)
...
...
@@ -452,7 +452,7 @@ void writeClassTree(BaseClassList *cl)
}
if
(
hasChildren
)
{
writeClassTree
(
cd
->
su
per
Classes
());
writeClassTree
(
cd
->
su
b
Classes
());
}
cd
->
visited
=
TRUE
;
}
...
...
@@ -492,7 +492,7 @@ void writeClassTree(ClassList *cl)
{
started
=
TRUE
;
}
bool
hasChildren
=
cd
->
su
per
Classes
()
->
count
()
>
0
;
bool
hasChildren
=
cd
->
su
b
Classes
()
->
count
()
>
0
;
if
(
cd
->
isLinkable
())
{
if
(
hasHtmlHelp
)
...
...
@@ -506,7 +506,7 @@ void writeClassTree(ClassList *cl)
}
if
(
hasChildren
)
{
writeClassTree
(
cd
->
su
per
Classes
());
writeClassTree
(
cd
->
su
b
Classes
());
}
cd
->
visited
=
TRUE
;
}
...
...
@@ -553,7 +553,7 @@ void writeClassHierarchy(OutputList &ol)
if
(
hasFtvHelp
)
ftvHelp
->
incContentsDepth
();
started
=
TRUE
;
}
bool
hasChildren
=
!
cd
->
visited
&&
cd
->
su
per
Classes
()
->
count
()
>
0
;
bool
hasChildren
=
!
cd
->
visited
&&
cd
->
su
b
Classes
()
->
count
()
>
0
;
if
(
cd
->
isLinkable
())
{
ol
.
writeIndexItem
(
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
cd
->
displayName
());
...
...
@@ -586,7 +586,7 @@ void writeClassHierarchy(OutputList &ol)
}
if
(
hasChildren
)
{
writeClassTree
(
ol
,
cd
->
su
per
Classes
(),
cd
->
visited
);
writeClassTree
(
ol
,
cd
->
su
b
Classes
(),
cd
->
visited
);
cd
->
visited
=
TRUE
;
}
}
...
...
@@ -610,7 +610,7 @@ int countClassHierarchy()
ClassListIterator
cli
(
Doxygen
::
classList
);
for
(
;
cli
.
current
();
++
cli
)
{
if
(
cli
.
current
()
->
su
per
Classes
()
->
count
()
>
0
)
count
++
;
if
(
cli
.
current
()
->
su
b
Classes
()
->
count
()
>
0
)
count
++
;
}
return
count
;
}
...
...
src/latexgen.cpp
View file @
ce5e0dcf
...
...
@@ -30,24 +30,24 @@
#include "dot.h"
#include "page.h"
static
QCString
filterTitle
(
const
char
*
s
)
{
QCString
tmp
=
s
,
result
;
uint
i
;
for
(
i
=
0
;
i
<
tmp
.
length
();
i
++
)
{
char
c
=
tmp
.
at
(
i
);
switch
(
c
)
{
case
'#'
:
result
+=
"
\\
#"
;
break
;
case
'"'
:
result
+=
"
\\\"
"
;
break
;
case
'%'
:
result
+=
"
\\
%"
;
break
;
case
'['
:
result
+=
"{"
;
break
;
case
']'
:
result
+=
"}"
;
break
;
default:
result
+=
c
;
break
;
}
}
return
result
;
}
//
static QCString filterTitle(const char *s)
//
{
//
QCString tmp=s,result;
//
uint i;for (i=0;i<tmp.length();i++)
//
{
//
char c=tmp.at(i);
//
switch(c)
//
{
//
case '#': result+="\\#"; break;
//
case '"': result+="\\\""; break;
//
case '%': result+="\\%"; break;
//
case '[': result+="{"; break;
//
case ']': result+="}"; break;
//
default: result+=c; break;
//
}
//
}
//
return result;
//
}
static
QCString
escapeLabelName
(
const
char
*
s
)
{
...
...
@@ -98,6 +98,7 @@ LatexGenerator::LatexGenerator() : OutputGenerator()
//printf("LatexGenerator::LatexGenerator() insideTabbing=FALSE\n");
insideTabbing
=
FALSE
;
firstDescItem
=
TRUE
;
insidePre
=
FALSE
;
}
LatexGenerator
::~
LatexGenerator
()
...
...
@@ -116,6 +117,7 @@ void LatexGenerator::append(const OutputGenerator *g)
col
+=
((
LatexGenerator
*
)
g
)
->
col
;
insideTabbing
=
insideTabbing
||
((
LatexGenerator
*
)
g
)
->
insideTabbing
;
firstDescItem
=
((
LatexGenerator
*
)
g
)
->
firstDescItem
;
insidePre
=
insidePre
||
((
LatexGenerator
*
)
g
)
->
insidePre
;
//printf("LatexGenerator::append(%s) insideTabbing=%s\n", g->getContents().data(),
// insideTabbing ? "TRUE" : "FALSE" );
}
...
...
@@ -124,6 +126,7 @@ OutputGenerator *LatexGenerator::copy()
{
LatexGenerator
*
result
=
new
LatexGenerator
;
result
->
insideTabbing
=
insideTabbing
;
result
->
insidePre
=
insidePre
;
return
result
;
}
...
...
@@ -864,7 +867,7 @@ void LatexGenerator::writeIndexItem(const char *ref,const char *fn,
//}
void
LatexGenerator
::
writeHtmlLink
(
const
char
*
url
,
const
char
*
text
)
void
LatexGenerator
::
startHtmlLink
(
const
char
*
url
)
{
if
(
Config
::
pdfHyperFlag
)
{
...
...
@@ -873,7 +876,10 @@ void LatexGenerator::writeHtmlLink(const char *url,const char *text)
t
<<
"}"
;
}
t
<<
"{
\\
tt "
;
docify
(
text
);
}
void
LatexGenerator
::
endHtmlLink
()
{
t
<<
"}"
;
}
...
...
@@ -1026,7 +1032,7 @@ void LatexGenerator::endMemberHeader()
void
LatexGenerator
::
startMemberDoc
(
const
char
*
clname
,
const
char
*
memname
,
const
char
*
,
const
char
*
title
)
const
char
*
)
{
if
(
memname
&&
memname
[
0
]
!=
'@'
)
{
...
...
@@ -1053,7 +1059,13 @@ void LatexGenerator::startMemberDoc(const char *clname,
t
<<
"}"
<<
endl
;
}
if
(
Config
::
compactLatexFlag
)
t
<<
"
\\
paragraph"
;
else
t
<<
"
\\
subsubsection"
;
if
(
Config
::
pdfHyperFlag
&&
title
)
t
<<
"["
<<
filterTitle
(
title
)
<<
"]"
;
if
(
Config
::
pdfHyperFlag
&&
memname
)
{
t
<<
"["
;
escapeMakeIndexChars
(
this
,
t
,
memname
);
//filterTitle(title)
t
<<
"]"
;
}
t
<<
"{
\\
setlength{
\\
rightskip}{0pt plus 5cm}"
;
}
...
...
@@ -1127,7 +1139,14 @@ void LatexGenerator::startSection(const char *lab,const char *,bool sub)
t
<<
"
\\
hypertarget{"
<<
lab
<<
"}{}"
;
}
t
<<
"
\\
"
;
if
(
Config
::
compactLatexFlag
)
{
if
(
sub
)
t
<<
"subsubsection{"
;
else
t
<<
"subsection{"
;
}
else
{
if
(
sub
)
t
<<
"subsection{"
;
else
t
<<
"section{"
;
}
}
void
LatexGenerator
::
endSection
(
const
char
*
lab
,
bool
)
...
...
@@ -1200,7 +1219,6 @@ void LatexGenerator::docify(const char *str)
static
bool
isJapanese
=
theTranslator
->
idLanguage
()
==
"japanese"
;
static
bool
isKorean
=
theTranslator
->
idLanguage
()
==
"korean"
;
static
bool
isRussian
=
theTranslator
->
idLanguage
()
==
"russian"
;
static
bool
isGerman
=
theTranslator
->
idLanguage
()
==
"german"
;
if
(
str
)
{
const
unsigned
char
*
p
=
(
const
unsigned
char
*
)
str
;
...
...
@@ -1209,6 +1227,18 @@ void LatexGenerator::docify(const char *str)
while
(
*
p
)
{
c
=*
p
++
;
if
(
insidePre
)
{
switch
(
c
)
{
case
'\\'
:
t
<<
"
\\
(
\\
backslash
\\
)"
;
break
;
case
'{'
:
t
<<
"
\\
{"
;
break
;
case
'}'
:
t
<<
"
\\
}"
;
break
;
default
:
t
<<
(
char
)
c
;
break
;
}
}
else
{
switch
(
c
)
{
case
'#'
:
t
<<
"
\\
#"
;
break
;
...
...
@@ -1249,14 +1279,11 @@ void LatexGenerator::docify(const char *str)
else
{
t
<<
"$
\\
backslash$"
;
}
break
;
case
'"'
:
if
(
isGerman
)
// " has a special meaning if German
// - Thomas Vesper
{
t
<<
"
\\
char`
\\\"
{}"
;
}
else
{
t
<<
(
char
)
c
;
}
case
'"'
:
{
t
<<
"
\\
char`
\\\"
{}"
;
}
break
;
default
:
if
(
isJapanese
||
isKorean
)
{
// Japanese language uses wide characters
if
(
c
>=
128
)
...
...
@@ -1363,6 +1390,7 @@ void LatexGenerator::docify(const char *str)
}
}
}
}
pc
=
c
;
}
}
...
...
src/latexgen.h
View file @
ce5e0dcf
...
...
@@ -78,7 +78,8 @@ class LatexGenerator : public OutputGenerator
const
char
*
anchor
,
const
char
*
text
);
void
startTextLink
(
const
char
*
,
const
char
*
);
void
endTextLink
();
void
writeHtmlLink
(
const
char
*
,
const
char
*
);
void
startHtmlLink
(
const
char
*
);
void
endHtmlLink
();
void
writeMailLink
(
const
char
*
);
void
startTypewriter
()
{
t
<<
"{
\\
tt "
;
}
void
endTypewriter
()
{
t
<<
"}"
;
}
...
...
@@ -110,8 +111,12 @@ class LatexGenerator : public OutputGenerator
void
writeAnchor
(
const
char
*
fileName
,
const
char
*
name
);
void
startCodeFragment
()
{
t
<<
"
\\
footnotesize
\\
begin{verbatim}"
;
}
void
endCodeFragment
()
{
t
<<
"
\\
end{verbatim}
\\
normalsize "
<<
endl
;
}
void
startPreFragment
()
{
t
<<
"
\\
small
\\
begin{alltt}"
;
}
void
endPreFragment
()
{
t
<<
"
\\
end{alltt}
\\
normalsize "
<<
endl
;
}
void
startPreFragment
()
{
t
<<
"
\\
small
\\
begin{alltt}"
;
insidePre
=
TRUE
;
}
void
endPreFragment
()
{
t
<<
"
\\
end{alltt}
\\
normalsize "
<<
endl
;
insidePre
=
FALSE
;
}
void
startCodeLine
()
{
col
=
0
;
}
void
endCodeLine
()
{
codify
(
"
\n
"
);
}
//void writeBoldString(const char *text)
...
...
@@ -174,6 +179,7 @@ class LatexGenerator : public OutputGenerator
void
writeTilde
(
char
c
)
{
t
<<
"
\\
~{"
<<
c
<<
"}"
;
}
void
writeRing
(
char
c
)
{
t
<<
"
\\
"
<<
c
<<
c
;
}
void
writeSharpS
()
{
t
<<
"
\"
s"
;
}
void
writeCCedil
(
char
c
)
{
t
<<
"
\\
c{"
<<
c
<<
"}"
;
}
void
startMemberDescription
()
{
t
<<
"
\\
begin{CompactList}
\\
small
\\
item
\\
em "
;
}
void
endMemberDescription
()
{
t
<<
"
\\
item
\\
end{CompactList}"
;
}
void
startDescList
()
{
t
<<
"
\\
begin{Desc}
\n\\
item["
;
}
...
...
@@ -244,6 +250,7 @@ class LatexGenerator : public OutputGenerator
int
col
;
bool
insideTabbing
;
bool
firstDescItem
;
bool
insidePre
;
};
#endif
src/mangen.cpp
View file @
ce5e0dcf
...
...
@@ -171,9 +171,12 @@ void ManGenerator::writeCodeLink(const char *,const char *,
docify
(
name
);
}
void
ManGenerator
::
writeHtmlLink
(
const
char
*
,
const
char
*
text
)
void
ManGenerator
::
startHtmlLink
(
const
char
*
)
{
}
void
ManGenerator
::
endHtmlLink
()
{
docify
(
text
);
}
void
ManGenerator
::
writeMailLink
(
const
char
*
url
)
...
...
src/mangen.h
View file @
ce5e0dcf
...
...
@@ -76,7 +76,8 @@ class ManGenerator : public OutputGenerator
const
char
*
anchor
,
const
char
*
name
);
void
startTextLink
(
const
char
*
,
const
char
*
)
{}
void
endTextLink
()
{}
void
writeHtmlLink
(
const
char
*
url
,
const
char
*
text
);
void
startHtmlLink
(
const
char
*
url
);
void
endHtmlLink
();
void
writeMailLink
(
const
char
*
url
);
void
startTypewriter
()
{
t
<<
"
\\
fC"
;
firstCol
=
FALSE
;
}
void
endTypewriter
()
{
t
<<
"
\\
fR"
;
firstCol
=
FALSE
;
}
...
...
@@ -164,6 +165,8 @@ class ManGenerator : public OutputGenerator
void
writeSharpS
()
{
t
<<
"s
\\
*:"
;
/* just a wild guess,
need to check! */
firstCol
=
FALSE
;
}
void
writeCCedil
(
char
c
)
{
t
<<
c
;
/* TODO: fix this */
firstCol
=
FALSE
;
}
void
startMemberDescription
()
{
t
<<
"
\n
.RI
\"\\
fI"
;
firstCol
=
FALSE
;
}
void
endMemberDescription
()
{
t
<<
"
\\
fR
\"
"
;
firstCol
=
FALSE
;
}
void
startDescList
();
...
...
src/outputgen.h
View file @
ce5e0dcf
...
...
@@ -103,14 +103,17 @@ class BaseOutputDocInterface
virtual
void
writeCodeLink
(
const
char
*
ref
,
const
char
*
file
,
const
char
*
anchor
,
const
char
*
text
)
=
0
;
/*! Writes a (link to an) URL found in the documentation.
* \param url To URL to link to.
* \param text The text to display as a placeholder for the link.
/*! Starts a (link to an) URL found in the documentation.
* \param url The URL to link to.
*/
virtual
void
startHtmlLink
(
const
char
*
url
)
=
0
;
/*! Ends a link started by startHtmlLink().
*/
virtual
void
writeHtmlLink
(
const
char
*
url
,
const
char
*
text
)
=
0
;
virtual
void
endHtmlLink
(
)
=
0
;
/*! Writes a (link to an) email address found in the documentation.
* \param url T
o
email address, this is also used for the link text.
* \param url T
he
email address, this is also used for the link text.
*/
virtual
void
writeMailLink
(
const
char
*
url
)
=
0
;
...
...
@@ -202,6 +205,7 @@ class BaseOutputDocInterface
virtual
void
writeTilde
(
char
)
=
0
;
virtual
void
writeRing
(
char
)
=
0
;
virtual
void
writeSharpS
()
=
0
;
virtual
void
writeCCedil
(
char
)
=
0
;
virtual
void
startDescList
()
=
0
;
virtual
void
endDescList
()
=
0
;
virtual
void
startParamList
()
=
0
;
...
...
src/outputlist.h
View file @
ce5e0dcf
...
...
@@ -134,8 +134,10 @@ class OutputList : public OutputDocInterface
{
forall
(
&
OutputGenerator
::
startTextLink
,
file
,
anchor
);
}
void
endTextLink
()
{
forall
(
&
OutputGenerator
::
endTextLink
);
}
void
writeHtmlLink
(
const
char
*
url
,
const
char
*
text
)
{
forall
(
&
OutputGenerator
::
writeHtmlLink
,
url
,
text
);
}
void
startHtmlLink
(
const
char
*
url
)
{
forall
(
&
OutputGenerator
::
startHtmlLink
,
url
);
}
void
endHtmlLink
()
{
forall
(
&
OutputGenerator
::
endHtmlLink
);
}
void
writeMailLink
(
const
char
*
url
)
{
forall
(
&
OutputGenerator
::
writeMailLink
,
url
);
}
void
writeStartAnnoItem
(
const
char
*
type
,
const
char
*
file
,
...
...
@@ -296,6 +298,8 @@ class OutputList : public OutputDocInterface
{
forall
(
&
OutputGenerator
::
writeRing
,
c
);
}
void
writeSharpS
()
{
forall
(
&
OutputGenerator
::
writeSharpS
);
}
void
writeCCedil
(
char
c
)
{
forall
(
&
OutputGenerator
::
writeCCedil
,
c
);
}
void
startMemberDescription
()
{
forall
(
&
OutputGenerator
::
startMemberDescription
);
}
void
endMemberDescription
()
...
...
src/packagedef.cpp
View file @
ce5e0dcf
...
...
@@ -27,11 +27,12 @@
#include "language.h"
#include "doxygen.h"
PackageDef
::
PackageDef
(
const
char
*
df
,
int
dl
,
const
char
*
na
)
:
PackageDef
::
PackageDef
(
const
char
*
df
,
int
dl
,
const
char
*
na
,
const
char
*
ref
)
:
Definition
(
df
,
dl
,
na
)
{
classList
=
new
ClassList
;
packageFileName
=
"package_"
+
convertFileName
(
na
);
setReference
(
ref
);
}
PackageDef
::~
PackageDef
()
...
...
src/packagedef.h
View file @
ce5e0dcf
...
...
@@ -32,7 +32,7 @@ class OutputList;
class
PackageDef
:
public
Definition
{
public
:
PackageDef
(
const
char
*
fName
,
int
line
,
const
char
*
name
);
PackageDef
(
const
char
*
fName
,
int
line
,
const
char
*
name
,
const
char
*
ref
=
0
);
~
PackageDef
();
DefType
definitionType
()
{
return
TypePackage
;
}
QCString
getOutputFileBase
()
const
{
return
packageFileName
;
}
...
...
src/rtfgen.cpp
View file @
ce5e0dcf
...
...
@@ -1317,27 +1317,30 @@ void RTFGenerator::writeIndexItem(const char *ref,const char *fn,
// t << "}{\\pageref{" << text << "}}" << endl;
//}
void
RTFGenerator
::
writeHtmlLink
(
const
char
*
url
,
const
char
*
text
)
void
RTFGenerator
::
startHtmlLink
(
const
char
*
url
)
{
if
(
url
&&
Config
::
rtfHyperFlag
)
if
(
Config
::
rtfHyperFlag
)
{
t
<<
"{
\\
field {
\\
*
\\
fldinst { HYPERLINK
\\\\
l
\"
"
;
t
<<
url
;
t
<<
"
\"
}{}"
;
t
<<
"}{
\\
fldrslt {
\\
cs37
\\
ul
\\
cf2 "
;
if
(
text
)
docify
(
text
);
}
else
docify
(
url
);
{
startTypewriter
();
}
}
void
RTFGenerator
::
endHtmlLink
()
{
if
(
Config
::
rtfHyperFlag
)
{
t
<<
"}}}"
<<
endl
;
}
else
{
startTypewriter
();
docify
(
text
);
endTypewriter
();
}
}
...
...
@@ -2264,6 +2267,16 @@ void RTFGenerator::writeRing(char c)
}
}
void
RTFGenerator
::
writeCCedil
(
char
c
)
{
switch
(
c
)
{
case
'C'
:
t
<<
'\307'
;
break
;
case
'c'
:
t
<<
'\347'
;
break
;
default
:
t
<<
'?'
;
break
;
}
}
/**
* VERY brittle routine inline RTF's included by other RTF's.
* it is recursive and ugly.
...
...
src/rtfgen.h
View file @
ce5e0dcf
...
...
@@ -78,7 +78,8 @@ class RTFGenerator : public OutputGenerator
const
char
*
anchor
,
const
char
*
text
);
void
startTextLink
(
const
char
*
f
,
const
char
*
anchor
);
void
endTextLink
();
void
writeHtmlLink
(
const
char
*
,
const
char
*
);
void
startHtmlLink
(
const
char
*
);
void
endHtmlLink
();
void
writeMailLink
(
const
char
*
url
);
void
startTypewriter
()
{
t
<<
"{
\\
f2 "
;
}
void
endTypewriter
()
{
t
<<
"}"
;
}
...
...
@@ -159,6 +160,7 @@ class RTFGenerator : public OutputGenerator
void
writeTilde
(
char
c
);
void
writeRing
(
char
c
);
void
writeSharpS
()
{
t
<<
"
\337
"
;
}
void
writeCCedil
(
char
c
);
void
startMemberDescription
();
void
endMemberDescription
();
...
...
src/scanner.l
View file @
ce5e0dcf
...
...
@@ -146,6 +146,7 @@ static QStack<QCString> autoGroupNameStack;
static QCString lastDefGroup;
static bool insideFormula;
static bool insideTryBlock=FALSE;
//-----------------------------------------------------------------------------
...
...
@@ -168,6 +169,7 @@ static void initParser()
baseVirt = Normal;
isTypedef = FALSE;
autoGroupNameStack.clear();
insideTryBlock = FALSE;
}
static void initEntry()
...
...
@@ -426,6 +428,7 @@ TITLE [tT][iI][tT][lL][eE]
%x SkipRound
%x SkipSquare
%x TypedefName
%x TryFunctionBlock
%x Comment
%x Doc
%x JavaDoc
...
...
@@ -1028,6 +1031,11 @@ TITLE [tT][iI][tT][lL][eE]
{
BEGIN(IDLUnionCase);
}
else if (insideTryBlock && strcmp(yytext,"catch")==0)
{
insideTryBlock=FALSE;
BEGIN(TryFunctionBlock);
}
else
{
if (YY_START==FindMembers)
...
...
@@ -1071,6 +1079,13 @@ TITLE [tT][iI][tT][lL][eE]
<IDLUnionCase>":" { BEGIN(FindMembers); }
<IDLUnionCase>\n { yyLineNr++; }
<IDLUnionCase>.
<TryFunctionBlock>\n
<TryFunctionBlock>"{" {
curlyCount=0;
lastCurlyContext = FindMembers ;
BEGIN( SkipCurly );
}
<TryFunctionBlock>.
<EndCppQuote>")" {
insideCppQuote=FALSE;
BEGIN(FindMembers);
...
...
@@ -1551,10 +1566,12 @@ TITLE [tT][iI][tT][lL][eE]
BEGIN( FindMembers ) ;
}
else
{
BEGIN( MemberSpec ) ;
}
}
}
}
<TypedefName>{ID} {
if (current->section == Entry::ENUM_SEC)
{
...
...
@@ -1985,6 +2002,9 @@ TITLE [tT][iI][tT][lL][eE]
current->args += ' ' ;
}
<FuncQual,FuncRound,FuncFunc>. { current->args += *yytext; }
<FuncQual>{BN}*"try"{BN}+ { /* try-function-block */
insideTryBlock=TRUE;
}
<FuncQual>{BN}*"throw"{BN}*"(" {
current->exception = " throw (" ;
roundCount=0;
...
...
@@ -2045,7 +2065,7 @@ TITLE [tT][iI][tT][lL][eE]
//}
current->fileName = yyFileName;
current->startLine = yyLineNr;
if (*yytext!=';' || (current_root->section&Entry::
SCOPE
_MASK) )
if (*yytext!=';' || (current_root->section&Entry::
COMPOUND
_MASK) )
{
int tempArg=current->name.find('<');
QCString tempName;
...
...
src/tagreader.cpp
View file @
ce5e0dcf
...
...
@@ -76,6 +76,18 @@ class TagNamespaceInfo
QStringList
classList
;
};
/*! Container for package specific info that can be read from a tagfile */
class
TagPackageInfo
{
public
:
TagPackageInfo
()
{
members
.
setAutoDelete
(
TRUE
);
}
QString
name
;
QString
filename
;
QStrList
docAnchors
;
QList
<
TagMemberInfo
>
members
;
QStringList
classList
;
};
/*! Container for file specific info that can be read from a tagfile */
class
TagFileInfo
{
...
...
@@ -214,6 +226,7 @@ class TagFileParser : public QXmlDefaultHandler
}
else
if
(
kind
==
"package"
)
{
m_curPackage
=
new
TagPackageInfo
;
m_state
=
InPackage
;
}
else
...
...
@@ -235,6 +248,8 @@ class TagFileParser : public QXmlDefaultHandler
m_curGroup
=
0
;
break
;
case
InPage
:
m_tagFilePages
.
append
(
m_curPage
);
m_curPage
=
0
;
break
;
case
InPackage
:
m_tagFilePackages
.
append
(
m_curPackage
);
m_curPackage
=
0
;
break
;
default
:
err
(
"Error: tag `compound' was not expected!
\n
"
);
}
...
...
@@ -278,6 +293,7 @@ class TagFileParser : public QXmlDefaultHandler
case
InFile
:
m_curFile
->
members
.
append
(
m_curMember
);
break
;
case
InNamespace
:
m_curNamespace
->
members
.
append
(
m_curMember
);
break
;
case
InGroup
:
m_curGroup
->
members
.
append
(
m_curMember
);
break
;
case
InPackage
:
m_curPackage
->
members
.
append
(
m_curMember
);
break
;
default
:
err
(
"Error: Unexpected tag `member' found
\n
"
);
break
;
}
}
...
...
@@ -291,6 +307,7 @@ class TagFileParser : public QXmlDefaultHandler
case
InGroup
:
m_curGroup
->
docAnchors
.
append
(
m_curString
);
break
;
case
InPage
:
m_curPage
->
docAnchors
.
append
(
m_curString
);
break
;
case
InMember
:
m_curMember
->
docAnchors
.
append
(
m_curString
);
break
;
case
InPackage
:
m_curPackage
->
docAnchors
.
append
(
m_curString
);
break
;
default
:
err
(
"Error: Unexpected tag `member' found
\n
"
);
break
;
}
}
...
...
@@ -301,6 +318,7 @@ class TagFileParser : public QXmlDefaultHandler
case
InFile
:
m_curFile
->
classList
.
append
(
m_curString
);
break
;
case
InNamespace
:
m_curNamespace
->
classList
.
append
(
m_curString
);
break
;
case
InGroup
:
m_curGroup
->
classList
.
append
(
m_curString
);
break
;
case
InPackage
:
m_curPackage
->
classList
.
append
(
m_curString
);
break
;
default
:
err
(
"Error: Unexpected tag `class' found
\n
"
);
break
;
}
}
...
...
@@ -343,6 +361,7 @@ class TagFileParser : public QXmlDefaultHandler
case
InGroup
:
m_curGroup
->
name
=
m_curString
;
break
;
case
InPage
:
m_curPage
->
name
=
m_curString
;
break
;
case
InMember
:
m_curMember
->
name
=
m_curString
;
break
;
case
InPackage
:
m_curPackage
->
name
=
m_curString
;
break
;
default
:
err
(
"Error: Unexpected tag `name' found
\n
"
);
break
;
}
}
...
...
@@ -395,6 +414,7 @@ class TagFileParser : public QXmlDefaultHandler
case
InFile
:
m_curFile
->
filename
=
m_curString
;
break
;
case
InGroup
:
m_curGroup
->
filename
=
m_curString
;
break
;
case
InPage
:
m_curPage
->
filename
=
m_curString
;
break
;
case
InPackage
:
m_curPackage
->
filename
=
m_curString
;
break
;
default
:
err
(
"Error: Unexpected tag `filename' found
\n
"
);
break
;
}
}
...
...
@@ -457,18 +477,23 @@ class TagFileParser : public QXmlDefaultHandler
bool
startDocument
()
{
m_state
=
Invalid
;
m_curClass
=
0
;
m_curNamespace
=
0
;
m_curFile
=
0
;
m_curGroup
=
0
;
m_curPage
=
0
;
m_state
=
Invalid
;
m_curPackage
=
0
;
m_stateStack
.
setAutoDelete
(
TRUE
);
m_tagFileClasses
.
setAutoDelete
(
TRUE
);
m_tagFileFiles
.
setAutoDelete
(
TRUE
);
m_tagFileNamespaces
.
setAutoDelete
(
TRUE
);
m_tagFileGroups
.
setAutoDelete
(
TRUE
);
m_tagFilePages
.
setAutoDelete
(
TRUE
);
m_tagFilePackages
.
setAutoDelete
(
TRUE
);
m_startElementHandlers
.
insert
(
"compound"
,
new
StartElementHandler
(
this
,
&
TagFileParser
::
startCompound
));
m_startElementHandlers
.
insert
(
"member"
,
new
StartElementHandler
(
this
,
&
TagFileParser
::
startMember
));
m_startElementHandlers
.
insert
(
"name"
,
new
StartElementHandler
(
this
,
&
TagFileParser
::
startStringValue
));
...
...
@@ -485,6 +510,7 @@ class TagFileParser : public QXmlDefaultHandler
m_startElementHandlers
.
insert
(
"page"
,
new
StartElementHandler
(
this
,
&
TagFileParser
::
startStringValue
));
m_startElementHandlers
.
insert
(
"docanchor"
,
new
StartElementHandler
(
this
,
&
TagFileParser
::
startStringValue
));
m_startElementHandlers
.
insert
(
"tagfile"
,
new
StartElementHandler
(
this
,
&
TagFileParser
::
startIgnoreElement
));
m_endElementHandlers
.
insert
(
"compound"
,
new
EndElementHandler
(
this
,
&
TagFileParser
::
endCompound
));
m_endElementHandlers
.
insert
(
"member"
,
new
EndElementHandler
(
this
,
&
TagFileParser
::
endMember
));
m_endElementHandlers
.
insert
(
"name"
,
new
EndElementHandler
(
this
,
&
TagFileParser
::
endName
));
...
...
@@ -501,6 +527,7 @@ class TagFileParser : public QXmlDefaultHandler
m_endElementHandlers
.
insert
(
"page"
,
new
EndElementHandler
(
this
,
&
TagFileParser
::
endPage
));
m_endElementHandlers
.
insert
(
"docanchor"
,
new
EndElementHandler
(
this
,
&
TagFileParser
::
endDocAnchor
));
m_endElementHandlers
.
insert
(
"tagfile"
,
new
EndElementHandler
(
this
,
&
TagFileParser
::
endIgnoreElement
));
return
TRUE
;
}
bool
startElement
(
const
QString
&
,
const
QString
&
,
...
...
@@ -548,11 +575,13 @@ class TagFileParser : public QXmlDefaultHandler
QList
<
TagNamespaceInfo
>
m_tagFileNamespaces
;
QList
<
TagGroupInfo
>
m_tagFileGroups
;
QList
<
TagPageInfo
>
m_tagFilePages
;
QList
<
TagPackageInfo
>
m_tagFilePackages
;
QDict
<
StartElementHandler
>
m_startElementHandlers
;
QDict
<
EndElementHandler
>
m_endElementHandlers
;
TagClassInfo
*
m_curClass
;
TagFileInfo
*
m_curFile
;
TagNamespaceInfo
*
m_curNamespace
;
TagPackageInfo
*
m_curPackage
;
TagGroupInfo
*
m_curGroup
;
TagPageInfo
*
m_curPage
;
TagMemberInfo
*
m_curMember
;
...
...
@@ -870,6 +899,10 @@ static QString stripPath(const QString &s)
}
}
/*! Injects the info gathered by the XML parser into the Entry tree.
* This tree contains the information extracted from the input in a
* "unrelated" form.
*/
void
TagFileParser
::
buildLists
(
Entry
*
root
)
{
// build class list
...
...
@@ -953,6 +986,24 @@ void TagFileParser::buildLists(Entry *root)
tni
=
m_tagFileNamespaces
.
next
();
}
// build package list
TagPackageInfo
*
tpgi
=
m_tagFilePackages
.
first
();
while
(
tpgi
)
{
Entry
*
pe
=
new
Entry
;
pe
->
section
=
Entry
::
PACKAGE_SEC
;
pe
->
name
=
tpgi
->
name
;
addDocAnchors
(
pe
,
tpgi
->
docAnchors
);
TagInfo
*
ti
=
new
TagInfo
;
ti
->
tagName
=
m_tagName
;
ti
->
fileName
=
tpgi
->
filename
;
pe
->
tagInfo
=
ti
;
buildMemberList
(
pe
,
tpgi
->
members
);
root
->
addSubEntry
(
pe
);
tpgi
=
m_tagFilePackages
.
next
();
}
// build group list
TagGroupInfo
*
tgi
=
m_tagFileGroups
.
first
();
while
(
tgi
)
...
...
src/translator.h
View file @
ce5e0dcf
...
...
@@ -230,7 +230,7 @@ class Translator
// quick reference sections
/*! This is put above each page as a link to the list of all groups of
* compounds or files (see the \group command).
* compounds or files (see the \
\
group command).
*/
virtual
QCString
trModules
()
{
return
"Modules"
;
}
...
...
@@ -591,47 +591,47 @@ class Translator
return
(
QCString
)
"Inheritance diagram for "
+
clName
+
":"
;
}
/*! this text is generated when the \internal command is used. */
/*! this text is generated when the \
\
internal command is used. */
virtual
QCString
trForInternalUseOnly
()
{
return
"For internal use only."
;
}
/*! this text is generated when the \reimp command is used. */
/*! this text is generated when the \
\
reimp command is used. */
virtual
QCString
trReimplementedForInternalReasons
()
{
return
"Reimplemented for internal reasons; the API is not affected."
;
}
/*! this text is generated when the \warning command is used. */
/*! this text is generated when the \
\
warning command is used. */
virtual
QCString
trWarning
()
{
return
"Warning"
;
}
/*! this text is generated when the \bug command is used. */
/*! this text is generated when the \
\
bug command is used. */
virtual
QCString
trBugsAndLimitations
()
{
return
"Bugs and limitations"
;
}
/*! this text is generated when the \version command is used. */
/*! this text is generated when the \
\
version command is used. */
virtual
QCString
trVersion
()
{
return
"Version"
;
}
/*! this text is generated when the \date command is used. */
/*! this text is generated when the \
\
date command is used. */
virtual
QCString
trDate
()
{
return
"Date"
;
}
/*! this text is generated when the \author command is used. */
/*! this text is generated when the \
\
author command is used. */
virtual
QCString
trAuthors
()
{
return
"Author(s)"
;
}
/*! this text is generated when the \return command is used. */
/*! this text is generated when the \
\
return command is used. */
virtual
QCString
trReturns
()
{
return
"Returns"
;
}
/*! this text is generated when the \sa command is used. */
/*! this text is generated when the \
\
sa command is used. */
virtual
QCString
trSeeAlso
()
{
return
"See also"
;
}
/*! this text is generated when the \param command is used. */
/*! this text is generated when the \
\
param command is used. */
virtual
QCString
trParameters
()
{
return
"Parameters"
;
}
/*! this text is generated when the \exception command is used. */
/*! this text is generated when the \
\
exception command is used. */
virtual
QCString
trExceptions
()
{
return
"Exceptions"
;
}
...
...
@@ -1239,7 +1239,7 @@ class Translator
// new since 1.2.5
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a \bug item */
/*! Used as a marker that is put before a \
\
bug item */
virtual
QCString
trBug
()
{
return
"Bug"
;
...
...
src/translator_de.h
View file @
ce5e0dcf
...
...
@@ -638,7 +638,7 @@ class TranslatorGerman : public Translator
/*! this text is put before an include dependency graph */
virtual
QCString
trInclDepGraph
(
const
char
*
fName
)
{
return
(
QCString
)
"Include-Abhängikeitsdiagramm für "
+
fName
+
":"
;
return
(
QCString
)
"Include-Abhängi
g
keitsdiagramm für "
+
fName
+
":"
;
}
/*! header that is put before the list of constructor/destructors. */
virtual
QCString
trConstructorDocumentation
()
...
...
@@ -834,7 +834,7 @@ class TranslatorGerman : public Translator
"Die Rechtecke in obigem Graphen bedeuten:
\n
"
"<ul>
\n
"
"<li>Ein schwarz gefülltes Rechteck stellt die Struktur oder "
"Klasse dar, füdie der Graph erzeug wurde.
\n
"
"Klasse dar, fü
r
die der Graph erzeug wurde.
\n
"
"<li>Ein Rechteck mit schwarzem Rahmen kennzeichnet eine dokumentierte "
" Struktur oder Klasse.
\n
"
"<li>Ein Rechteck mit grauem Rahmen kennzeichnet eine undokumentierte "
...
...
@@ -850,10 +850,10 @@ class TranslatorGerman : public Translator
"zwischen zwei Klassen dar.
\n
"
"<li>Ein dunkelgrüner Pfeil stellt geschützte Vererbung dar.
\n
"
"<li>Ein dunkelroter Pfeil stellt private Vererbung dar.
\n
"
"<li>Ein gestrichelter violetter Pfeil beutet, dass eine Klasse in einer "
"<li>Ein gestrichelter violetter Pfeil be
de
utet, dass eine Klasse in einer "
"anderen enthalten ist oder von einer anderen benutzt wird. Am Pfeil "
"stehen die Variable(n), mit deren Hilfe auf die Struktur oder Klasse "
"an der Pfeilspize zugegriffen werden kann.
\n
"
"an der Pfeilspi
t
ze zugegriffen werden kann.
\n
"
"</ul>
\n
"
;
}
/*! text for the link to the legend page */
...
...
src/translator_fr.h
View file @
ce5e0dcf
...
...
@@ -31,6 +31,12 @@ class TranslatorFrench : public Translator
QCString
latexBabelPackage
()
{
return
"french"
;
}
/*! return the language charset. This will be used for the HTML output */
virtual
QCString
idLanguageCharset
()
{
return
"iso-8859-1"
;
}
/*! used in the compound documentation before a list of related functions. */
QCString
trRelatedFunctions
()
{
return
"Fonctions associées"
;
}
...
...
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