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
f4bab88a
Commit
f4bab88a
authored
Aug 03, 2004
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.3.8-20040803
parent
d7bf5675
Changes
40
Show whitespace changes
Inline
Side-by-side
Showing
40 changed files
with
535 additions
and
257 deletions
+535
-257
Doxyfile
Doxyfile
+1
-1
INSTALL
INSTALL
+2
-2
PLATFORMS
PLATFORMS
+1
-0
README
README
+2
-2
VERSION
VERSION
+1
-1
doxywizard.cpp
addon/doxywizard/doxywizard.cpp
+3
-1
configure
configure
+11
-2
Doxyfile
doc/Doxyfile
+2
-3
doxygen_manual.tex
doc/doxygen_manual.tex
+2
-2
index.doc
doc/index.doc
+4
-4
language.doc
doc/language.doc
+7
-7
pngrutil.c
libpng/pngrutil.c
+20
-16
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
qglobal.h
qtools/qglobal.h
+2
-0
compound.xsd
src/compound.xsd
+2
-0
compound_xsd.h
src/compound_xsd.h
+2
-0
docparser.cpp
src/docparser.cpp
+68
-38
docparser.h
src/docparser.h
+6
-4
doxygen.cpp
src/doxygen.cpp
+63
-38
entry.cpp
src/entry.cpp
+2
-0
entry.h
src/entry.h
+2
-0
filedef.cpp
src/filedef.cpp
+76
-63
filedef.h
src/filedef.h
+5
-3
htmldocvisitor.cpp
src/htmldocvisitor.cpp
+2
-2
htmlgen.cpp
src/htmlgen.cpp
+8
-6
memberdef.h
src/memberdef.h
+8
-0
pre.l
src/pre.l
+9
-6
scanner.l
src/scanner.l
+34
-42
tagreader.cpp
src/tagreader.cpp
+3
-1
translator_cn.h
src/translator_cn.h
+15
-2
translator_de.h
src/translator_de.h
+17
-2
translator_dk.h
src/translator_dk.h
+14
-1
translator_se.h
src/translator_se.h
+50
-1
util.cpp
src/util.cpp
+12
-6
xmlgen.cpp
src/xmlgen.cpp
+9
-0
app.t
tmake/lib/m68k-atari-mint-g++/app.t
+2
-0
lib.t
tmake/lib/m68k-atari-mint-g++/lib.t
+2
-0
subdirs.t
tmake/lib/m68k-atari-mint-g++/subdirs.t
+2
-0
tmake.conf
tmake/lib/m68k-atari-mint-g++/tmake.conf
+59
-0
qtools.dsp
wintools/qtools.dsp
+4
-0
No files found.
Doxyfile
View file @
f4bab88a
...
...
@@ -166,7 +166,7 @@ MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML =
YES
GENERATE_XML =
NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
...
...
INSTALL
View file @
f4bab88a
DOXYGEN Version 1.3.8
DOXYGEN Version 1.3.8
-20040803
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (
25 July
2004)
Dimitri van Heesch (
03 August
2004)
PLATFORMS
View file @
f4bab88a
...
...
@@ -13,6 +13,7 @@ irix-g++
irix-n32
linux-g++
macosx-c++
m68k-atari-mint-g++
netbsd-g++
openbsd-g++
osf1-cxx
...
...
README
View file @
f4bab88a
DOXYGEN Version 1.3.8
DOXYGEN Version 1.3.8
_20040803
Please read INSTALL for compilation instructions.
...
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (
25 July
2004)
Dimitri van Heesch (dimitri@stack.nl) (
03 August
2004)
VERSION
View file @
f4bab88a
1.3.8
1.3.8
-20040803
addon/doxywizard/doxywizard.cpp
View file @
f4bab88a
...
...
@@ -850,7 +850,7 @@ void MainWidget::launchWizard()
// step1
wizard
.
setProjectName
(
Config_getString
(
"PROJECT_NAME"
));
wizard
.
setProjectNumber
(
Config_getString
(
"PROJECT_NUMBER"
));
if
(
Config_getList
(
"INPUT"
).
count
()
==
1
)
if
(
Config_getList
(
"INPUT"
).
count
()
>
0
)
{
QString
dirName
=
Config_getList
(
"INPUT"
).
getFirst
();
QFileInfo
fi
(
dirName
);
...
...
@@ -1109,6 +1109,8 @@ void MainWidget::loadConfigFile()
if
(
!
fn
.
isEmpty
())
{
loadConfigFromFile
(
fn
);
// set current dir to where the config file is located
QDir
::
setCurrent
(
QFileInfo
(
fn
).
dirPath
(
TRUE
));
}
}
...
...
configure
View file @
f4bab88a
...
...
@@ -194,6 +194,9 @@ if test -z "$f_platform"; then
Cygwin:
*
)
f_platform
=
win32-g++
;;
*
MiNT:
*
)
f_platform
=
m68k-atari-mint-g++
;;
*
)
echo
echo
"Your platform was not recognised by this configure script"
...
...
@@ -431,6 +434,13 @@ HAVE_DOT = $f_dot
EOF
fi
if
test
"
$f_platform
"
=
"m68k-atari-mint-g++"
;
then
cat
>>
.makeconfig
<<
EOF
TMAKE += -unix
EOF
fi
touch
.tmakeconfig
if
test
"
$f_shared
"
=
NO
;
then
if
test
"
$f_platform
"
=
"osf1-cxx"
-o
"
$f_platform
"
=
"irix-n32"
;
then
...
...
@@ -526,8 +536,7 @@ done
echo
-n
" Generating src/lang_cfg.h..."
echo
$f_langs
|
$f_perl
-e
'@l=split(/,/,<STDIN>);
chomp @l;
@allowed=(NL,SE,CZ,FR,IT,DE,JP,JE,ES,FI,RU,HR,PL,PT,HU,KR,KE,RO,SI,CN,NO,BR,
DK,SK,UA,GR,TW,SR,CA,LT,ZA);
@allowed=(split(/,/,"NL,SE,CZ,FR,IT,DE,JP,JE,ES,FI,RU,HR,PL,PT,HU,KR,KE,RO,SI,CN,NO,BR,DK,SK,UA,GR,TW,SR,CA,LT,ZA"));
foreach my $elem (@l){
$elem =~ tr/a-z/A-Z/;
$r=0;
...
...
doc/Doxyfile
View file @
f4bab88a
...
...
@@ -33,10 +33,9 @@ CASE_SENSE_NAMES = NO
IMAGE_PATH = .
INPUT = index.doc install.doc starting.doc docblocks.doc lists.doc \
grouping.doc formulas.doc diagrams.doc preprocessing.doc \
external.doc faq.doc trouble.doc history.doc features.doc \
autolink.doc output.doc
external.doc faq.doc trouble.doc history.doc features.doc \
doxygen_usage.doc doxytag_usage.doc \
doxywizard_usage.doc \
installdox_usage.doc output.doc autolink.doc \
doxywizard_usage.doc installdox_usage.doc \
config.doc commands.doc htmlcmds.doc language.doc \
perlmod.doc perlmod_tree.doc arch.doc
FILE_PATTERNS = *.cpp *.h *.doc
...
...
doc/doxygen_manual.tex
View file @
f4bab88a
...
...
@@ -54,6 +54,8 @@ Written by Dimitri van Heesch\\[2ex]
\input
{
formulas
}
\input
{
diagrams
}
\input
{
preprocessing
}
\input
{
autolink
}
\input
{
output
}
\input
{
external
}
\input
{
faq
}
\input
{
trouble
}
...
...
@@ -64,8 +66,6 @@ Written by Dimitri van Heesch\\[2ex]
\input
{
doxytag
_
usage
}
\input
{
doxywizard
_
usage
}
\input
{
installdox
_
usage
}
\input
{
output
}
\input
{
autolink
}
\input
{
config
}
\input
{
commands
}
\input
{
htmlcmds
}
...
...
doc/index.doc
View file @
f4bab88a
...
...
@@ -71,6 +71,10 @@ The first part forms a user manual:
<li>Section \ref formulas shows how to insert formulas in the documentation.
<li>Section \ref diagrams describes the diagrams and graphs that doxygen can generate.
<li>Section \ref preprocessing explains how doxygen deals with macro definitions.
<li>Section \ref autolink shows how to put links to files, classes,
and members in the documentation.
<li>Section \ref output shows how to generate the various output formats
supported by doxygen.
<li>Section \ref external explains how to let doxygen create links to externally generated documentation.
<li>Section \ref faq gives answers to frequently asked questions.
<li>Section \ref trouble tells you what to do when you have problems.
...
...
@@ -87,10 +91,6 @@ The second part forms a reference manual:
<li>Section \ref doxywizard_usage shows how to use the \c doxywizard program.
<li>Section \ref installdox_usage shows how to use the \c installdox
script that is generated by doxygen if you use tag files.
<li>Section \ref output shows how to generate the various output formats
supported by doxygen.
<li>Section \ref autolink shows how to put links to files, classes,
and members in the documentation.
<li>Section \ref config shows how to fine-tune doxygen, so it
generates the documentation you want.
<li>Section \ref commands shows an overview of the special commands that can be
...
...
doc/language.doc
View file @
f4bab88a
...
...
@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other
than English (the default). The output language is chosen through the
configuration file (with default name and known as Doxyfile).
Currently (version 1.3.
7-20040719
), 30 languages
Currently (version 1.3.
8
), 30 languages
are supported (sorted alphabetically):
Afrikaans, Brazilian Portuguese, Catalan, Chinese, Chinese
Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French,
...
...
@@ -72,7 +72,7 @@ when the translator was updated.
<td>Chinese</td>
<td>Li Daobing<br>Wei Liu</td>
<td>lidaobing at gmail dot com<br>liuwei at asiainfo dot com</td>
<td>
1.3.08
</td>
<td>
up-to-date
</td>
</tr>
<tr bgcolor="#ffffff">
<td>Chinese Traditional</td>
...
...
@@ -126,7 +126,7 @@ when the translator was updated.
<td>German</td>
<td>Jens Seidel</td>
<td>jensseidel at users dot sf dot net</td>
<td>
1.3.8
</td>
<td>
up-to-date
</td>
</tr>
<tr bgcolor="#ffffff">
<td>Greek</td>
...
...
@@ -234,7 +234,7 @@ when the translator was updated.
<td>Swedish</td>
<td>Mikael Hallin</td>
<td>mikaelhallin at yahoo dot se</td>
<td>1.3.
3
</td>
<td>1.3.
8
</td>
</tr>
<tr bgcolor="#ffffff">
<td>Ukrainian</td>
...
...
@@ -263,7 +263,7 @@ when the translator was updated.
\hline
Catalan & Albert Mora & {\tt\tiny amora@iua.upf.es} & 1.2.17 \\
\hline
Chinese & Li Daobing & {\tt\tiny lidaobing@gmail.com} &
1.3.08
\\
Chinese & Li Daobing & {\tt\tiny lidaobing@gmail.com} &
up-to-date
\\
~ & Wei Liu & {\tt\tiny liuwei@asiainfo.com} & ~ \\
\hline
Chinese Traditional & Daniel YC Lin & {\tt\tiny daniel@twpda.com} & 1.3.8 \\
...
...
@@ -283,7 +283,7 @@ when the translator was updated.
\hline
French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.3.8 \\
\hline
German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} &
1.3.8
\\
German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} &
up-to-date
\\
\hline
Greek & Harry Kalogirou & {\tt\tiny harkal@rainbow.cs.unipi.gr} & 1.2.11 \\
\hline
...
...
@@ -326,7 +326,7 @@ when the translator was updated.
\hline
Spanish & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & 1.3.8 \\
\hline
Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.3.
3
\\
Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.3.
8
\\
\hline
Ukrainian & Olexij Tkatchenko & {\tt\tiny olexij.tkatchenko@gmx.de} & 1.2.11 \\
\hline
...
...
libpng/pngrutil.c
View file @
f4bab88a
...
...
@@ -790,16 +790,18 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
#endif
#if defined(PNG_READ_sRGB_SUPPORTED)
#undef png_abs
#define png_abs(x) (((x)>0)?(x):-(x))
if
(
info_ptr
->
valid
&
PNG_INFO_sRGB
)
{
if
(
abs
(
int_x_white
-
31270L
)
>
1000
||
abs
(
int_y_white
-
32900L
)
>
1000
||
abs
(
int_x_red
-
64000L
)
>
1000
||
abs
(
int_y_red
-
33000L
)
>
1000
||
abs
(
int_x_green
-
30000L
)
>
1000
||
abs
(
int_y_green
-
60000L
)
>
1000
||
abs
(
int_x_blue
-
15000L
)
>
1000
||
abs
(
int_y_blue
-
6000L
)
>
1000
)
if
(
png_
abs
(
int_x_white
-
31270L
)
>
1000
||
png_
abs
(
int_y_white
-
32900L
)
>
1000
||
png_
abs
(
int_x_red
-
64000L
)
>
1000
||
png_
abs
(
int_y_red
-
33000L
)
>
1000
||
png_
abs
(
int_x_green
-
30000L
)
>
1000
||
png_
abs
(
int_y_green
-
60000L
)
>
1000
||
png_
abs
(
int_x_blue
-
15000L
)
>
1000
||
png_
abs
(
int_y_blue
-
6000L
)
>
1000
)
{
png_warning
(
png_ptr
,
...
...
@@ -925,15 +927,17 @@ png_handle_sRGB(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
#ifdef PNG_READ_cHRM_SUPPORTED
#ifdef PNG_FIXED_POINT_SUPPORTED
#undef png_abs
#define png_abs(x) (((x)>0)?(x):-(x))
if
(
info_ptr
->
valid
&
PNG_INFO_cHRM
)
if
(
abs
(
info_ptr
->
int_x_white
-
31270L
)
>
1000
||
abs
(
info_ptr
->
int_y_white
-
32900L
)
>
1000
||
abs
(
info_ptr
->
int_x_red
-
64000L
)
>
1000
||
abs
(
info_ptr
->
int_y_red
-
33000L
)
>
1000
||
abs
(
info_ptr
->
int_x_green
-
30000L
)
>
1000
||
abs
(
info_ptr
->
int_y_green
-
60000L
)
>
1000
||
abs
(
info_ptr
->
int_x_blue
-
15000L
)
>
1000
||
abs
(
info_ptr
->
int_y_blue
-
6000L
)
>
1000
)
if
(
png_
abs
(
info_ptr
->
int_x_white
-
31270L
)
>
1000
||
png_
abs
(
info_ptr
->
int_y_white
-
32900L
)
>
1000
||
png_
abs
(
info_ptr
->
int_x_red
-
64000L
)
>
1000
||
png_
abs
(
info_ptr
->
int_y_red
-
33000L
)
>
1000
||
png_
abs
(
info_ptr
->
int_x_green
-
30000L
)
>
1000
||
png_
abs
(
info_ptr
->
int_y_green
-
60000L
)
>
1000
||
png_
abs
(
info_ptr
->
int_x_blue
-
15000L
)
>
1000
||
png_
abs
(
info_ptr
->
int_y_blue
-
6000L
)
>
1000
)
{
png_warning
(
png_ptr
,
"Ignoring incorrect cHRM value when sRGB is also present"
);
...
...
packages/rpm/doxygen.spec
View file @
f4bab88a
Summary: A documentation system for C/C++.
Name: doxygen
Version: 1.3.8
Version: 1.3.8
_20040803
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
...
...
qtools/qglobal.h
View file @
f4bab88a
...
...
@@ -132,6 +132,8 @@
#define _OS_CYGWIN_
#elif defined(__BEOS__)
#define _OS_BEOS_
#elif defined(__MINT__)
#define _OS_MINT_
#else
#error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com"
#endif
...
...
src/compound.xsd
View file @
f4bab88a
...
...
@@ -119,6 +119,8 @@
<xsd:element
name=
"definition"
minOccurs=
"0"
/>
<xsd:element
name=
"argsstring"
minOccurs=
"0"
/>
<xsd:element
name=
"name"
/>
<xsd:element
name=
"read"
minOccurs=
"0"
/>
<xsd:element
name=
"write"
minOccurs=
"0"
/>
<xsd:element
name=
"reimplements"
type=
"reimplementType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xsd:element
name=
"reimplementedby"
type=
"reimplementType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xsd:element
name=
"param"
type=
"paramType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
...
...
src/compound_xsd.h
View file @
f4bab88a
...
...
@@ -119,6 +119,8 @@
" <xsd:element name=
\"
definition
\"
minOccurs=
\"
0
\"
/>
\n
"
" <xsd:element name=
\"
argsstring
\"
minOccurs=
\"
0
\"
/>
\n
"
" <xsd:element name=
\"
name
\"
/>
\n
"
" <xsd:element name=
\"
read
\"
minOccurs=
\"
0
\"
/>
\n
"
" <xsd:element name=
\"
write
\"
minOccurs=
\"
0
\"
/>
\n
"
" <xsd:element name=
\"
reimplements
\"
type=
\"
reimplementType
\"
minOccurs=
\"
0
\"
maxOccurs=
\"
unbounded
\"
/>
\n
"
" <xsd:element name=
\"
reimplementedby
\"
type=
\"
reimplementType
\"
minOccurs=
\"
0
\"
maxOccurs=
\"
unbounded
\"
/>
\n
"
" <xsd:element name=
\"
param
\"
type=
\"
paramType
\"
minOccurs=
\"
0
\"
maxOccurs=
\"
unbounded
\"
/>
\n
"
...
...
src/docparser.cpp
View file @
f4bab88a
...
...
@@ -667,6 +667,48 @@ static void handleInitialStyleCommands(DocPara *parent,QList<DocNode> &children)
}
}
static
int
handleAHref
(
DocNode
*
parent
,
QList
<
DocNode
>
&
children
,
const
HtmlAttribList
&
tagHtmlAttribs
)
{
HtmlAttribListIterator
li
(
tagHtmlAttribs
);
HtmlAttrib
*
opt
;
int
index
=
0
;
int
retval
=
RetVal_OK
;
for
(
li
.
toFirst
();(
opt
=
li
.
current
());
++
li
,
++
index
)
{
if
(
opt
->
name
==
"name"
)
// <a name=label> tag
{
if
(
!
opt
->
value
.
isEmpty
())
{
DocAnchor
*
anc
=
new
DocAnchor
(
parent
,
opt
->
value
,
TRUE
);
children
.
append
(
anc
);
break
;
// stop looking for other tag attribs
}
else
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: found <a> tag with name option but without value!"
);
}
}
else
if
(
opt
->
name
==
"href"
)
// <a href=url>..</a> tag
{
// copy attributes
HtmlAttribList
attrList
=
tagHtmlAttribs
;
// and remove the href attribute
bool
result
=
attrList
.
remove
(
index
);
ASSERT
(
result
);
DocHRef
*
href
=
new
DocHRef
(
parent
,
attrList
,
opt
->
value
);
children
.
append
(
href
);
g_insideHtmlLink
=
TRUE
;
retval
=
href
->
parse
();
g_insideHtmlLink
=
FALSE
;
break
;
}
else
// unsupported option for tag a
{
}
}
return
retval
;
}
const
char
*
DocStyleChange
::
styleString
()
const
{
switch
(
m_style
)
...
...
@@ -1924,6 +1966,11 @@ endlink:
//---------------------------------------------------------------------------
DocDotFile
::
DocDotFile
(
DocNode
*
parent
,
const
QString
&
name
)
:
m_parent
(
parent
),
m_name
(
name
),
m_relPath
(
g_relPath
)
{
}
void
DocDotFile
::
parse
()
{
g_nodeStack
.
push
(
this
);
...
...
@@ -2001,6 +2048,12 @@ void DocDotFile::parse()
//---------------------------------------------------------------------------
DocImage
::
DocImage
(
DocNode
*
parent
,
const
HtmlAttribList
&
attribs
,
const
QString
&
name
,
Type
t
)
:
m_parent
(
parent
),
m_attribs
(
attribs
),
m_name
(
name
),
m_type
(
t
),
m_relPath
(
g_relPath
)
{
}
void
DocImage
::
parse
()
{
g_nodeStack
.
push
(
this
);
...
...
@@ -2134,11 +2187,24 @@ int DocHtmlHeader::parse()
}
goto
endheader
;
}
else
if
(
tagId
==
HTML_A
)
{
if
(
!
g_token
->
endTag
)
{
handleAHref
(
this
,
m_children
,
g_token
->
attribs
);
}
}
else
if
(
tagId
==
HTML_BR
)
{
DocLineBreak
*
lb
=
new
DocLineBreak
(
this
);
m_children
.
append
(
lb
);
}
else
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: Unexpected html tag <%s%s> found within <h%d> context"
,
g_token
->
endTag
?
"/"
:
""
,
g_token
->
name
.
data
(),
m_level
);
}
}
break
;
case
TK_SYMBOL
:
...
...
@@ -4042,44 +4108,7 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
}
break
;
case
HTML_A
:
{
HtmlAttribListIterator
li
(
tagHtmlAttribs
);
HtmlAttrib
*
opt
;
int
index
=
0
;
for
(
li
.
toFirst
();(
opt
=
li
.
current
());
++
li
,
++
index
)
{
if
(
opt
->
name
==
"name"
)
// <a name=label> tag
{
if
(
!
opt
->
value
.
isEmpty
())
{
DocAnchor
*
anc
=
new
DocAnchor
(
this
,
opt
->
value
,
TRUE
);
m_children
.
append
(
anc
);
break
;
// stop looking for other tag attribs
}
else
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: found <a> tag with name option but without value!"
);
}
}
else
if
(
opt
->
name
==
"href"
)
// <a href=url>..</a> tag
{
// copy attributes
HtmlAttribList
attrList
=
tagHtmlAttribs
;
// and remove the href attribute
bool
result
=
attrList
.
remove
(
index
);
ASSERT
(
result
);
DocHRef
*
href
=
new
DocHRef
(
this
,
attrList
,
opt
->
value
);
m_children
.
append
(
href
);
g_insideHtmlLink
=
TRUE
;
retval
=
href
->
parse
();
g_insideHtmlLink
=
FALSE
;
break
;
}
else
// unsupported option for tag a
{
}
}
}
retval
=
handleAHref
(
this
,
m_children
,
tagHtmlAttribs
);
break
;
case
HTML_H1
:
retval
=
handleHtmlHeader
(
tagHtmlAttribs
,
1
);
...
...
@@ -4273,6 +4302,7 @@ int DocPara::handleHtmlEndTag(const QString &tagName)
break
;
default
:
// we should not get here!
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Unexpected end tag %s
\n
"
,
tagName
.
data
());
ASSERT
(
0
);
break
;
}
...
...
src/docparser.h
View file @
f4bab88a
...
...
@@ -568,8 +568,7 @@ class DocImage : public CompAccept<DocImage>, public DocNode
{
public
:
enum
Type
{
Html
,
Latex
,
Rtf
};
DocImage
(
DocNode
*
parent
,
const
HtmlAttribList
&
attribs
,
const
QString
&
name
,
Type
t
)
:
m_parent
(
parent
),
m_attribs
(
attribs
),
m_name
(
name
),
m_type
(
t
)
{}
DocImage
(
DocNode
*
parent
,
const
HtmlAttribList
&
attribs
,
const
QString
&
name
,
Type
t
);
Kind
kind
()
const
{
return
Kind_Image
;
}
Type
type
()
const
{
return
m_type
;
}
QString
name
()
const
{
return
m_name
;
}
...
...
@@ -577,6 +576,7 @@ class DocImage : public CompAccept<DocImage>, public DocNode
bool
hasCaption
()
const
{
return
!
m_children
.
isEmpty
();
}
QString
width
()
const
{
return
m_width
;
}
QString
height
()
const
{
return
m_height
;
}
QString
relPath
()
const
{
return
m_relPath
;
}
const
HtmlAttribList
&
attribs
()
const
{
return
m_attribs
;
}
void
accept
(
DocVisitor
*
v
)
{
CompAccept
<
DocImage
>::
accept
(
this
,
v
);
}
void
parse
();
...
...
@@ -588,18 +588,19 @@ class DocImage : public CompAccept<DocImage>, public DocNode
Type
m_type
;
QString
m_width
;
QString
m_height
;
QString
m_relPath
;
};
/*! @brief Node representing a dot file */
class
DocDotFile
:
public
CompAccept
<
DocDotFile
>
,
public
DocNode
{
public
:
DocDotFile
(
DocNode
*
parent
,
const
QString
&
name
)
:
m_parent
(
parent
),
m_name
(
name
)
{
}
DocDotFile
(
DocNode
*
parent
,
const
QString
&
name
);
void
parse
();
Kind
kind
()
const
{
return
Kind_DotFile
;
}
QString
name
()
const
{
return
m_name
;
}
QString
file
()
const
{
return
m_file
;
}
QString
relPath
()
const
{
return
m_relPath
;
}
bool
hasCaption
()
const
{
return
!
m_children
.
isEmpty
();
}
QString
width
()
const
{
return
m_width
;
}
QString
height
()
const
{
return
m_height
;
}
...
...
@@ -609,6 +610,7 @@ class DocDotFile : public CompAccept<DocDotFile>, public DocNode
DocNode
*
m_parent
;
QString
m_name
;
QString
m_file
;
QString
m_relPath
;
QString
m_width
;
QString
m_height
;
};
...
...
src/doxygen.cpp
View file @
f4bab88a
...
...
@@ -1081,8 +1081,9 @@ static void findUsingDirectives(Entry *root)
{
//printf("Found using directive %s at line %d of %s\n",
// root->name.data(),root->startLine,root->fileName.data());
QCString
name
=
substitute
(
root
->
name
,
"."
,
"::"
);
bool
ambig
;
if
(
!
root
->
name
.
isEmpty
())
if
(
!
name
.
isEmpty
())
{
NamespaceDef
*
usingNd
=
0
;
NamespaceDef
*
nd
=
0
;
...
...
@@ -1109,8 +1110,8 @@ static void findUsingDirectives(Entry *root)
{
QCString
scope
=
scopeOffset
>
0
?
nsName
.
left
(
scopeOffset
)
+
"::"
:
QCString
();
usingNd
=
getResolvedNamespace
(
scope
+
root
->
name
);
//printf("Trying with scope=`%s' usingNd=%p\n",(scope+
root->
name).data(),usingNd);
usingNd
=
getResolvedNamespace
(
scope
+
name
);
//printf("Trying with scope=`%s' usingNd=%p\n",(scope+name).data(),usingNd);
if
(
scopeOffset
==
0
)
{
scopeOffset
=-
1
;
...
...
@@ -1121,7 +1122,7 @@ static void findUsingDirectives(Entry *root)
}
}
while
(
scopeOffset
>=
0
&&
usingNd
==
0
);
//printf("%s -> %p\n",
root->
name.data(),usingNd);
//printf("%s -> %p\n",name.data(),usingNd);
// add the namespace the correct scope
if
(
usingNd
)
...
...
@@ -1141,7 +1142,7 @@ static void findUsingDirectives(Entry *root)
else
// unknown namespace, but add it anyway.
{
NamespaceDef
*
nd
=
new
NamespaceDef
(
root
->
fileName
,
root
->
startLine
,
root
->
name
);
root
->
fileName
,
root
->
startLine
,
name
);
nd
->
setDocumentation
(
root
->
doc
,
root
->
docFile
,
root
->
docLine
);
// copy docs to definition
nd
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
nd
->
addSectionsToDefinition
(
root
->
anchors
);
...
...
@@ -1169,7 +1170,7 @@ static void findUsingDirectives(Entry *root)
nd
->
setBriefDescription
(
root
->
brief
,
root
->
briefFile
,
root
->
briefLine
);
nd
->
insertUsedFile
(
root
->
fileName
);
// add class to the list
Doxygen
::
namespaceSDict
.
inSort
(
root
->
name
,
nd
);
Doxygen
::
namespaceSDict
.
inSort
(
name
,
nd
);
nd
->
setRefItems
(
root
->
sli
);
}
}
...
...
@@ -1490,6 +1491,8 @@ static MemberDef *addVariableToClass(
md
->
setMaxInitLines
(
root
->
initLines
);
md
->
setMemberGroupId
(
root
->
mGrpId
);
md
->
setMemberSpecifiers
(
root
->
memSpec
);
md
->
setReadAccessor
(
root
->
read
);
md
->
setWriteAccessor
(
root
->
write
);
md
->
enableCallGraph
(
root
->
callGraph
);
addMemberToGroups
(
root
,
md
);
//if (root->mGrpId!=-1)
...
...
@@ -2928,18 +2931,18 @@ static QDict<int> *getTemplateArgumentsInName(ArgumentList *templateArguments,co
return
templateNames
;
}
/*! Searches a class from within
the context of
\a cd and returns its
/*! Searches a class from within
\a context and
\a cd and returns its
* definition if found (otherwise 0 is returned).
* This function differs from getResolvedClass in that it also takes
* using declarations and definition into account.
*/
static
ClassDef
*
findClassWithinClassContext
(
ClassDef
*
cd
,
const
QCString
&
name
)
static
ClassDef
*
findClassWithinClassContext
(
Definition
*
context
,
ClassDef
*
cd
,
const
QCString
&
name
)
{
#if 0
ClassDef *result=0;
FileDef *fd=cd->getFileDef();
// try using of namespaces in namespace scope
NamespaceDef *nd=cd->getNamespaceDef();
FileDef
*
fd
=
cd
->
getFileDef
();
if (nd) // class is inside a namespace
{
QCString fName = nd->name()+"::"+name;
...
...
@@ -3029,8 +3032,21 @@ static ClassDef *findClassWithinClassContext(ClassDef *cd,const QCString &name)
}
}
}
#endif
return
getResolvedClass
(
cd
,
fd
,
name
);
FileDef
*
fd
=
cd
->
getFileDef
();
ClassDef
*
result
=
0
;
if
(
context
)
{
result
=
getResolvedClass
(
context
,
0
,
name
);
//printf("** Trying to find %s within context %s result=%s\n",
// name.data(),context->name().data(),result ? result->name().data() : "<none>");
}
if
(
result
==
0
)
{
result
=
getResolvedClass
(
cd
,
fd
,
name
);
}
return
result
;
}
enum
FindBaseClassRelation_Mode
...
...
@@ -3042,6 +3058,7 @@ enum FindBaseClassRelation_Mode
static
bool
findClassRelation
(
Entry
*
root
,
Definition
*
context
,
ClassDef
*
cd
,
BaseInfo
*
bi
,
QDict
<
int
>
*
templateNames
,
...
...
@@ -3052,6 +3069,7 @@ static bool findClassRelation(
static
void
findUsedClassesForClass
(
Entry
*
root
,
Definition
*
context
,
ClassDef
*
masterCd
,
ClassDef
*
instanceCd
,
bool
isArtificial
,
...
...
@@ -3072,6 +3090,7 @@ static void findUsedClassesForClass(Entry *root,
MemberDef
*
md
=
mi
->
memberDef
;
if
(
md
->
isVariable
())
// for each member variable in this class
{
//printf("Found variable %s in class %s\n",md->name().data(),masterCd->name().data());
QCString
type
=
removeRedundantWhiteSpace
(
md
->
typeString
());
int
pos
=
0
;
QCString
usedClassName
;
...
...
@@ -3082,10 +3101,10 @@ static void findUsedClassesForClass(Entry *root,
{
type
=
substituteTemplateArgumentsInString
(
type
,
formalArgs
,
actualArgs
);
}
//printf("
findUsedClassesForClass(%s)=%s\n",masterCd->name().data()
,type.data());
//printf("
template substitution gives=%s\n"
,type.data());
while
(
!
found
&&
extractClassNameFromType
(
type
,
pos
,
usedClassName
,
templSpec
))
{
//printf("
F
ound used class %s\n",usedClassName.data());
//printf("
f
ound used class %s\n",usedClassName.data());
// the name could be a type definition, resolve it
QCString
typeName
=
resolveTypeDef
(
masterCd
,
usedClassName
);
//printf("*** Found resolved class %s for %s\n",typeName.data(),usedClassName.data());
...
...
@@ -3105,8 +3124,8 @@ static void findUsedClassesForClass(Entry *root,
replaceNamespaceAliases
(
usedClassName
,
si
);
}
// add any template arguments to the class
QCString
usedName
=
usedClassName
+
templSpec
;
//printf("usedName=%s\n",usedName.data());
QCString
usedName
=
removeRedundantWhiteSpace
(
usedClassName
+
templSpec
)
;
//printf("
usedName=%s\n",usedName.data());
bool
delTempNames
=
FALSE
;
if
(
templateNames
==
0
)
...
...
@@ -3115,7 +3134,7 @@ static void findUsedClassesForClass(Entry *root,
delTempNames
=
TRUE
;
}
BaseInfo
bi
(
usedName
,
Public
,
Normal
);
findClassRelation
(
root
,
instanceCd
,
&
bi
,
templateNames
,
TemplateInstances
,
isArtificial
);
findClassRelation
(
root
,
context
,
instanceCd
,
&
bi
,
templateNames
,
TemplateInstances
,
isArtificial
);
if
(
masterCd
->
templateArguments
())
{
...
...
@@ -3150,8 +3169,9 @@ static void findUsedClassesForClass(Entry *root,
if
(
!
found
)
{
ClassDef
*
usedCd
=
findClassWithinClassContext
(
masterCd
,
usedName
);
//printf("Looking for used class: result=%p master=%p\n",usedCd,masterCd);
ClassDef
*
usedCd
=
findClassWithinClassContext
(
context
,
masterCd
,
usedName
);
//printf("Looking for used class %s: result=%s master=%s\n",
// usedName.data(),usedCd?usedCd->name().data():"<none>",masterCd?masterCd->name().data():"<none>");
if
(
usedCd
)
{
...
...
@@ -3197,6 +3217,7 @@ static void findUsedClassesForClass(Entry *root,
static
void
findBaseClassesForClass
(
Entry
*
root
,
Definition
*
context
,
ClassDef
*
masterCd
,
ClassDef
*
instanceCd
,
FindBaseClassRelation_Mode
mode
,
...
...
@@ -3235,18 +3256,18 @@ static void findBaseClassesForClass(
if
(
mode
==
DocumentedOnly
)
{
// find a documented base class in the correct scope
if
(
!
findClassRelation
(
root
,
instanceCd
,
&
tbi
,
templateNames
,
DocumentedOnly
,
isArtificial
))
if
(
!
findClassRelation
(
root
,
context
,
instanceCd
,
&
tbi
,
templateNames
,
DocumentedOnly
,
isArtificial
))
{
if
(
!
Config_getBool
(
"HIDE_UNDOC_RELATIONS"
))
{
// no documented base class -> try to find an undocumented one
findClassRelation
(
root
,
instanceCd
,
&
tbi
,
templateNames
,
Undocumented
,
isArtificial
);
findClassRelation
(
root
,
context
,
instanceCd
,
&
tbi
,
templateNames
,
Undocumented
,
isArtificial
);
}
}
}
else
if
(
mode
==
TemplateInstances
)
{
findClassRelation
(
root
,
instanceCd
,
&
tbi
,
templateNames
,
TemplateInstances
,
isArtificial
);
findClassRelation
(
root
,
context
,
instanceCd
,
&
tbi
,
templateNames
,
TemplateInstances
,
isArtificial
);
}
if
(
delTempNames
)
{
...
...
@@ -3260,6 +3281,7 @@ static void findBaseClassesForClass(
//----------------------------------------------------------------------
static
bool
findTemplateInstanceRelation
(
Entry
*
root
,
Definition
*
context
,
ClassDef
*
templateClass
,
const
QCString
&
templSpec
,
QDict
<
int
>
*
templateNames
,
bool
isArtificial
)
...
...
@@ -3302,10 +3324,10 @@ static bool findTemplateInstanceRelation(Entry *root,
Debug
::
print
(
Debug
::
Classes
,
0
,
" template root found %s!
\n
"
,
templateRoot
->
name
.
data
());
ArgumentList
*
templArgs
=
new
ArgumentList
;
stringToArgumentList
(
templSpec
,
templArgs
);
findBaseClassesForClass
(
templateRoot
,
templateClass
,
instanceClass
,
findBaseClassesForClass
(
templateRoot
,
context
,
templateClass
,
instanceClass
,
TemplateInstances
,
isArtificial
,
templArgs
,
templateNames
);
findUsedClassesForClass
(
templateRoot
,
templateClass
,
instanceClass
,
findUsedClassesForClass
(
templateRoot
,
context
,
templateClass
,
instanceClass
,
isArtificial
,
templArgs
,
templateNames
);
delete
templArgs
;
}
...
...
@@ -3339,6 +3361,7 @@ static bool isRecursiveBaseClass(const QCString &scope,const QCString &name)
static
bool
findClassRelation
(
Entry
*
root
,
Definition
*
context
,
ClassDef
*
cd
,
BaseInfo
*
bi
,
QDict
<
int
>
*
templateNames
,
...
...
@@ -3416,10 +3439,10 @@ static bool findClassRelation(
(
bi
->
virt
==
Normal
)
?
"normal"
:
"virtual"
);
int
i
;
int
si
=
baseClassName
.
findRev
(
"::"
);
int
i
=
baseClassName
.
find
(
'<'
)
;
int
si
=
baseClassName
.
findRev
(
"::"
,
i
==-
1
?
baseClassName
.
length
()
:
i
);
if
(
si
==-
1
)
si
=
0
;
if
(
baseClass
==
0
&&
(
i
=
baseClassName
.
find
(
'<'
,
si
))
!=-
1
)
if
(
baseClass
==
0
&&
i
!=-
1
)
// base class has template specifiers
{
// TODO: here we should try to find the correct template specialization
...
...
@@ -3467,7 +3490,7 @@ static bool findClassRelation(
//NamespaceDef *nd=cd->getNamespaceDef();
if
(
!
found
)
{
baseClass
=
findClassWithinClassContext
(
cd
,
baseClassName
);
baseClass
=
findClassWithinClassContext
(
c
ontext
,
c
d
,
baseClassName
);
//printf("findClassWithinClassContext(%s,%s)=%p\n",
// cd->name().data(),baseClassName.data(),baseClass);
found
=
baseClass
!=
0
&&
baseClass
!=
cd
;
...
...
@@ -3490,7 +3513,7 @@ static bool findClassRelation(
// relations.
if
(
!
templSpec
.
isEmpty
()
&&
mode
==
TemplateInstances
)
{
findTemplateInstanceRelation
(
root
,
baseClass
,
templSpec
,
templateNames
,
isArtificial
);
findTemplateInstanceRelation
(
root
,
context
,
baseClass
,
templSpec
,
templateNames
,
isArtificial
);
}
else
if
(
mode
==
DocumentedOnly
)
{
...
...
@@ -3643,7 +3666,7 @@ static void findInheritedTemplateInstances()
if
((
cd
=
getClass
(
bName
)))
{
//printf("Class %s %d\n",cd->name().data(),root->extends->count());
findBaseClassesForClass
(
root
,
cd
,
cd
,
TemplateInstances
,
FALSE
);
findBaseClassesForClass
(
root
,
cd
,
cd
,
cd
,
TemplateInstances
,
FALSE
);
}
}
}
...
...
@@ -3663,7 +3686,7 @@ static void findUsedTemplateInstances()
Debug
::
print
(
Debug
::
Classes
,
0
,
" Class %s :
\n
"
,
bName
.
data
());
if
((
cd
=
getClass
(
bName
)))
{
findUsedClassesForClass
(
root
,
cd
,
cd
,
TRUE
);
findUsedClassesForClass
(
root
,
cd
,
cd
,
cd
,
TRUE
);
}
}
}
...
...
@@ -3683,7 +3706,7 @@ static void computeClassRelations()
Debug
::
print
(
Debug
::
Classes
,
0
,
" Class %s :
\n
"
,
bName
.
data
());
if
((
cd
=
getClass
(
bName
)))
{
findBaseClassesForClass
(
root
,
cd
,
cd
,
DocumentedOnly
,
FALSE
);
findBaseClassesForClass
(
root
,
cd
,
cd
,
cd
,
DocumentedOnly
,
FALSE
);
}
if
((
cd
==
0
||
(
!
cd
->
hasDocumentation
()
&&
!
cd
->
isReference
()))
&&
bName
.
right
(
2
)
!=
"::"
)
...
...
@@ -3762,10 +3785,10 @@ static void computeTemplateClassRelations()
tbi
.
name
=
substituteTemplateArgumentsInString
(
bi
->
name
,
tl
,
templArgs
);
// find a documented base class in the correct scope
if
(
!
findClassRelation
(
root
,
tcd
,
&
tbi
,
actualTemplateNames
,
DocumentedOnly
,
FALSE
))
if
(
!
findClassRelation
(
root
,
cd
,
tcd
,
&
tbi
,
actualTemplateNames
,
DocumentedOnly
,
FALSE
))
{
// no documented base class -> try to find an undocumented one
findClassRelation
(
root
,
tcd
,
&
tbi
,
actualTemplateNames
,
Undocumented
,
FALSE
);
findClassRelation
(
root
,
cd
,
tcd
,
&
tbi
,
actualTemplateNames
,
Undocumented
,
FALSE
);
}
delete
actualTemplateNames
;
}
...
...
@@ -6194,14 +6217,15 @@ static void findSectionsInDocumentation()
static
void
flushCachedTemplateRelations
()
{
// remove all references to template classes from the cache
// as there can be new template instances that should be linked
// to instead.
// remove all references to classes from the cache
// as there can be new template instances in the inheritance path
// to this class. Optimization: only remove those classes that
// have inheritance instances as direct or indirect sub classes.
QCacheIterator
<
LookupInfo
>
ci
(
Doxygen
::
lookupCache
);
LookupInfo
*
li
=
0
;
for
(
ci
.
toFirst
();(
li
=
ci
.
current
());
++
ci
)
{
if
(
li
->
classDef
&&
li
->
classDef
->
isTemplate
()
)
if
(
li
->
classDef
)
{
Doxygen
::
lookupCache
.
remove
(
ci
.
currentKey
());
}
...
...
@@ -8244,6 +8268,7 @@ void parseInput()
msg
(
"Building file list...
\n
"
);
buildFileList
(
root
);
//generateFileTree();
msg
(
"Searching for included using directives...
\n
"
);
findIncludedUsingDirectives
();
...
...
src/entry.cpp
View file @
f4bab88a
...
...
@@ -70,6 +70,8 @@ Entry::Entry(const Entry &e)
docFile
=
e
.
docFile
.
copy
();
relates
=
e
.
relates
.
copy
();
relatesDup
=
e
.
relatesDup
;
read
=
e
.
read
.
copy
();
write
=
e
.
write
.
copy
();
brief
=
e
.
brief
.
copy
();
briefLine
=
e
.
briefLine
;
briefFile
=
e
.
briefFile
.
copy
();
...
...
src/entry.h
View file @
f4bab88a
...
...
@@ -289,6 +289,8 @@ class Entry
QCString
inbodyFile
;
//!< file in which the body doc was found
QCString
relates
;
//!< related class (doc block)
bool
relatesDup
;
//!< keep duplicate doc in original file also
QCString
read
;
//!< property read accessor
QCString
write
;
//!< property write accessor
QCString
inside
;
//!< name of the class in which documents are found
QCString
exception
;
//!< throw specification
int
bodyLine
;
//!< line number of the definition in the source
...
...
src/filedef.cpp
View file @
f4bab88a
...
...
@@ -240,6 +240,12 @@ void FileDef::writeDocumentation(OutputList &ol)
ol
.
startTextBlock
();
writeDetailedDocumentation
(
ol
);
ol
.
endTextBlock
();
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
newParagraph
();
ol
.
popGeneratorState
();
}
else
if
(
!
briefDescription
().
isEmpty
())
{
...
...
@@ -275,11 +281,15 @@ void FileDef::writeDocumentation(OutputList &ol)
fd
->
name
().
right
(
5
)
==
".java"
;
}
ol
.
startTypewriter
();
if
(
isIDLorJava
)
if
(
isIDLorJava
)
// IDL/Java include
{
ol
.
docify
(
"import "
);
}
else
else
if
(
ii
->
imported
)
// Objective-C include
{
ol
.
docify
(
"#import "
);
}
else
// C/C++ include
{
ol
.
docify
(
"#include "
);
}
...
...
@@ -303,11 +313,12 @@ void FileDef::writeDocumentation(OutputList &ol)
if
(
!
Config_getString
(
"GENERATE_TAGFILE"
).
isEmpty
()
&&
!
fd
->
isReference
())
{
const
char
*
locStr
=
(
ii
->
local
||
isIDLorJava
)
?
"yes"
:
"no"
;
const
char
*
impStr
=
(
ii
->
imported
||
isIDLorJava
)
?
"yes"
:
"no"
;
Doxygen
::
tagFile
<<
" <includes id=
\"
"
<<
convertToXML
(
fd
->
getOutputFileBase
())
<<
"
\"
name=
\"
"
<<
convertToXML
(
fd
->
name
())
<<
"
\"
local=
\"
"
<<
locStr
<<
"
\"
>"
<<
convertToXML
(
fd
->
getOutputFileBase
())
<<
"
\"
"
<<
"
name=
\"
"
<<
convertToXML
(
fd
->
name
())
<<
"
\"
"
<<
"local=
\"
"
<<
locStr
<<
"
\"
"
<<
"
imported=
\"
"
<<
impStr
<<
"
\"
>"
<<
convertToXML
(
ii
->
includeName
)
<<
"</includes>"
<<
endl
;
...
...
@@ -543,66 +554,30 @@ void FileDef::insertMember(MemberDef *md)
{
case
MemberDef
:
:
Variable
:
case
MemberDef
:
:
Property
:
if
(
sortBriefDocs
)
decVarMembers
.
inSort
(
md
);
else
decVarMembers
.
append
(
md
);
if
(
sortMemberDocs
)
docVarMembers
.
inSort
(
md
);
else
docVarMembers
.
append
(
md
);
if
(
sortBriefDocs
)
decVarMembers
.
inSort
(
md
);
else
decVarMembers
.
append
(
md
);
if
(
sortMemberDocs
)
docVarMembers
.
inSort
(
md
);
else
docVarMembers
.
append
(
md
);
break
;
case
MemberDef
:
:
Function
:
if
(
sortBriefDocs
)
decFuncMembers
.
inSort
(
md
);
else
decFuncMembers
.
append
(
md
);
if
(
sortMemberDocs
)
docFuncMembers
.
inSort
(
md
);
else
docFuncMembers
.
append
(
md
);
if
(
sortBriefDocs
)
decFuncMembers
.
inSort
(
md
);
else
decFuncMembers
.
append
(
md
);
if
(
sortMemberDocs
)
docFuncMembers
.
inSort
(
md
);
else
docFuncMembers
.
append
(
md
);
break
;
case
MemberDef
:
:
Typedef
:
if
(
sortBriefDocs
)
decTypedefMembers
.
inSort
(
md
);
else
decTypedefMembers
.
append
(
md
);
if
(
sortMemberDocs
)
docTypedefMembers
.
inSort
(
md
);
else
docTypedefMembers
.
append
(
md
);
if
(
sortBriefDocs
)
decTypedefMembers
.
inSort
(
md
);
else
decTypedefMembers
.
append
(
md
);
if
(
sortMemberDocs
)
docTypedefMembers
.
inSort
(
md
);
else
docTypedefMembers
.
append
(
md
);
break
;
case
MemberDef
:
:
Enumeration
:
if
(
sortBriefDocs
)
decEnumMembers
.
inSort
(
md
);
else
decEnumMembers
.
append
(
md
);
if
(
sortMemberDocs
)
docEnumMembers
.
inSort
(
md
);
else
docEnumMembers
.
append
(
md
);
if
(
sortBriefDocs
)
decEnumMembers
.
inSort
(
md
);
else
decEnumMembers
.
append
(
md
);
if
(
sortMemberDocs
)
docEnumMembers
.
inSort
(
md
);
else
docEnumMembers
.
append
(
md
);
break
;
case
MemberDef
:
:
EnumValue
:
// enum values are shown inside their enums
break
;
case
MemberDef
:
:
Prototype
:
if
(
sortBriefDocs
)
decProtoMembers
.
inSort
(
md
);
else
decProtoMembers
.
append
(
md
);
if
(
sortMemberDocs
)
docProtoMembers
.
inSort
(
md
);
else
docProtoMembers
.
append
(
md
);
if
(
sortBriefDocs
)
decProtoMembers
.
inSort
(
md
);
else
decProtoMembers
.
append
(
md
);
if
(
sortMemberDocs
)
docProtoMembers
.
inSort
(
md
);
else
docProtoMembers
.
append
(
md
);
break
;
case
MemberDef
:
:
Define
:
if
(
sortBriefDocs
)
decDefineMembers
.
inSort
(
md
);
else
decDefineMembers
.
append
(
md
);
if
(
sortMemberDocs
)
docDefineMembers
.
inSort
(
md
);
else
docDefineMembers
.
append
(
md
);
if
(
sortBriefDocs
)
decDefineMembers
.
inSort
(
md
);
else
decDefineMembers
.
append
(
md
);
if
(
sortMemberDocs
)
docDefineMembers
.
inSort
(
md
);
else
docDefineMembers
.
append
(
md
);
break
;
default
:
err
(
"FileDef::insertMembers(): "
...
...
@@ -693,7 +668,8 @@ void FileDef::addUsingDeclaration(Definition *d)
}
}
void
FileDef
::
addIncludeDependency
(
FileDef
*
fd
,
const
char
*
incName
,
bool
local
)
void
FileDef
::
addIncludeDependency
(
FileDef
*
fd
,
const
char
*
incName
,
bool
local
,
bool
imported
)
{
//printf("FileDef::addIncludeDependency(%p,%s,%d)\n",fd,incName,local);
QCString
iName
=
fd
?
fd
->
absFilePath
().
data
()
:
incName
;
...
...
@@ -703,6 +679,7 @@ void FileDef::addIncludeDependency(FileDef *fd,const char *incName,bool local)
ii
->
fileDef
=
fd
;
ii
->
includeName
=
incName
;
ii
->
local
=
local
;
ii
->
imported
=
imported
;
includeList
->
append
(
ii
);
includeDict
->
insert
(
iName
,
ii
);
}
...
...
@@ -759,7 +736,8 @@ void FileDef::addIncludedUsingDirectives()
}
void
FileDef
::
addIncludedByDependency
(
FileDef
*
fd
,
const
char
*
incName
,
bool
local
)
void
FileDef
::
addIncludedByDependency
(
FileDef
*
fd
,
const
char
*
incName
,
bool
local
,
bool
imported
)
{
//printf("FileDef::addIncludedByDependency(%p,%s,%d)\n",fd,incName,local);
QCString
iName
=
fd
?
fd
->
absFilePath
().
data
()
:
incName
;
...
...
@@ -769,6 +747,7 @@ void FileDef::addIncludedByDependency(FileDef *fd,const char *incName,bool local
ii
->
fileDef
=
fd
;
ii
->
includeName
=
incName
;
ii
->
local
=
local
;
ii
->
imported
=
imported
;
includedByList
->
append
(
ii
);
includedByDict
->
insert
(
iName
,
ii
);
}
...
...
@@ -970,7 +949,7 @@ static void generateIndent(QTextStream &t,DirEntry *de,int level)
}
}
#if 0
static void writeDirTreeNode(QTextStream &t,Directory *root,int level)
{
QCString indent;
...
...
@@ -1001,12 +980,43 @@ static void writeDirTreeNode(QTextStream &t,Directory *root,int level)
}
}
}
#endif
static
void
addDirsAsGroups
(
Directory
*
root
,
GroupDef
*
parent
,
int
level
)
{
GroupDef
*
gd
=
0
;
if
(
root
->
kind
()
==
DirEntry
::
Dir
)
{
gd
=
new
GroupDef
(
"<generated>"
,
1
,
root
->
name
(),
// name
root
->
name
()
// title
);
if
(
parent
)
{
parent
->
addGroup
(
gd
);
}
else
{
Doxygen
::
groupSDict
.
append
(
root
->
name
(),
gd
);
}
}
QListIterator
<
DirEntry
>
dli
(
root
->
children
());
DirEntry
*
de
;
for
(
dli
.
toFirst
();(
de
=
dli
.
current
());
++
dli
)
{
if
(
de
->
kind
()
==
DirEntry
::
Dir
)
{
addDirsAsGroups
((
Directory
*
)
de
,
gd
,
level
+
1
);
}
}
}
void
generateFileTree
(
QTextStream
&
t
)
void
generateFileTree
()
{
FTVHelp
::
generateTreeViewImages
();
Directory
*
root
=
new
Directory
(
0
,
""
);
Directory
*
root
=
new
Directory
(
0
,
"
root
"
);
root
->
setLast
(
TRUE
);
FileNameListIterator
fnli
(
Doxygen
::
inputNameList
);
FileName
*
fn
;
...
...
@@ -1019,12 +1029,15 @@ void generateFileTree(QTextStream &t)
mergeFileDef
(
root
,
fd
);
}
}
t
<<
"<div class=
\"
directory
\"
>
\n
"
;
writeDirTreeNode
(
t
,
root
,
0
);
t
<<
"</div>
\n
"
;
//t << "<div class=\"directory\">\n";
//writeDirTreeNode(t,root,0);
//t << "</div>\n";
addDirsAsGroups
(
root
,
0
,
0
);
delete
root
;
}
//-------------------------------------------------------------------
void
FileDef
::
combineUsingRelations
()
{
if
(
visited
)
return
;
// already done
...
...
src/filedef.h
View file @
f4bab88a
...
...
@@ -46,6 +46,7 @@ struct IncludeInfo
FileDef
*
fileDef
;
QCString
includeName
;
bool
local
;
bool
imported
;
};
/*! \class FileDef filedef.h
...
...
@@ -140,8 +141,8 @@ class FileDef : public Definition
bool
generateSourceFile
()
const
;
void
addIncludeDependency
(
FileDef
*
fd
,
const
char
*
incName
,
bool
local
);
void
addIncludedByDependency
(
FileDef
*
fd
,
const
char
*
incName
,
bool
local
);
void
addIncludeDependency
(
FileDef
*
fd
,
const
char
*
incName
,
bool
local
,
bool
imported
);
void
addIncludedByDependency
(
FileDef
*
fd
,
const
char
*
incName
,
bool
local
,
bool
imported
);
QList
<
IncludeInfo
>
*
includeFileList
()
const
{
return
includeList
;
}
QList
<
IncludeInfo
>
*
includedByFileList
()
const
{
return
includedByList
;
}
...
...
@@ -286,7 +287,8 @@ class Directory : public DirEntry
QList
<
DirEntry
>
m_children
;
};
void
generateFileTree
(
QTextStream
&
t
);
//void generateFileTree(QTextStream &t);
void
generateFileTree
();
#endif
src/htmldocvisitor.cpp
View file @
f4bab88a
...
...
@@ -709,7 +709,7 @@ void HtmlDocVisitor::visitPre(DocImage *img)
baseName
=
baseName
.
right
(
baseName
.
length
()
-
i
-
1
);
}
m_t
<<
"<div align=
\"
center
\"
>"
<<
endl
;
m_t
<<
"<img src=
\"
"
<<
img
->
name
()
<<
"
\"
alt=
\"
"
m_t
<<
"<img src=
\"
"
<<
img
->
relPath
()
<<
img
->
name
()
<<
"
\"
alt=
\"
"
<<
baseName
<<
"
\"
"
<<
htmlAttribsToString
(
img
->
attribs
())
<<
">"
<<
endl
;
if
(
img
->
hasCaption
())
{
...
...
@@ -743,7 +743,7 @@ void HtmlDocVisitor::visitPost(DocImage *img)
void
HtmlDocVisitor
::
visitPre
(
DocDotFile
*
df
)
{
if
(
m_hide
)
return
;
writeDotFile
(
df
->
file
(),
""
);
writeDotFile
(
df
->
file
(),
df
->
relPath
()
);
m_t
<<
"<div align=
\"
center
\"
>"
<<
endl
;
if
(
df
->
hasCaption
())
{
...
...
src/htmlgen.cpp
View file @
f4bab88a
...
...
@@ -309,6 +309,12 @@ void HtmlGenerator::writeStyleSheetFile(QFile &file)
static
void
writeDefaultHeaderFile
(
QTextStream
&
t
,
const
char
*
title
,
const
char
*
relPath
,
bool
usePathCmd
)
{
QString
relPathStr
;
if
(
usePathCmd
)
relPathStr
=
"$relpath$"
;
else
relPathStr
=
relPath
;
t
<<
"<!DOCTYPE HTML PUBLIC
\"
-//W3C//DTD HTML 4.01 Transitional//EN
\"
>
\n
"
"<html><head>"
"<meta http-equiv=
\"
Content-Type
\"
content=
\"
text/html;charset="
...
...
@@ -320,11 +326,7 @@ static void writeDefaultHeaderFile(QTextStream &t, const char *title,
t
<<
"href=
\"
"
;
if
(
Config_getString
(
"HTML_STYLESHEET"
).
isEmpty
())
{
if
(
usePathCmd
)
t
<<
"$relpath$"
;
else
t
<<
relPath
;
t
<<
"doxygen.css"
;
t
<<
relPathStr
<<
"doxygen.css"
;
}
else
{
...
...
@@ -334,7 +336,7 @@ static void writeDefaultHeaderFile(QTextStream &t, const char *title,
{
err
(
"Error: user specified HTML style sheet file does not exist!
\n
"
);
}
t
<<
cssfi
.
fileName
();
t
<<
relPathStr
<<
cssfi
.
fileName
();
}
t
<<
"
\"
rel=
\"
stylesheet
\"
type=
\"
text/css
\"
>
\n
"
"</head><body>
\n
"
;
...
...
src/memberdef.h
View file @
f4bab88a
...
...
@@ -93,6 +93,10 @@ class MemberDef : public Definition
NamespaceDef
*
getNamespaceDef
()
const
{
return
nspace
;
}
//Definition *getCompoundDef() const;
// grabbing the property read/write accessor names
const
char
*
getReadAccessor
()
const
{
return
read
;
}
const
char
*
getWriteAccessor
()
const
{
return
write
;
}
// querying the grouping definition
GroupDef
*
getGroupDef
()
const
{
return
group
;
}
Grouping
::
GroupPri_t
getGroupPri
()
const
{
return
grouppri
;
}
...
...
@@ -161,6 +165,8 @@ class MemberDef : public Definition
void
setSectionList
(
Definition
*
d
,
MemberList
*
sl
);
void
setGroupDef
(
GroupDef
*
gd
,
Grouping
::
GroupPri_t
pri
,
const
QCString
&
fileName
,
int
startLine
,
bool
hasDocs
);
void
setExplicitExternal
(
bool
b
)
{
explExt
=
b
;
}
void
setReadAccessor
(
const
char
*
r
)
{
read
=
r
;
}
void
setWriteAccessor
(
const
char
*
w
)
{
write
=
w
;
}
void
makeRelated
()
{
related
=
TRUE
;
}
...
...
@@ -307,6 +313,8 @@ class MemberDef : public Definition
QCString
type
;
// return type
QCString
args
;
// function arguments/variable array specifiers
QCString
bitfields
;
// struct member bitfields
QCString
read
;
// property read accessor
QCString
write
;
// property write accessor
QCString
exception
;
// exceptions that can be thrown
QCString
init
;
// initializer
int
initLines
;
// number of lines in the initializer
...
...
src/pre.l
View file @
f4bab88a
...
...
@@ -99,6 +99,7 @@ static bool g_macroExpansion; // from the configuration
static bool g_expandOnlyPredef; // from the configuration
static int g_commentCount;
static bool g_insideComment;
static bool g_isImported;
static void setFileName(const char *name)
...
...
@@ -1065,12 +1066,12 @@ static void readIncludeFile(const QCString &inc)
if (oldFileDef)
{
// add include dependency to the file in which the #include was found
oldFileDef->addIncludeDependency(g_yyFileDef,incFileName,localInclude);
oldFileDef->addIncludeDependency(g_yyFileDef,incFileName,localInclude
,g_isImported
);
// add included by dependency
if (g_yyFileDef)
{
//printf("Adding include dependency %s->%s\n",oldFileDef->name().data(),incFileName.data());
g_yyFileDef->addIncludedByDependency(oldFileDef,oldFileDef->name(),localInclude);
g_yyFileDef->addIncludedByDependency(oldFileDef,oldFileDef->name(),localInclude
,g_isImported
);
}
}
FileState *fs=new FileState;
...
...
@@ -1100,12 +1101,12 @@ static void readIncludeFile(const QCString &inc)
FileDef *fd = findFileDef(Doxygen::inputNameDict,incFileName,ambig);
//printf("findFileDef(%s)=%p\n",incFileName.data(),fd);
// add include dependency to the file in which the #include was found
oldFileDef->addIncludeDependency(fd,incFileName,localInclude);
oldFileDef->addIncludeDependency(fd,incFileName,localInclude
,g_isImported
);
// add included by dependency
if (fd)
{
//printf("Adding include dependency (2) %s->%s ambig=%d\n",oldFileDef->name().data(),fd->name().data(),ambig);
fd->addIncludedByDependency(oldFileDef,oldFileDef->name(),localInclude);
fd->addIncludedByDependency(oldFileDef,oldFileDef->name(),localInclude
,g_isImported
);
}
}
if (Debug::isFlagSet(Debug::Preprocessor))
...
...
@@ -1386,11 +1387,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
<ReadString>. {
g_defArgsStr+=*yytext;
}
<Command>"include"{B}+/{ID} {
<Command>("include"|"import"){B}+/{ID} {
g_isImported = yytext[1]=='m';
if (g_macroExpansion)
BEGIN(IncludeID);
}
<Command>"include"{B}*[<"] {
<Command>("include"|"import"){B}*[<"] {
g_isImported = yytext[1]=='m';
char c[2];
c[0]=yytext[yyleng-1];c[1]='\0';
g_incName=c;
...
...
src/scanner.l
View file @
f4bab88a
...
...
@@ -837,7 +837,8 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
%x ObjCProtocolList
%x QtPropType
%x QtPropName
%x QtPropRW
%x QtPropRead
%x QtPropWrite
%%
...
...
@@ -1181,7 +1182,11 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
current->virt = Virtual;
lineCount();
}
<FindMembers>{B}*"abstract"{BN}+ { current->type += " abstract ";
<FindMembers>{B}*"abstract"{BN}+ {
if (!insidePHP)
{
current->type += " abstract ";
}
current->virt = Pure;
lineCount();
}
...
...
@@ -1253,7 +1258,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
<FindMembers>{B}*((("disp")?"interface")|"valuetype"){BN}+ { // M$/Corba IDL interface
lineCount();
if (insideIDL || insideJava || insideCS || insideD)
if (insideIDL || insideJava || insideCS || insideD
|| insidePHP
)
{
isTypedef=FALSE;
current->section = Entry::INTERFACE_SEC;
...
...
@@ -1621,15 +1626,20 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
<QtPropName>{ID} {
current->name=yytext;
BEGIN(QtPropR
W
);
BEGIN(QtPropR
ead
);
}
<QtPropR
W
>"READ" {
<QtPropR
ead
>"READ" {
current->memSpec |= Entry::Readable;
}
<QtPropRW>"WRITE" {
<QtPropRead>{ID} {
current->read = yytext;
BEGIN(QtPropWrite);
}
<QtPropWrite>"WRITE" {
current->memSpec |= Entry::Writable;
}
<QtPropRW>")" {
<QtPropWrite>{ID} {
current->write = yytext;
unput(';');
BEGIN(FindMembers);
}
...
...
@@ -1666,7 +1676,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
{
addType( current ) ;
}
bool javaLike = insideJava || insideCS || insideD;
bool javaLike = insideJava || insideCS || insideD
|| insidePHP
;
if (javaLike && strcmp(yytext,"public")==0)
{
current->protection = Public;
...
...
@@ -2230,27 +2240,17 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
{
current->type = current->type.mid(3);
}
if (!current->name.isEmpty() && current->section!=Entry::ENUM_SEC)
{
current->type=current->type.simplifyWhiteSpace();
current->args=removeRedundantWhiteSpace(current->args);
// was: current->args.simplifyWhiteSpace();
current->name=current->name.stripWhiteSpace();
//if (!current->name.isEmpty() && current->type.left(8)=="typedef ")
//{
// // add typedef to dictionary
// QCString dest = extractName(current->type.right(current->type.length()-8));
// if (Doxygen::typedefDict[current->name]==0 && !dest.isEmpty())
// {
// //printf("1>>>>>>>>>> adding %s->%s\n",current->name.data(),dest.data());
// QCString scope;
// if (current_root->section & Entry::SCOPE_MASK) scope=current_root->name;
// Doxygen::typedefDict.insert(current->name, new TypedefInfo(dest,scope));
// }
//}
current->section = Entry::VARIABLE_SEC ;
current->fileName = yyFileName;
current->startLine = yyLineNr;
//printf("New variable type=`%s' name=`%s' groupId=%d\n",current->type.data(),current->name.data(),current->mGrpId);
current_root->addSubEntry( current ) ;
}
if ( *yytext == ',')
{
current = new Entry(*current);
...
...
@@ -3558,15 +3558,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
roundCount=0;
BEGIN(SkipUnionSwitch);
}
else if (insideJava && (strcmp(yytext,"implements")==0 || strcmp(yytext,"extends")==0))
{
current->type.resize(0);
baseProt=Public;
baseVirt=Normal;
baseName.resize(0);
BEGIN( BasesProt ) ;
}
else if (insidePHP && (strcmp(yytext,"extends")==0))
else if ((insideJava || insidePHP) && (strcmp(yytext,"implements")==0 || strcmp(yytext,"extends")==0))
{
current->type.resize(0);
baseProt=Public;
...
...
@@ -3684,10 +3676,10 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
BEGIN( ReadBody ) ;
}
}
<BasesProt>"virtual"
{
baseVirt = Virtual; }
<BasesProt>"public"
{
baseProt = Public; }
<BasesProt>"protected"
{
baseProt = Protected; }
<BasesProt>"private"
{
baseProt = Private; }
<BasesProt>"virtual"
{BN}+ { lineCount();
baseVirt = Virtual; }
<BasesProt>"public"
{BN}+ { lineCount();
baseProt = Public; }
<BasesProt>"protected"
{BN}+ { lineCount();
baseProt = Protected; }
<BasesProt>"private"
{BN}+ { lineCount();
baseProt = Private; }
<BasesProt>{BN} { lineCount(); }
<BasesProt>. { unput(*yytext); BEGIN(Bases); }
<Bases>("::")?{BN}*({ID}{BN}*"::"{BN}*)*{ID} {
...
...
src/tagreader.cpp
View file @
f4bab88a
...
...
@@ -99,6 +99,7 @@ class TagIncludeInfo
QString
name
;
QString
text
;
bool
isLocal
;
bool
isImported
;
};
/*! Container for file specific info that can be read from a tagfile */
...
...
@@ -470,6 +471,7 @@ class TagFileParser : public QXmlDefaultHandler
m_curIncludes
->
id
=
attrib
.
value
(
"id"
);
m_curIncludes
->
name
=
attrib
.
value
(
"name"
);
m_curIncludes
->
isLocal
=
attrib
.
value
(
"local"
)
==
"yes"
?
TRUE
:
FALSE
;
m_curIncludes
->
isImported
=
attrib
.
value
(
"imported"
)
==
"yes"
?
TRUE
:
FALSE
;
m_curFile
->
includes
.
append
(
m_curIncludes
);
}
else
...
...
@@ -1215,7 +1217,7 @@ void TagFileParser::addIncludes()
// ifd->getOutputFileBase().data(),ii->id.data());
if
(
ifd
->
getOutputFileBase
()
==
QCString
(
ii
->
id
))
{
fd
->
addIncludeDependency
(
ifd
,
ii
->
text
,
ii
->
isLocal
);
fd
->
addIncludeDependency
(
ifd
,
ii
->
text
,
ii
->
isLocal
,
ii
->
isImported
);
}
}
}
...
...
src/translator_cn.h
View file @
f4bab88a
...
...
@@ -24,7 +24,7 @@
*/
#define CN_SPC
class
TranslatorChinese
:
public
Translator
Adapter_1_3_3
class
TranslatorChinese
:
public
Translator
{
public
:
/*! Used for identification of the language. The identification
...
...
@@ -1467,9 +1467,22 @@ class TranslatorChinese : public TranslatorAdapter_1_3_3
*/
virtual
QCString
trSearchMatches
()
{
return
"Matches:"
;
/* return "Matches:"; */
return
"符合的结果:"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.8
//////////////////////////////////////////////////////////////////////////
/*! This is used in HTML as the title of page with source code for file filename
*/
virtual
QCString
trSourceFile
(
QCString
&
filename
)
{
/* return filename + " Source File"; */
return
filename
+
CN_SPC
"源文件"
;
}
};
#endif
src/translator_de.h
View file @
f4bab88a
...
...
@@ -84,13 +84,16 @@
// - Updated a few strings which changed in CVS revision 1.22
// ("compound" vs. "class")
//
// 2004/08/01 Jens Seidel (jensseidel@users.sourceforge.net)
// - Updated for "new since 1.3.8" version
//
// Todo:
// - see FIXME
#ifndef TRANSLATOR_DE_H
#define TRANSLATOR_DE_H
class
TranslatorGerman
:
public
Translator
Adapter_1_3_8
class
TranslatorGerman
:
public
Translator
{
public
:
...
...
@@ -156,7 +159,7 @@ class TranslatorGerman : public TranslatorAdapter_1_3_8
/*! this is the text of a link put after brief descriptions. */
virtual
QCString
trMore
()
{
return
"Mehr..."
;
}
{
return
"Mehr
..."
;
}
/*! put in the class documentation */
virtual
QCString
trListOfAllMembers
()
...
...
@@ -1604,6 +1607,18 @@ class TranslatorGerman : public TranslatorAdapter_1_3_8
{
return
"Treffer:"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.8
//////////////////////////////////////////////////////////////////////////
/*! This is used in HTML as the title of page with source code for file filename
*/
virtual
QCString
trSourceFile
(
QCString
&
filename
)
{
return
filename
+
" Quellcode"
;
}
};
#endif
src/translator_dk.h
View file @
f4bab88a
...
...
@@ -72,7 +72,7 @@
#ifndef TRANSLATOR_DK_H
#define TRANSLATOR_DK_H
class
TranslatorDanish
:
public
Translator
Adapter_1_3_8
class
TranslatorDanish
:
public
Translator
{
public
:
...
...
@@ -1445,6 +1445,19 @@ class TranslatorDanish : public TranslatorAdapter_1_3_8
return
"Fundne ord:"
;
//translation?
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.8
//////////////////////////////////////////////////////////////////////////
/*! This is used in HTML as the title of page with source code for
* file filename
*/
virtual
QCString
trSourceFile
(
QCString
&
filename
)
{
return
"Kildefilen "
+
filename
;
}
/*---------- For internal use: ----------------------------------------*/
protected
:
/*! For easy flexible-noun implementation.
...
...
src/translator_se.h
View file @
f4bab88a
...
...
@@ -69,7 +69,7 @@ Problem!
#ifndef TRANSLATOR_SE_H
#define TRANSLATOR_SE_H
class
TranslatorSwedish
:
public
TranslatorAdapter_1_3_
3
class
TranslatorSwedish
:
public
TranslatorAdapter_1_3_
8
{
public
:
...
...
@@ -1350,7 +1350,56 @@ class TranslatorSwedish : public TranslatorAdapter_1_3_3
return
"Hr r anropnings diagrammet fr den hr funktionen:"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.3
//////////////////////////////////////////////////////////////////////////
/*! When the search engine is enabled this text is put in the header
* of each page before the field where one can enter the text to search
* for.
*/
virtual
QCString
trSearchForIndex
()
{
return
"Sk efter"
;
}
/*! This string is used as the title for the page listing the search
* results.
*/
virtual
QCString
trSearchResultsTitle
()
{
return
"Skresultat"
;
}
/*! This string is put just before listing the search results. The
* text can be different depending on the number of documents found.
* Inside the text you can put the special marker $num to insert
* the number representing the actual number of search results.
* The @a numDocuments parameter can be either 0, 1 or 2, where the
* value 2 represents 2 or more matches. HTML markup is allowed inside
* the returned string.
*/
virtual
QCString
trSearchResults
(
int
numDocuments
)
{
if
(
numDocuments
==
0
)
{
return
"Tyvrr finns det inga dokument som matchar din skning."
;
}
else
if
(
numDocuments
==
1
)
{
return
"Hittade <b>1</b> dokument som matchar din skning."
;
}
else
{
return
"Hittade <b>$num</b> dokument som matchar din skning. "
"Visar de bsta trffarna frst."
;
}
}
/*! This string is put before the list of matched words, for each search
* result. What follows is the list of words that matched the query.
*/
virtual
QCString
trSearchMatches
()
{
return
"Trffar:"
;
}
};
...
...
src/util.cpp
View file @
f4bab88a
...
...
@@ -1010,7 +1010,6 @@ ClassDef *getResolvedClassRec(Definition *scope,
QCString
name
=
n
;
QCString
explicitScopePart
;
//int qualifierIndex = name.findRev("::"); // todo: deal with cases like A<B::C>
int
qualifierIndex
=
computeQualifiedIndex
(
name
);
//printf("name=%s qualifierIndex=%d\n",name.data(),qualifierIndex);
if
(
qualifierIndex
!=-
1
)
// qualified name
...
...
@@ -1032,7 +1031,6 @@ ClassDef *getResolvedClassRec(Definition *scope,
//printf("Looking for symbol %s result=%p\n",name.data(),dl);
if
(
dl
==
0
)
{
// name is not a known symbol
return
0
;
}
...
...
@@ -1181,7 +1179,7 @@ ClassDef *getResolvedClass(Definition *scope,
}
//printf("getResolvedClass(%s,%s)=%s\n",scope?scope->name().data():"<global>",
// n,result?result->name().data():"<none>");
//
return
result
;
}
...
...
@@ -4120,14 +4118,22 @@ QCString substituteTemplateArgumentsInString(
++
formAli
,
actArg
=
actualArgs
->
next
()
)
{
//printf("n=%s formArg->type=%s formArg->name=%s\n",
// n.data(),formArg->type.data(),formArg->name.data());
if
(
formArg
->
type
==
"class"
||
formArg
->
type
==
"typename"
)
{
//printf("n=%s formArg->type=%s formArg->name=%si formArg->defval=%s\n",
// n.data(),formArg->type.data(),formArg->name.data(),formArg->defval.data());
if
(
formArg
->
name
==
n
&&
actArg
&&
!
actArg
->
type
.
isEmpty
())
// base class is a template argument
{
// replace formal argument with the actual argument of the instance
if
(
actArg
->
name
.
isEmpty
())
{
result
+=
actArg
->
type
+
" "
;
}
else
// for case where the actual arg is something like "unsigned int"
// the "int" part is in actArg->name.
{
result
+=
actArg
->
type
+
" "
+
actArg
->
name
+
" "
;
}
found
=
TRUE
;
}
else
if
(
formArg
->
name
==
n
&&
actArg
==
0
&&
!
formArg
->
defval
.
isEmpty
()
&&
...
...
src/xmlgen.cpp
View file @
f4bab88a
...
...
@@ -619,6 +619,15 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
}
t
<<
" <name>"
<<
convertToXML
(
md
->
name
())
<<
"</name>"
<<
endl
;
if
(
md
->
memberType
()
==
MemberDef
::
Property
)
{
if
(
md
->
isReadable
())
t
<<
" <read>"
<<
convertToXML
(
md
->
getReadAccessor
())
<<
"</read>"
<<
endl
;
if
(
md
->
isWritable
())
t
<<
" <write>"
<<
convertToXML
(
md
->
getWriteAccessor
())
<<
"</write>"
<<
endl
;
}
MemberDef
*
rmd
=
md
->
reimplements
();
if
(
rmd
)
{
...
...
tmake/lib/m68k-atari-mint-g++/app.t
0 → 100755
View file @
f4bab88a
#! Use the common Unix template
#$ IncludeTemplate("../unix/app.t");
tmake/lib/m68k-atari-mint-g++/lib.t
0 → 100755
View file @
f4bab88a
#! Use the common Unix template
#$ IncludeTemplate("../unix/lib.t");
tmake/lib/m68k-atari-mint-g++/subdirs.t
0 → 100755
View file @
f4bab88a
#! Use the common Unix template
#$ IncludeTemplate("../unix/subdirs.t");
tmake/lib/m68k-atari-mint-g++/tmake.conf
0 → 100755
View file @
f4bab88a
#
#
#
# tmake configuration for linux-g++
#
TEMPLATE
=
app
CONFIG
=
qt
warn_on
release
TMAKE_CC
=
gcc
TMAKE_CFLAGS
= -
pipe
TMAKE_CFLAGS_WARN_ON
= -
Wall
-
W
-
fno
-
exceptions
TMAKE_CFLAGS_WARN_OFF
=
TMAKE_CFLAGS_RELEASE
= -
O2
TMAKE_CFLAGS_DEBUG
= -
g
TMAKE_CFLAGS_SHLIB
= -
fPIC
TMAKE_CFLAGS_YACC
= -
Wno
-
unused
-
Wno
-
parentheses
TMAKE_CXX
=
g
++
TMAKE_CXXFLAGS
= $$
TMAKE_CFLAGS
TMAKE_CXXFLAGS_WARN_ON
= $$
TMAKE_CFLAGS_WARN_ON
TMAKE_CXXFLAGS_WARN_OFF
= $$
TMAKE_CFLAGS_WARN_OFF
TMAKE_CXXFLAGS_RELEASE
= $$
TMAKE_CFLAGS_RELEASE
TMAKE_CXXFLAGS_DEBUG
= $$
TMAKE_CFLAGS_DEBUG
TMAKE_CXXFLAGS_SHLIB
= $$
TMAKE_CFLAGS_SHLIB
TMAKE_CXXFLAGS_YACC
= $$
TMAKE_CFLAGS_YACC
TMAKE_INCDIR
=
TMAKE_LIBDIR
=
TMAKE_INCDIR_X11
= /
usr
/
X11R6
/
include
TMAKE_LIBDIR_X11
= /
usr
/
X11R6
/
lib
TMAKE_INCDIR_QT
= $(
QTDIR
)/
include
TMAKE_LIBDIR_QT
= $(
QTDIR
)/
lib
TMAKE_INCDIR_OPENGL
= /
usr
/
X11R6
/
include
TMAKE_LIBDIR_OPENGL
= /
usr
/
X11R6
/
lib
TMAKE_LINK
=
g
++
TMAKE_LINK_SHLIB
=
g
++
TMAKE_LFLAGS
=
TMAKE_LFLAGS_RELEASE
=
TMAKE_LFLAGS_DEBUG
= -
g
TMAKE_LFLAGS_SHLIB
= -
shared
TMAKE_LFLAGS_SONAME
= -
Wl
,-
soname
,
TMAKE_LIBS
=
TMAKE_LIBS_X11
= -
lXext
-
lX11
-
lm
TMAKE_LIBS_X11SM
= -
lICE
-
lSM
TMAKE_LIBS_QT
= -
lqt
TMAKE_LIBS_QT_MT
= -
lqt
-
mt
TMAKE_LIBS_QT_OPENGL
= -
lqgl
TMAKE_LIBS_OPENGL
= -
lMesaGL
-
lMesaGLU
-
lXmu
TMAKE_MOC
=
moc
TMAKE_AR
=
ar
cqs
TMAKE_RANLIB
=
TMAKE_TAR
=
tar
-
cf
TMAKE_GZIP
=
gzip
-
9
f
wintools/qtools.dsp
View file @
f4bab88a
...
...
@@ -144,6 +144,10 @@ SOURCE=..\qtools\qglobal.cpp
# End Source File
# Begin Source File
SOURCE=..\qtools\qgcache.cpp
# End Source File
# Begin Source File
SOURCE=..\qtools\qgvector.cpp
# End Source File
# Begin Source File
...
...
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