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