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
a62d9f8f
Commit
a62d9f8f
authored
Oct 04, 2009
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.6.1-20091004
parent
0c8b6ca6
Changes
38
Show whitespace changes
Inline
Side-by-side
Showing
38 changed files
with
1118 additions
and
981 deletions
+1118
-981
INSTALL
INSTALL
+2
-2
README
README
+2
-2
doxywizard.cpp
addon/doxywizard/doxywizard.cpp
+9
-2
configure
configure
+1
-1
config.doc
doc/config.doc
+17
-21
language.doc
doc/language.doc
+5
-5
translator.py
doc/translator.py
+37
-10
translator_report.txt
doc/translator_report.txt
+108
-145
bufstr.h
src/bufstr.h
+4
-0
classdef.cpp
src/classdef.cpp
+3
-1
config.l
src/config.l
+0
-20
config.xml
src/config.xml
+5
-2
configoptions.cpp
src/configoptions.cpp
+6
-3
definition.cpp
src/definition.cpp
+3
-2
dirdef.cpp
src/dirdef.cpp
+4
-1
dot.cpp
src/dot.cpp
+255
-264
dot.h
src/dot.h
+4
-0
doxygen.cpp
src/doxygen.cpp
+53
-133
filedef.cpp
src/filedef.cpp
+3
-1
formula.cpp
src/formula.cpp
+3
-3
groupdef.cpp
src/groupdef.cpp
+3
-1
htmlgen.cpp
src/htmlgen.cpp
+1
-1
latexgen.cpp
src/latexgen.cpp
+27
-26
libdoxycfg.t
src/libdoxycfg.t
+3
-0
memberdef.cpp
src/memberdef.cpp
+15
-5
membergroup.cpp
src/membergroup.cpp
+6
-2
namespacedef.cpp
src/namespacedef.cpp
+3
-1
pagedef.cpp
src/pagedef.cpp
+1
-4
pre.h
src/pre.h
+1
-2
pre.l
src/pre.l
+68
-22
scanner.l
src/scanner.l
+7
-2
translator_cz.h
src/translator_cz.h
+2
-3
translator_fr.h
src/translator_fr.h
+41
-6
translator_pl.h
src/translator_pl.h
+233
-216
util.cpp
src/util.cpp
+155
-29
util.h
src/util.h
+6
-1
vhdldocgen.cpp
src/vhdldocgen.cpp
+21
-41
vhdldocgen.h
src/vhdldocgen.h
+1
-1
No files found.
INSTALL
View file @
a62d9f8f
DOXYGEN Version 1.6.1
DOXYGEN Version 1.6.1
-20091004
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (
25 August
2009)
Dimitri van Heesch (
04 October
2009)
README
View file @
a62d9f8f
DOXYGEN Version 1.6.1
DOXYGEN Version 1.6.1
_20091004
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 August
2009)
Dimitri van Heesch (dimitri@stack.nl) (
04 October
2009)
addon/doxywizard/doxywizard.cpp
View file @
a62d9f8f
...
...
@@ -185,7 +185,7 @@ void MainWindow::about()
t
<<
QString
::
fromAscii
(
"<qt><center>A tool to configure and run doxygen version "
)
+
QString
::
fromAscii
(
versionString
)
+
QString
::
fromAscii
(
" on your source files.</center><p><br>"
"<center>Written by<br> Dimitri van Heesch<br>© 2000-200
8
</center><p>"
"<center>Written by<br> Dimitri van Heesch<br>© 2000-200
9
</center><p>"
"</qt>"
);
QMessageBox
::
about
(
this
,
tr
(
"Doxygen GUI"
),
msg
);
}
...
...
@@ -230,7 +230,14 @@ void MainWindow::saveConfig(const QString &fileName)
{
if
(
fileName
.
isEmpty
())
return
;
QFile
f
(
fileName
);
if
(
!
f
.
open
(
QIODevice
::
WriteOnly
))
return
;
if
(
!
f
.
open
(
QIODevice
::
WriteOnly
))
{
QMessageBox
::
warning
(
this
,
tr
(
"Error saving"
),
tr
(
"Error: cannot open the file "
)
+
fileName
+
tr
(
" for writing!
\n
"
)
+
tr
(
"Reason given: "
)
+
f
.
error
());
return
;
}
QTextStream
t
(
&
f
);
m_expert
->
writeConfig
(
t
,
false
);
updateConfigFileName
(
fileName
);
...
...
configure
View file @
a62d9f8f
...
...
@@ -20,7 +20,7 @@ doxygen_version_minor=6
doxygen_version_revision
=
1
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn
=
NO
doxygen_version_mmn
=
20091004
bin_dirs
=
`
echo
$PATH
|
sed
-e
"s/:/ /g"
`
...
...
doc/config.doc
View file @
a62d9f8f
...
...
@@ -61,8 +61,8 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_alphabetical_index
ALPHABETICAL_INDEX
\
refitem
cfg_always_detailed_sec
ALWAYS_DETAILED_SEC
\
refitem
cfg_binary_toc
BINARY_TOC
\
refitem
cfg_builtin_stl_support
BUILTIN_STL_SUPPORT
\
refitem
cfg_brief_member_desc
BRIEF_MEMBER_DESC
\
refitem
cfg_builtin_stl_support
BUILTIN_STL_SUPPORT
\
refitem
cfg_call_graph
CALL_GRAPH
\
refitem
cfg_caller_graph
CALLER_GRAPH
\
refitem
cfg_case_sense_names
CASE_SENSE_NAMES
...
...
@@ -80,6 +80,7 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_distribute_group_doc
DISTRIBUTE_GROUP_DOC
\
refitem
cfg_docset_bundle_id
DOCSET_BUNDLE_ID
\
refitem
cfg_docset_feedname
DOCSET_FEEDNAME
\
refitem
cfg_dot_cleanup
DOT_CLEANUP
\
refitem
cfg_dot_fontname
DOT_FONTNAME
\
refitem
cfg_dot_fontpath
DOT_FONTPATH
\
refitem
cfg_dot_fontsize
DOT_FONTSIZE
...
...
@@ -91,8 +92,8 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_dotfile_dirs
DOTFILE_DIRS
\
refitem
cfg_doxyfile_encoding
DOXYFILE_ENCODING
\
refitem
cfg_enable_preprocessing
ENABLE_PREPROCESSING
\
refitem
cfg_enum_values_per_line
ENUM_VALUES_PER_LINE
\
refitem
cfg_enabled_sections
ENABLED_SECTIONS
\
refitem
cfg_enum_values_per_line
ENUM_VALUES_PER_LINE
\
refitem
cfg_example_path
EXAMPLE_PATH
\
refitem
cfg_example_patterns
EXAMPLE_PATTERNS
\
refitem
cfg_example_recursive
EXAMPLE_RECURSIVE
...
...
@@ -146,6 +147,7 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_hide_undoc_relations
HIDE_UNDOC_RELATIONS
\
refitem
cfg_html_align_members
HTML_ALIGN_MEMBERS
\
refitem
cfg_html_dynamic_sections
HTML_DYNAMIC_SECTIONS
\
refitem
cfg_html_file_extension
HTML_FILE_EXTENSION
\
refitem
cfg_html_footer
HTML_FOOTER
\
refitem
cfg_html_header
HTML_HEADER
\
refitem
cfg_html_output
HTML_OUTPUT
...
...
@@ -155,6 +157,7 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_image_path
IMAGE_PATH
\
refitem
cfg_include_graph
INCLUDE_GRAPH
\
refitem
cfg_include_path
INCLUDE_PATH
\
refitem
cfg_included_by_graph
INCLUDED_BY_GRAPH
\
refitem
cfg_inherit_docs
INHERIT_DOCS
\
refitem
cfg_inline_info
INLINE_INFO
\
refitem
cfg_inline_inherited_memb
INLINE_INHERITED_MEMB
...
...
@@ -189,23 +192,23 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_pdf_hyperlinks
PDF_HYPERLINKS
\
refitem
cfg_perl_path
PERL_PATH
\
refitem
cfg_perlmod_latex
PERLMOD_LATEX
\
refitem
cfg_perlmod_pretty
PERLMOD_PRETTY
\
refitem
cfg_perlmod_makevar_prefix
PERLMOD_MAKEVAR_PREFIX
\
refitem
cfg_perlmod_pretty
PERLMOD_PRETTY
\
refitem
cfg_predefined
PREDEFINED
\
refitem
cfg_project_name
PROJECT_NAME
\
refitem
cfg_project_number
PROJECT_NUMBER
\
refitem
cfg_qhp_namespace
QHP_NAMESPACE
\
refitem
cfg_qhp_virtual_folder
QHP_VIRTUAL_FOLDER
\
refitem
cfg_qhp_cust_filter_name
QHP_CUST_FILTER_NAME
\
refitem
cfg_qhg_location
QHG_LOCATION
\
refitem
cfg_qhp_cust_filter_attrs
QHP_CUST_FILTER_ATTRS
\
refitem
cfg_qhp_cust_filter_name
QHP_CUST_FILTER_NAME
\
refitem
cfg_qhp_namespace
QHP_NAMESPACE
\
refitem
cfg_qhp_sect_filter_attrs
QHP_SECT_FILTER_ATTRS
\
refitem
cfg_qh
g_location
QHG_LOCATION
\
refitem
cfg_qh
p_virtual_folder
QHP_VIRTUAL_FOLDER
\
refitem
cfg_qt_autobrief
QT_AUTOBRIEF
\
refitem
cfg_quiet
QUIET
\
refitem
cfg_recursive
RECURSIVE
\
refitem
cfg_referenced_by_relation
REFERENCED_BY_RELATION
\
refitem
cfg_references_relation
REFERENCES_RELATION
\
refitem
cfg_references_link_source
REFERENCES_LINK_SOURCE
\
refitem
cfg_references_relation
REFERENCES_RELATION
\
refitem
cfg_repeat_brief
REPEAT_BRIEF
\
refitem
cfg_rtf_extensions_file
RTF_EXTENSIONS_FILE
\
refitem
cfg_rtf_hyperlinks
RTF_HYPERLINKS
...
...
@@ -219,13 +222,14 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_show_files
SHOW_FILES
\
refitem
cfg_show_include_files
SHOW_INCLUDE_FILES
\
refitem
cfg_show_namespaces
SHOW_NAMESPACES
\
refitem
cfg_show_used_files
SHOW_USED_FILES
\
refitem
cfg_sip_support
SIP_SUPPORT
\
refitem
cfg_skip_function_macros
SKIP_FUNCTION_MACROS
\
refitem
cfg_sort_brief_docs
SORT_BRIEF_DOCS
\
refitem
cfg_sort_by_scope_name
SORT_BY_SCOPE_NAME
\
refitem
cfg_sort_members_constructors_first
SORT_MEMBERS_CTORS_1ST
\
refitem
cfg_sort_group_names
SORT_GROUP_NAMES
\
refitem
cfg_sort_member_docs
SORT_MEMBER_DOCS
\
refitem
cfg_sort_members_constructors_first
SORT_MEMBERS_CTORS_1ST
\
refitem
cfg_source_browser
SOURCE_BROWSER
\
refitem
cfg_strip_code_comments
STRIP_CODE_COMMENTS
\
refitem
cfg_strip_from_inc_path
STRIP_FROM_INC_PATH
...
...
@@ -240,8 +244,8 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_typedef_hides_struct
TYPEDEF_HIDES_STRUCT
\
refitem
cfg_uml_look
UML_LOOK
\
refitem
cfg_use_htags
USE_HTAGS
\
refitem
cfg_use_inline_trees
USE_INLINE_TREES
\
refitem
cfg_use_pdflatex
USE_PDFLATEX
\
refitem
cfg_use_windows_encoding
USE_WINDOWS_ENCODING
\
refitem
cfg_verbatim_headers
VERBATIM_HEADERS
\
refitem
cfg_warn_format
WARN_FORMAT
\
refitem
cfg_warn_if_doc_error
WARN_IF_DOC_ERROR
...
...
@@ -312,17 +316,6 @@ followed by the descriptions of the tags grouped by category.
Lithuanian
,
Norwegian
,
Persian
,
Polish
,
Portuguese
,
Romanian
,
Russian
,
Serbian
,
Slovak
,
Slovene
,
Spanish
,
Swedish
,
and
Ukrainian
.
\
anchor
cfg_use_windows_encoding
<
dt
>\
c
USE_WINDOWS_ENCODING
<
dd
>
\
addindex
USE_WINDOWS_ENCODING
This
tag
can
be
used
to
specify
the
encoding
used
in
the
generated
output
.
The
encoding
is
not
always
determined
by
the
language
that
is
chosen
,
but
also
whether
or
not
the
output
is
meant
for
Windows
or
non
-
Windows
users
.
In
case
there
is
a
difference
,
setting
the
\
c
USE_WINDOWS_ENCODING
tag
to
\
c
YES
forces
the
Windows
encoding
,
(
this
is
the
default
for
the
Windows
binary
),
whereas
setting
the
tag
to
\
c
NO
uses
a
Unix
-
style
encoding
(
the
default
for
all
platforms
other
than
Windows
).
\
anchor
cfg_brief_member_desc
<
dt
>\
c
BRIEF_MEMBER_DESC
<
dd
>
\
addindex
BRIEF_MEMBER_DESC
...
...
@@ -1565,6 +1558,9 @@ and Class Hierarchy pages using a tree view instead of an ordered list.
\addindex LATEX_CMD_NAME
The \c LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be invoked.
If left blank `latex'
will
be
used
as
the
default
command
name
.
Note
that
when
enabling
USE_PDFLATEX
this
option
is
only
used
for
generating
bitmaps
for
formulas
in
the
HTML
output
,
but
not
in
the
Makefile
that
is
written
to
the
output
directory
.
\
anchor
cfg_makeindex_cmd_name
<
dt
>\
c
MAKEINDEX_CMD_NAME
<
dd
>
...
...
doc/language.doc
View file @
a62d9f8f
...
...
@@ -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.6.
0
), 38 languages
Currently (version 1.6.
1
), 38 languages
are supported (sorted alphabetically):
Afrikaans, Arabic, Brazilian Portuguese, Catalan, Chinese, Chinese
Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto,
...
...
@@ -56,7 +56,7 @@ when the translator was updated.
<td>Afrikaans</td>
<td>Johan Prinsloo</td>
<td>johan at zippysnoek dot com</td>
<td>1.
4.6
</td>
<td>1.
6.0
</td>
</tr>
<tr bgcolor="#ffffff">
<td>Arabic</td>
...
...
@@ -218,7 +218,7 @@ when the translator was updated.
<td>Polish</td>
<td>Piotr Kaminski<br/>Grzegorz Kowal<br/>Krzysztof Kral</td>
<td>Piotr.Kaminski at ctm dot gdynia dot pl<br/>g_kowal at poczta dot onet dot pl<br/>krzysztof.kral at gmail dot com</td>
<td>
1.6.0
</td>
<td>
up-to-date
</td>
</tr>
<tr bgcolor="#ffffff">
<td>Portuguese</td>
...
...
@@ -307,7 +307,7 @@ when the translator was updated.
\hline
\hline
Afrikaans & Johan Prinsloo & {\tt\tiny johan@zippysnoek.com} & 1.
4.6
\\
Afrikaans & Johan Prinsloo & {\tt\tiny johan@zippysnoek.com} & 1.
6.0
\\
\hline
Arabic & Moaz Reyad & {\tt\tiny moazreyad@yahoo.com} & 1.4.6 \\
\hline
...
...
@@ -373,7 +373,7 @@ when the translator was updated.
\hline
Persian & Ali Nadalizadeh & {\tt\tiny nadalizadeh@gmail.com} & 1.6.0 \\
\hline
Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} &
1.6.0
\\
Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} &
up-to-date
\\
~ & Grzegorz Kowal & {\tt\tiny g\_kowal@poczta.onet.pl} & ~ \\
~ & Krzysztof Kral & {\tt\tiny krzysztof.kral@gmail.com} & ~ \\
\hline
...
...
doc/translator.py
View file @
a62d9f8f
...
...
@@ -49,7 +49,9 @@
2005/08/15 - Doxygen's root directory determined primarily from DOXYGEN
environment variable. When not found, then relatively to the script.
2007/03/20 - The "translate me!" searched in comments and reported if found.
2009/05/09 - Changed HTML output to make it confirm to XHTML DTD
2008/06/09 - Warning when the MAX_DOT_GRAPH_HEIGHT is still part of trLegendDocs().
2009/05/09 - Changed HTML output to fit it with XHTML DTD
2009/09/02 - Added percentage info to the report (implemented / to be implemented).
"""
from
__future__
import
generators
...
...
@@ -166,6 +168,7 @@ class Transl:
self
.
prototypeDic
=
{}
# uniPrototype -> prototype
self
.
translateMeText
=
'translate me!'
self
.
translateMeFlag
=
False
# comments with "translate me!" found
self
.
txtMAX_DOT_GRAPH_HEIGHT_flag
=
False
# found in string in trLegendDocs()
self
.
obsoleteMethods
=
None
# list of prototypes to be removed
self
.
missingMethods
=
None
# list of prototypes to be implemented
self
.
implementedMethods
=
None
# list of implemented required methods
...
...
@@ -769,6 +772,8 @@ class Transl:
# identifiers.
prototype
=
''
# readable prototype (with everything)
uniPrototype
=
''
# unified prototype (without arg. identifiers)
warning
=
''
# warning message -- if something special detected
methodId
=
None
# processed method id
# Collect the method prototypes. Stop on the closing
# curly brace followed by the semicolon (end of class).
...
...
@@ -823,6 +828,7 @@ class Transl:
if
tokenId
==
'id'
:
prototype
+=
' '
+
tokenStr
uniPrototype
+=
' '
+
tokenStr
methodId
=
tokenStr
# for reporting
status
=
5
else
:
self
.
__unexpectedToken
(
status
,
tokenId
,
tokenLineNo
)
...
...
@@ -885,8 +891,16 @@ class Transl:
assert
(
not
self
.
prototypeDic
.
has_key
(
uniPrototype
))
self
.
prototypeDic
[
uniPrototype
]
=
prototype
status
=
2
# body consumed
methodId
=
None
# outside of any method
elif
tokenId
==
'lcurly'
:
curlyCnt
+=
1
# Warn in special case.
elif
methodId
==
'trLegendDocs'
and
tokenId
==
'string'
\
and
tokenStr
.
find
(
'MAX_DOT_GRAPH_HEIGHT'
)
>=
0
:
self
.
txtMAX_DOT_GRAPH_HEIGHT_flag
=
True
elif
status
==
11
:
# probably the end of class
if
tokenId
==
'semic'
:
status
=
777
...
...
@@ -1114,10 +1128,17 @@ class Transl:
self
.
adaptMinClass
=
adaptMinClass
self
.
readableStatus
=
adaptMinVersion
# simplified
# If everything seems OK, but the explicit mark self.translateMeText
# in comments was found, something must be translated.
if
not
self
.
note
and
self
.
status
==
''
and
self
.
translateMeFlag
:
self
.
note
=
'The "
%
s" found in a comment.'
%
self
.
translateMeText
# If everything seems OK, some explicit warning flags still could
# be set.
if
not
self
.
note
and
self
.
status
==
''
and
\
(
self
.
translateMeFlag
or
self
.
txtMAX_DOT_GRAPH_HEIGHT_flag
):
self
.
note
=
''
if
self
.
translateMeFlag
:
self
.
note
+=
'The "
%
s" found in a comment.'
%
self
.
translateMeText
if
self
.
note
!=
''
:
self
.
note
+=
'
\n\t\t
'
if
self
.
txtMAX_DOT_GRAPH_HEIGHT_flag
:
self
.
note
+=
'The MAX_DOT_GRAPH_HEIGHT found in trLegendDocs()'
# If everything seems OK, but there are obsolete methods, set
# the note to clean-up source. This note will be used only when
...
...
@@ -1138,18 +1159,21 @@ class Transl:
# Report the number of not implemented methods.
fout
.
write
(
'
\n\n\n
'
)
fout
.
write
(
self
.
classId
+
' ('
+
self
.
baseClassId
+
')'
)
percentImplemented
=
100
# init
allNum
=
len
(
self
.
manager
.
requiredMethodsDic
)
if
self
.
missingMethods
:
num
=
len
(
self
.
missingMethods
)
percentImplemented
=
100
*
(
allNum
-
num
)
/
allNum
fout
.
write
(
'
%
d'
%
num
)
fout
.
write
(
' method'
)
if
num
>
1
:
fout
.
write
(
's'
)
fout
.
write
(
' to implement
'
)
fout
.
write
(
' to implement
(
%
d
%%
)'
%
(
100
*
num
/
allNum
)
)
fout
.
write
(
'
\n
'
+
'-'
*
len
(
self
.
classId
))
# Write the info about the implemented required methods.
fout
.
write
(
'
\n\n
Implements
%
d'
%
len
(
self
.
implementedMethods
))
fout
.
write
(
' of the required methods
.'
)
fout
.
write
(
' of the required methods
(
%
d
%%
).'
%
percentImplemented
)
# Report the missing method, but only when it is not English-based
# translator.
...
...
@@ -1541,6 +1565,7 @@ class TrManager:
adaptMinVersion
=
'9.9.99'
mailtoLst
=
[]
numRequired
=
len
(
self
.
requiredMethodsDic
)
for
x
in
self
.
adaptIdLst
:
obj
=
self
.
__translDic
[
x
]
f
.
write
(
'
%-30
s'
%
obj
.
classId
)
...
...
@@ -1548,7 +1573,9 @@ class TrManager:
numimpl
=
len
(
obj
.
missingMethods
)
pluralS
=
''
if
numimpl
>
1
:
pluralS
=
's'
f
.
write
(
'
\t
%2
d method
%
s to implement'
%
(
numimpl
,
pluralS
))
percent
=
100
*
numimpl
/
numRequired
f
.
write
(
'
\t
%2
d method
%
s to implement (
%
d
%%
)'
%
(
numimpl
,
pluralS
,
percent
))
if
obj
.
note
:
f
.
write
(
'
\n\t
Note: '
+
obj
.
note
+
'
\n
'
)
f
.
write
(
'
\n
'
)
...
...
doc/translator_report.txt
View file @
a62d9f8f
(1.6.
0
)
(1.6.
1
)
Doxygen supports the following 38 languages (sorted alphabetically):
...
...
@@ -10,7 +10,7 @@ Persian, Polish, Portuguese, Romanian, Russian, Serbian,
SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian,
and Vietnamese.
Of them,
4 translators are up-to-date, 34
translators are based on
Of them,
5 translators are up-to-date, 33
translators are based on
some adapter class, and 2 are English based.
----------------------------------------------------------------------
...
...
@@ -23,6 +23,7 @@ still may be some details listed even for them:
TranslatorDutch
TranslatorEnglish
TranslatorKorean
TranslatorPolish -- Remove the obsolete methods (never used).
----------------------------------------------------------------------
The following translator classes need some maintenance (the most
...
...
@@ -30,40 +31,39 @@ obsolete at the end). The other info shows the estimation of Doxygen
version when the class was last updated and number of methods that
must be implemented to become up-to-date:
TranslatorVietnamese 1.6.0 5 methods to implement
TranslatorTurkish 1.6.0 5 methods to implement
TranslatorSwedish 1.6.0 5 methods to implement
TranslatorSpanish 1.6.0 5 methods to implement
TranslatorSerbian 1.6.0 5 methods to implement
TranslatorSerbianCyrilic 1.6.0 5 methods to implement
TranslatorRussian 1.6.0 5 methods to implement
TranslatorRomanian 1.6.0 5 methods to implement
TranslatorPolish 1.6.0 5 methods to implement
TranslatorPersian 1.6.0 5 methods to implement
TranslatorMacedonian 1.6.0 5 methods to implement
TranslatorJapanese 1.6.0 5 methods to implement
TranslatorItalian 1.6.0 5 methods to implement
TranslatorGerman 1.6.0 5 methods to implement
TranslatorFinnish 1.6.0 5 methods to implement
TranslatorEsperanto 1.6.0 5 methods to implement
TranslatorCroatian 1.6.0 5 methods to implement
TranslatorChinese 1.6.0 5 methods to implement
TranslatorChinesetraditional 1.6.0 5 methods to implement
TranslatorCatalan 1.6.0 5 methods to implement
TranslatorBrazilian 1.6.0 5 methods to implement
TranslatorGreek 1.5.4 27 methods to implement
TranslatorFrench 1.5.4 27 methods to implement
TranslatorDanish 1.5.4 27 methods to implement
TranslatorSlovene 1.4.6 29 methods to implement
TranslatorNorwegian 1.4.6 28 methods to implement
TranslatorLithuanian 1.4.6 29 methods to implement
TranslatorIndonesian 1.4.6 28 methods to implement
TranslatorHungarian 1.4.6 29 methods to implement
TranslatorArabic 1.4.6 28 methods to implement
TranslatorAfrikaans 1.4.6 29 methods to implement
TranslatorUkrainian 1.4.1 29 methods to implement
TranslatorPortuguese 1.3.3 40 methods to implement
TranslatorSlovak 1.2.18 49 methods to implement
TranslatorVietnamese 1.6.0 5 methods to implement (2 %)
TranslatorTurkish 1.6.0 5 methods to implement (2 %)
TranslatorSwedish 1.6.0 5 methods to implement (2 %)
TranslatorSpanish 1.6.0 5 methods to implement (2 %)
TranslatorSerbian 1.6.0 5 methods to implement (2 %)
TranslatorSerbianCyrilic 1.6.0 5 methods to implement (2 %)
TranslatorRussian 1.6.0 5 methods to implement (2 %)
TranslatorRomanian 1.6.0 5 methods to implement (2 %)
TranslatorPersian 1.6.0 5 methods to implement (2 %)
TranslatorMacedonian 1.6.0 5 methods to implement (2 %)
TranslatorJapanese 1.6.0 5 methods to implement (2 %)
TranslatorItalian 1.6.0 5 methods to implement (2 %)
TranslatorGerman 1.6.0 5 methods to implement (2 %)
TranslatorFinnish 1.6.0 5 methods to implement (2 %)
TranslatorEsperanto 1.6.0 5 methods to implement (2 %)
TranslatorCroatian 1.6.0 5 methods to implement (2 %)
TranslatorChinese 1.6.0 5 methods to implement (2 %)
TranslatorChinesetraditional 1.6.0 5 methods to implement (2 %)
TranslatorCatalan 1.6.0 5 methods to implement (2 %)
TranslatorBrazilian 1.6.0 5 methods to implement (2 %)
TranslatorAfrikaans 1.6.0 5 methods to implement (2 %)
TranslatorGreek 1.5.4 27 methods to implement (12 %)
TranslatorFrench 1.5.4 22 methods to implement (9 %)
TranslatorDanish 1.5.4 27 methods to implement (12 %)
TranslatorSlovene 1.4.6 29 methods to implement (13 %)
TranslatorNorwegian 1.4.6 28 methods to implement (12 %)
TranslatorLithuanian 1.4.6 29 methods to implement (13 %)
TranslatorIndonesian 1.4.6 28 methods to implement (12 %)
TranslatorHungarian 1.4.6 29 methods to implement (13 %)
TranslatorArabic 1.4.6 28 methods to implement (12 %)
TranslatorUkrainian 1.4.1 29 methods to implement (13 %)
TranslatorPortuguese 1.3.3 40 methods to implement (18 %)
TranslatorSlovak 1.2.18 49 methods to implement (22 %)
----------------------------------------------------------------------
The following translator classes derive directly from the
...
...
@@ -91,48 +91,24 @@ Details for translators (classes sorted alphabetically):
TranslatorAfrikaans (TranslatorAdapter_1_
4_6) 29 methods to implement
TranslatorAfrikaans (TranslatorAdapter_1_
6_0) 5 methods to implement (2 %)
-------------------
Implements
192 of the required methods
.
Implements
216 of the required methods (97 %)
.
Missing methods (should be implemented):
virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
virtual QCString trSearching()
virtual QCString trNoMatches()
virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single)
virtual QCString trLoading()
virtual QCString trSubprograms()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trGlobalNamespace()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
virtual QCString trTypeDocumentation()
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
virtual QCString trModulesIndex()
virtual QCString trDirRelation(const char * name)
virtual QCString trCompoundListFortran()
virtual QCString trDataTypes()
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
virtual QCString trCallerGraph()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate)
virtual QCString trType(bool first_capital, bool singular)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
TranslatorArabic (TranslatorAdapter_1_4_6) 28 methods to implement
TranslatorArabic (TranslatorAdapter_1_4_6) 28 methods to implement
(12 %)
----------------
Implements 193 of the required methods.
Implements 193 of the required methods
(87 %)
.
Missing methods (should be implemented):
...
...
@@ -178,10 +154,10 @@ TranslatorArabic (TranslatorAdapter_1_4_6) 28 methods to implement
virtual QCString trNoDescriptionAvailable()
TranslatorBrazilian (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorBrazilian (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
-------------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -192,10 +168,10 @@ TranslatorBrazilian (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorCatalan (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorCatalan (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
-----------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -206,10 +182,10 @@ TranslatorCatalan (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorChinese (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorChinese (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
-----------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -220,10 +196,10 @@ TranslatorChinese (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorChinesetraditional (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorChinesetraditional (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
----------------------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -234,10 +210,10 @@ TranslatorChinesetraditional (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorCroatian (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorCroatian (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
------------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -248,10 +224,10 @@ TranslatorCroatian (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorDanish (TranslatorAdapter_1_5_4) 27 methods to implement
TranslatorDanish (TranslatorAdapter_1_5_4) 27 methods to implement
(12 %)
----------------
Implements 194 of the required methods.
Implements 194 of the required methods
(87 %)
.
Missing methods (should be implemented):
...
...
@@ -284,10 +260,10 @@ TranslatorDanish (TranslatorAdapter_1_5_4) 27 methods to implement
virtual QCString trSubprogramDocumentation()
TranslatorEsperanto (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorEsperanto (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
-------------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -298,10 +274,10 @@ TranslatorEsperanto (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorFinnish (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorFinnish (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
-----------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -312,23 +288,19 @@ TranslatorFinnish (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorFrench (TranslatorAdapter_1_5_4) 2
7 methods to implement
TranslatorFrench (TranslatorAdapter_1_5_4) 2
2 methods to implement (9 %)
----------------
Implements 19
4 of the required methods
.
Implements 19
9 of the required methods (90 %)
.
Missing methods (should be implemented):
virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
virtual QCString trSearching()
virtual QCString trNoMatches()
virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single)
virtual QCString trLoading()
virtual QCString trSubprograms()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trGlobalNamespace()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
virtual QCString trTypeDocumentation()
...
...
@@ -336,7 +308,6 @@ TranslatorFrench (TranslatorAdapter_1_5_4) 27 methods to implement
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
virtual QCString trModulesIndex()
virtual QCString trDirRelation(const char * name)
virtual QCString trCompoundListFortran()
virtual QCString trDataTypes()
virtual QCString trCompoundIndexFortran()
...
...
@@ -348,10 +319,10 @@ TranslatorFrench (TranslatorAdapter_1_5_4) 27 methods to implement
virtual QCString trSubprogramDocumentation()
TranslatorGerman (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorGerman (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
----------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -362,10 +333,10 @@ TranslatorGerman (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorGreek (TranslatorAdapter_1_5_4) 27 methods to implement
TranslatorGreek (TranslatorAdapter_1_5_4) 27 methods to implement
(12 %)
---------------
Implements 194 of the required methods.
Implements 194 of the required methods
(87 %)
.
Missing methods (should be implemented):
...
...
@@ -410,10 +381,10 @@ TranslatorGreek (TranslatorAdapter_1_5_4) 27 methods to implement
virtual QCString trNoDescriptionAvailable()
TranslatorHungarian (TranslatorAdapter_1_4_6) 29 methods to implement
TranslatorHungarian (TranslatorAdapter_1_4_6) 29 methods to implement
(13 %)
-------------------
Implements 192 of the required methods.
Implements 192 of the required methods
(86 %)
.
Missing methods (should be implemented):
...
...
@@ -448,10 +419,10 @@ TranslatorHungarian (TranslatorAdapter_1_4_6) 29 methods to implement
virtual QCString trSubprogramDocumentation()
TranslatorIndonesian (TranslatorAdapter_1_4_6) 28 methods to implement
TranslatorIndonesian (TranslatorAdapter_1_4_6) 28 methods to implement
(12 %)
--------------------
Implements 193 of the required methods.
Implements 193 of the required methods
(87 %)
.
Missing methods (should be implemented):
...
...
@@ -497,10 +468,10 @@ TranslatorIndonesian (TranslatorAdapter_1_4_6) 28 methods to implement
virtual QCString trNoDescriptionAvailable()
TranslatorItalian (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorItalian (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
-----------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -511,10 +482,10 @@ TranslatorItalian (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorJapanese (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorJapanese (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
------------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -537,10 +508,10 @@ TranslatorJapanese (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trNoDescriptionAvailable()
TranslatorJapaneseEn (TranslatorEnglish) 216 methods to implement
TranslatorJapaneseEn (TranslatorEnglish) 216 methods to implement
(97 %)
--------------------
Implements 5 of the required methods.
Implements 5 of the required methods
(2 %)
.
This English-based translator implements the following methods:
...
...
@@ -551,10 +522,10 @@ TranslatorJapaneseEn (TranslatorEnglish) 216 methods to implement
virtual QCString latexLanguageSupportCommand()
TranslatorKoreanEn (TranslatorEnglish) 216 methods to implement
TranslatorKoreanEn (TranslatorEnglish) 216 methods to implement
(97 %)
------------------
Implements 5 of the required methods.
Implements 5 of the required methods
(2 %)
.
This English-based translator implements the following methods:
...
...
@@ -565,10 +536,10 @@ TranslatorKoreanEn (TranslatorEnglish) 216 methods to implement
virtual QCString latexLanguageSupportCommand()
TranslatorLithuanian (TranslatorAdapter_1_4_6) 29 methods to implement
TranslatorLithuanian (TranslatorAdapter_1_4_6) 29 methods to implement
(13 %)
--------------------
Implements 192 of the required methods.
Implements 192 of the required methods
(86 %)
.
Missing methods (should be implemented):
...
...
@@ -603,10 +574,10 @@ TranslatorLithuanian (TranslatorAdapter_1_4_6) 29 methods to implement
virtual QCString trSubprogramDocumentation()
TranslatorMacedonian (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorMacedonian (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
--------------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -617,10 +588,10 @@ TranslatorMacedonian (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorNorwegian (TranslatorAdapter_1_4_6) 28 methods to implement
TranslatorNorwegian (TranslatorAdapter_1_4_6) 28 methods to implement
(12 %)
-------------------
Implements 193 of the required methods.
Implements 193 of the required methods
(87 %)
.
Missing methods (should be implemented):
...
...
@@ -666,10 +637,10 @@ TranslatorNorwegian (TranslatorAdapter_1_4_6) 28 methods to implement
virtual QCString trNoDescriptionAvailable()
TranslatorPersian (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorPersian (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
-----------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -680,18 +651,10 @@ TranslatorPersian (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorPolish (Translator
Adapter_1_6_0) 5 methods to implement
TranslatorPolish (Translator
)
----------------
Implements 216 of the required methods.
Missing methods (should be implemented):
virtual QCString trSearching()
virtual QCString trNoMatches()
virtual QCString trLoading()
virtual QCString trGlobalNamespace()
virtual QCString trDirRelation(const char * name)
Implements 221 of the required methods (100 %).
Obsolete methods (should be removed, never used):
...
...
@@ -706,10 +669,10 @@ TranslatorPolish (TranslatorAdapter_1_6_0) 5 methods to implement
QCString trNoDescriptionAvailable()
TranslatorPortuguese (TranslatorAdapter_1_3_3) 40 methods to implement
TranslatorPortuguese (TranslatorAdapter_1_3_3) 40 methods to implement
(18 %)
--------------------
Implements 181 of the required methods.
Implements 181 of the required methods
(81 %)
.
Missing methods (should be implemented):
...
...
@@ -767,10 +730,10 @@ TranslatorPortuguese (TranslatorAdapter_1_3_3) 40 methods to implement
QCString trNoDescriptionAvailable()
TranslatorRomanian (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorRomanian (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
------------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -781,10 +744,10 @@ TranslatorRomanian (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorRussian (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorRussian (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
-----------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -795,10 +758,10 @@ TranslatorRussian (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorSerbian (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorSerbian (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
-----------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -809,10 +772,10 @@ TranslatorSerbian (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorSerbianCyrilic (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorSerbianCyrilic (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
------------------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -823,10 +786,10 @@ TranslatorSerbianCyrilic (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorSlovak (TranslatorAdapter_1_2_18) 49 methods to implement
TranslatorSlovak (TranslatorAdapter_1_2_18) 49 methods to implement
(22 %)
----------------
Implements 172 of the required methods.
Implements 172 of the required methods
(77 %)
.
Missing methods (should be implemented):
...
...
@@ -893,10 +856,10 @@ TranslatorSlovak (TranslatorAdapter_1_2_18) 49 methods to implement
virtual QCString trNoDescriptionAvailable()
TranslatorSlovene (TranslatorAdapter_1_4_6) 29 methods to implement
TranslatorSlovene (TranslatorAdapter_1_4_6) 29 methods to implement
(13 %)
-----------------
Implements 192 of the required methods.
Implements 192 of the required methods
(86 %)
.
Missing methods (should be implemented):
...
...
@@ -931,10 +894,10 @@ TranslatorSlovene (TranslatorAdapter_1_4_6) 29 methods to implement
virtual QCString trSubprogramDocumentation()
TranslatorSpanish (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorSpanish (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
-----------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -945,10 +908,10 @@ TranslatorSpanish (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorSwedish (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorSwedish (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
-----------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -959,10 +922,10 @@ TranslatorSwedish (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorTurkish (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorTurkish (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
-----------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
@@ -973,10 +936,10 @@ TranslatorTurkish (TranslatorAdapter_1_6_0) 5 methods to implement
virtual QCString trDirRelation(const char * name)
TranslatorUkrainian (TranslatorAdapter_1_4_1) 29 methods to implement
TranslatorUkrainian (TranslatorAdapter_1_4_1) 29 methods to implement
(13 %)
-------------------
Implements 192 of the required methods.
Implements 192 of the required methods
(86 %)
.
Missing methods (should be implemented):
...
...
@@ -1023,10 +986,10 @@ TranslatorUkrainian (TranslatorAdapter_1_4_1) 29 methods to implement
virtual QCString trNoDescriptionAvailable()
TranslatorVietnamese (TranslatorAdapter_1_6_0) 5 methods to implement
TranslatorVietnamese (TranslatorAdapter_1_6_0) 5 methods to implement
(2 %)
--------------------
Implements 216 of the required methods.
Implements 216 of the required methods
(97 %)
.
Missing methods (should be implemented):
...
...
src/bufstr.h
View file @
a62d9f8f
...
...
@@ -69,6 +69,10 @@ class BufStr
}
m_buf
=
(
char
*
)
realloc
(
m_buf
,
m_size
);
}
int
size
()
const
{
return
m_size
;
}
char
*
data
()
const
{
return
m_buf
;
...
...
src/classdef.cpp
View file @
a62d9f8f
...
...
@@ -3089,10 +3089,12 @@ void ClassDef::addListReferences()
{
LockingPtr
<
QList
<
ListItemInfo
>
>
xrefItems
=
xrefListItems
();
addRefItem
(
xrefItems
.
pointer
(),
qualifiedName
(),
fortranOpt
?
theTranslator
->
trType
(
TRUE
,
TRUE
)
:
theTranslator
->
trClass
(
TRUE
,
TRUE
),
getOutputFileBase
(),
displayName
()
displayName
(),
0
);
}
if
(
m_impl
->
memberGroupSDict
)
...
...
src/config.l
View file @
a62d9f8f
...
...
@@ -1395,26 +1395,6 @@ void Config::check()
config_err("Warning: Specifying QCH_FILE requires QHG_LOCATION to be set.\n");
}
if (Config_getBool("HAVE_DOT"))
{
QCString curFontPath = Config_getString("DOT_FONTPATH");
if (curFontPath.isEmpty())
{
portable_getenv("DOTFONTPATH");
QCString newFontPath = ".";
if (!curFontPath.isEmpty())
{
newFontPath+=portable_pathListSeparator();
newFontPath+=curFontPath;
}
portable_setenv("DOTFONTPATH",newFontPath);
}
else
{
portable_setenv("DOTFONTPATH",curFontPath);
}
}
if (Config_getBool("OPTIMIZE_OUTPUT_JAVA") && Config_getBool("INLINE_INFO"))
{
// don't show inline info for Java output, since Java has no inline
...
...
src/config.xml
View file @
a62d9f8f
...
...
@@ -139,7 +139,7 @@ the path. The tag can be used to show relative paths in the file list.
If left blank the directory from which doxygen is run is used as the
path to strip.
'
depends=
'FULL_PATH_NAMES'
>
<value
name=
'
/Users/dimitri/doxygen/mail/1.5.7/doxywizard/
'
/>
<value
name=
''
/>
</option>
<option
type=
'list'
id=
'STRIP_FROM_INC_PATH'
format=
'string'
docs=
'
The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
...
...
@@ -536,7 +536,7 @@ documented source files. You may enter file names like "myfile.cpp" or
directories like "/usr/src/myproject". Separate the files or directories
with spaces.
'
>
<value
name=
'
/Users/dimitri/doxygen/mail/1.5.7/doxywizard
'
/>
<value
name=
''
/>
</option>
<option
type=
'string'
id=
'INPUT_ENCODING'
format=
'string'
docs=
'
This tag can be used to specify the character encoding of the source files
...
...
@@ -933,6 +933,9 @@ put in front of it. If left blank `latex' will be used as the default path.
<option
type=
'string'
id=
'LATEX_CMD_NAME'
format=
'file'
docs=
'
The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
invoked. If left blank `latex' will be used as the default command name.
Note that when enabling USE_PDFLATEX this option is only used for
generating bitmaps for formulas in the HTML output, but not in the
Makefile that is written to the output directory.
'
defval=
'latex'
depends=
'GENERATE_LATEX'
/>
<option
type=
'string'
id=
'MAKEINDEX_CMD_NAME'
format=
'file'
docs=
'
The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
...
...
src/configoptions.cpp
View file @
a62d9f8f
...
...
@@ -192,7 +192,7 @@ void addConfigOptions(Config *cfg)
"If left blank the directory from which doxygen is run is used as the
\n
"
"path to strip."
);
cl
->
addValue
(
"
/Users/dimitri/doxygen/mail/1.5.7/doxywizard/
"
);
cl
->
addValue
(
""
);
cl
->
addDependency
(
"FULL_PATH_NAMES"
);
//----
cl
=
cfg
->
addList
(
...
...
@@ -767,7 +767,7 @@ void addConfigOptions(Config *cfg)
"directories like
\"
/usr/src/myproject
\"
. Separate the files or directories
\n
"
"with spaces."
);
cl
->
addValue
(
"
/Users/dimitri/doxygen/mail/1.5.7/doxywizard
"
);
cl
->
addValue
(
""
);
cl
->
setWidgetType
(
ConfigList
::
FileAndDir
);
//----
cs
=
cfg
->
addString
(
...
...
@@ -1372,7 +1372,10 @@ void addConfigOptions(Config *cfg)
cs
=
cfg
->
addString
(
"LATEX_CMD_NAME"
,
"The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
\n
"
"invoked. If left blank `latex' will be used as the default command name."
"invoked. If left blank `latex' will be used as the default command name.
\n
"
"Note that when enabling USE_PDFLATEX this option is only used for
\n
"
"generating bitmaps for formulas in the HTML output, but not in the
\n
"
"Makefile that is written to the output directory."
);
cs
->
setDefaultValue
(
"latex"
);
cs
->
setWidgetType
(
ConfigString
::
File
);
...
...
src/definition.cpp
View file @
a62d9f8f
...
...
@@ -198,9 +198,10 @@ static bool matchExcludedSymbols(const char *name)
void
Definition
::
addToMap
(
const
char
*
name
,
Definition
*
d
)
{
static
bool
vhdlOpt
=
Config_getBool
(
"OPTIMIZE_OUTPUT_VHDL"
);
QCString
symbolName
=
name
;
int
index
=
computeQualifiedIndex
(
symbolName
);
if
(
index
!=-
1
)
symbolName
=
symbolName
.
mid
(
index
+
2
);
if
(
!
vhdlOpt
&&
index
!=-
1
)
symbolName
=
symbolName
.
mid
(
index
+
2
);
if
(
!
symbolName
.
isEmpty
())
{
//printf("******* adding symbol `%s' (%p)\n",symbolName.data(),d);
...
...
@@ -1240,7 +1241,7 @@ void Definition::writePathFragment(OutputList &ol) const
else
{
ol
.
writeString
(
" "
);
ol
.
writeString
(
"»"
);
ol
.
writeString
(
"»
;
"
);
ol
.
writeString
(
" "
);
}
}
...
...
src/dirdef.cpp
View file @
a62d9f8f
...
...
@@ -720,9 +720,11 @@ void DirRelation::writeDocumentation(OutputList &ol)
ol
.
writeString
(
"<table class=
\"
dirtab
\"
>"
);
ol
.
writeString
(
"<tr class=
\"
dirtab
\"
>"
);
// TODO: translate me! "File in %s"
ol
.
writeString
(
"<th class=
\"
dirtab
\"
>File in "
);
m_src
->
writePathFragment
(
ol
);
ol
.
writeString
(
"</th>"
);
// TODO: translate me! "Includes file in %s"
ol
.
writeString
(
"<th class=
\"
dirtab
\"
>Includes file in "
);
m_dst
->
dir
()
->
writePathFragment
(
ol
);
ol
.
writeString
(
"</th>"
);
...
...
@@ -844,7 +846,7 @@ void computeDirDependencies()
#endif
}
#if 0
void writeDirDependencyGraph(const char *dirName)
{
QString path;
...
...
@@ -889,6 +891,7 @@ void writeDirDependencyGraph(const char *dirName)
}
htmlPage.close();
}
#endif
void
generateDirDocs
(
OutputList
&
ol
)
{
...
...
src/dot.cpp
View file @
a62d9f8f
...
...
@@ -261,6 +261,35 @@ static void resetReNumbering()
s_newNumber
.
resize
(
s_max_newNumber
);
}
static
QCString
g_dotFontPath
;
static
void
setDotFontPath
(
const
char
*
path
)
{
ASSERT
(
g_dotFontPath
.
isEmpty
());
g_dotFontPath
=
portable_getenv
(
"DOTFONTPATH"
);
QCString
newFontPath
=
Config_getString
(
"DOT_FONTPATH"
);
if
(
!
newFontPath
.
isEmpty
()
&&
path
)
{
newFontPath
.
prepend
(
path
+
portable_pathListSeparator
());
}
else
if
(
newFontPath
.
isEmpty
()
&&
path
)
{
newFontPath
=
path
;
}
else
{
portable_unsetenv
(
"DOTFONTPATH"
);
return
;
}
portable_setenv
(
"DOTFONTPATH"
,
newFontPath
);
}
static
void
unsetDotFontPath
()
{
portable_setenv
(
"DOTFONTPATH"
,
g_dotFontPath
);
g_dotFontPath
=
""
;
}
static
bool
readBoundingBoxEPS
(
const
char
*
fileName
,
int
*
width
,
int
*
height
)
{
QCString
bb
(
"%%PageBoundingBox:"
);
...
...
@@ -375,6 +404,12 @@ void DotRunner::addJob(const char *format,const char *output)
m_jobs
.
append
(
new
QCString
(
args
));
}
void
DotRunner
::
addPostProcessing
(
const
char
*
cmd
,
const
char
*
args
)
{
m_postCmd
=
cmd
;
m_postArgs
=
args
;
}
bool
DotRunner
::
run
()
{
int
exitCode
=
0
;
...
...
@@ -406,6 +441,11 @@ bool DotRunner::run()
}
}
}
if
(
!
m_postCmd
.
isEmpty
()
&&
portable_system
(
m_postCmd
,
m_postArgs
)
!=
0
)
{
err
(
"Error: Problems running '%s' as a post-processing step for dot output
\n
"
,
m_postCmd
.
data
());
return
FALSE
;
}
return
TRUE
;
error
:
err
(
"Problems running dot: exit code=%d, command='%s', arguments='%s'
\n
"
,
...
...
@@ -1056,10 +1096,11 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) const
{
err
(
"Error: Output dir %s does not exist!
\n
"
,
path
);
exit
(
1
);
}
QCString
oldDir
=
convertToQCString
(
QDir
::
currentDirPath
());
setDotFontPath
(
d
.
absPath
());
//QCString oldDir = convertToQCString(QDir::currentDirPath());
// go to the html output directory (i.e. path)
QDir
::
setCurrent
(
d
.
absPath
());
QDir
thisDir
;
//
QDir::setCurrent(d.absPath());
//
QDir thisDir;
// put each connected subgraph of the hierarchy in a row of the HTML output
out
<<
"<table border=
\"
0
\"
cellspacing=
\"
10
\"
cellpadding=
\"
0
\"
>"
<<
endl
;
...
...
@@ -1073,8 +1114,11 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) const
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
baseName
.
sprintf
(
"inherit_graph_%d"
,
count
++
);
baseName
=
convertNameToFile
(
baseName
);
QCString
imgName
=
baseName
+
"."
+
imgExt
;
QCString
mapName
=
baseName
+
".map"
;
QCString
imgName
=
baseName
+
"."
+
imgExt
;
QCString
mapName
=
baseName
+
".map"
;
QCString
absImgName
=
QCString
(
d
.
absPath
().
data
())
+
"/"
+
imgName
;
QCString
absMapName
=
QCString
(
d
.
absPath
().
data
())
+
"/"
+
mapName
;
QCString
absBaseName
=
QCString
(
d
.
absPath
().
data
())
+
"/"
+
baseName
;
QListIterator
<
DotNode
>
dnli2
(
*
m_rootNodes
);
DotNode
*
node
;
...
...
@@ -1104,11 +1148,11 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) const
QCString
sigStr
(
33
);
MD5Buffer
((
const
unsigned
char
*
)
theGraph
.
ascii
(),
theGraph
.
length
(),
md5_sig
);
MD5SigToString
(
md5_sig
,
sigStr
.
data
(),
33
);
if
(
checkAndUpdateMd5Signature
(
b
aseName
,
sigStr
)
||
!
QFileInfo
(
m
apName
).
exists
())
if
(
checkAndUpdateMd5Signature
(
absB
aseName
,
sigStr
)
||
!
QFileInfo
(
absM
apName
).
exists
())
{
// image was new or has changed
QCString
dotName
=
b
aseName
+
".dot"
;
QCString
dotName
=
absB
aseName
+
".dot"
;
QFile
f
(
dotName
);
if
(
!
f
.
open
(
IO_WriteOnly
))
return
;
QTextStream
t
(
&
f
);
...
...
@@ -1118,30 +1162,30 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) const
resetReNumbering
();
DotRunner
dotRun
(
dotName
);
dotRun
.
addJob
(
imgExt
,
i
mgName
);
dotRun
.
addJob
(
MAP_CMD
,
m
apName
);
dotRun
.
addJob
(
imgExt
,
absI
mgName
);
dotRun
.
addJob
(
MAP_CMD
,
absM
apName
);
if
(
!
dotRun
.
run
())
{
out
<<
"</table>"
<<
endl
;
unsetDotFontPath
();
return
;
}
checkDotResult
(
imgName
);
if
(
Config_getBool
(
"DOT_CLEANUP"
))
thisDir
.
remove
(
dotName
);
checkDotResult
(
absImgName
);
if
(
Config_getBool
(
"DOT_CLEANUP"
))
d
.
remove
(
dotName
);
}
Doxygen
::
indexList
.
addImageFile
(
i
mgName
);
Doxygen
::
indexList
.
addImageFile
(
absI
mgName
);
// write image and map in a table row
QCString
mapLabel
=
escapeCharsInString
(
n
->
m_label
,
FALSE
);
out
<<
"<tr><td><img src=
\"
"
<<
imgName
<<
"
\"
border=
\"
0
\"
alt=
\"\"
usemap=
\"
#"
<<
mapLabel
<<
"_map
\"
/>"
<<
endl
;
out
<<
"<map name=
\"
"
<<
mapLabel
<<
"_map
\"
id=
\"
"
<<
mapLabel
<<
"
\"
>"
<<
endl
;
convertMapFile
(
out
,
m
apName
,
""
);
convertMapFile
(
out
,
absM
apName
,
""
);
out
<<
"</map></td></tr>"
<<
endl
;
//thisDir.remove(mapName);
}
out
<<
"</table>"
<<
endl
;
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
}
void
DotGfxHierarchyTable
::
addHierarchy
(
DotNode
*
n
,
ClassDef
*
cd
,
bool
hideSuper
)
...
...
@@ -1776,7 +1820,6 @@ QCString computeMd5Signature(DotNode *root,
static
bool
updateDotGraph
(
DotNode
*
root
,
DotNode
::
GraphType
gt
,
//QDir &thisDir,
const
QCString
&
baseName
,
GraphOutputFormat
format
,
bool
lrRank
,
...
...
@@ -1837,10 +1880,7 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
{
err
(
"Error: Output dir %s does not exist!
\n
"
,
path
);
exit
(
1
);
}
QCString
oldDir
=
convertToQCString
(
QDir
::
currentDirPath
());
// go to the html output directory (i.e. path)
QDir
::
setCurrent
(
d
.
absPath
());
QDir
thisDir
;
setDotFontPath
(
d
.
absPath
());
QCString
baseName
;
QCString
mapName
;
...
...
@@ -1860,14 +1900,15 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
break
;
}
baseName
=
convertNameToFile
(
diskName
());
QCString
absBaseName
=
QCString
(
d
.
absPath
().
data
())
+
"/"
+
baseName
;
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
if
(
updateDotGraph
(
m_startNode
,
m_graphType
,
b
aseName
,
absB
aseName
,
format
,
m_lrRank
,
//!isTBRank,
m_lrRank
,
m_graphType
==
DotNode
::
Inheritance
,
TRUE
)
...
...
@@ -1876,44 +1917,38 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
if
(
format
==
BITMAP
)
// run dot to create a bitmap image
{
QCString
dotArgs
(
maxCmdLine
);
QCString
imgName
=
b
aseName
+
"."
+
imgExt
;
QCString
absImgName
=
absB
aseName
+
"."
+
imgExt
;
DotRunner
dotRun
(
b
aseName
+
".dot"
);
dotRun
.
addJob
(
imgExt
,
i
mgName
);
if
(
generateImageMap
)
dotRun
.
addJob
(
MAP_CMD
,
b
aseName
+
".map"
);
DotRunner
dotRun
(
absB
aseName
+
".dot"
);
dotRun
.
addJob
(
imgExt
,
absI
mgName
);
if
(
generateImageMap
)
dotRun
.
addJob
(
MAP_CMD
,
absB
aseName
+
".map"
);
if
(
!
dotRun
.
run
())
{
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
baseName
;
}
checkDotResult
(
imgName
);
checkDotResult
(
absImgName
);
}
else
if
(
format
==
EPS
)
// run dot to create a .eps image
{
DotRunner
dotRun
(
baseName
+
".dot"
);
dotRun
.
addJob
(
"ps"
,
baseName
+
".eps"
);
if
(
!
dotRun
.
run
())
{
QDir
::
setCurrent
(
oldDir
);
return
baseName
;
}
DotRunner
dotRun
(
absBaseName
+
".dot"
);
dotRun
.
addJob
(
"ps"
,
absBaseName
+
".eps"
);
if
(
Config_getBool
(
"USE_PDFLATEX"
))
{
QCString
epstopdfArgs
(
maxCmdLine
);
epstopdfArgs
.
sprintf
(
"
\"
%s.eps
\"
--outfile=
\"
%s.pdf
\"
"
,
baseName
.
data
(),
baseName
.
data
());
if
(
portable_system
(
"epstopdf"
,
epstopdfArgs
)
!=
0
)
absBaseName
.
data
(),
absBaseName
.
data
());
dotRun
.
addPostProcessing
(
"epstopdf"
,
epstopdfArgs
);
}
if
(
!
dotRun
.
run
())
{
err
(
"Error: Problems running epstopdf. Check your TeX installation!
\n
"
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
();
return
baseName
;
}
}
}
if
(
Config_getBool
(
"DOT_CLEANUP"
))
thisDir
.
remove
(
baseName
+
".dot"
);
if
(
Config_getBool
(
"DOT_CLEANUP"
))
d
.
remove
(
baseName
+
".dot"
);
}
Doxygen
::
indexList
.
addImageFile
(
baseName
+
"."
+
imgExt
);
...
...
@@ -1940,22 +1975,21 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
QString
tmpstr
;
QTextOStream
tmpout
(
&
tmpstr
);
tmpout
.
setEncoding
(
tmpout
.
UnicodeUTF8
);
convertMapFile
(
tmpout
,
b
aseName
+
".map"
,
relPath
);
convertMapFile
(
tmpout
,
absB
aseName
+
".map"
,
relPath
);
if
(
!
tmpstr
.
isEmpty
())
{
out
<<
"<map name=
\"
"
<<
mapLabel
<<
"
\"
id=
\"
"
<<
mapLabel
<<
"
\"
>"
<<
endl
;
out
<<
tmpstr
;
out
<<
"</map>"
<<
endl
;
}
//thisDir.remove(baseName+".map");
}
else
if
(
format
==
EPS
)
// produce tex to include the .eps image
{
int
width
=
420
,
height
=
600
;
if
(
!
readBoundingBoxEPS
(
b
aseName
+
".eps"
,
&
width
,
&
height
))
if
(
!
readBoundingBoxEPS
(
absB
aseName
+
".eps"
,
&
width
,
&
height
))
{
err
(
"Error: Could not extract bounding box from .eps!
\n
"
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
baseName
;
}
//printf("Got EPS size %d,%d\n",width,height);
...
...
@@ -1981,8 +2015,8 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
"
\\
end{center}
\n
"
"
\\
end{figure}
\n
"
;
}
unsetDotFontPath
();
QDir
::
setCurrent
(
oldDir
);
return
baseName
;
}
...
...
@@ -2185,10 +2219,7 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
{
err
(
"Error: Output dir %s does not exist!
\n
"
,
path
);
exit
(
1
);
}
QCString
oldDir
=
convertToQCString
(
QDir
::
currentDirPath
());
// go to the html output directory (i.e. path)
QDir
::
setCurrent
(
d
.
absPath
());
QDir
thisDir
;
setDotFontPath
(
d
.
absPath
());
QCString
baseName
=
m_diskName
;
if
(
m_inverse
)
baseName
+=
"_dep"
;
...
...
@@ -2198,9 +2229,12 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
if
(
m_inverse
)
mapName
+=
"dep"
;
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
QCString
absBaseName
=
QCString
(
d
.
absPath
())
+
"/"
+
baseName
;
QCString
absMapName
=
QCString
(
d
.
absPath
())
+
"/"
+
mapName
;
if
(
updateDotGraph
(
m_startNode
,
DotNode
::
Dependency
,
b
aseName
,
absB
aseName
,
format
,
FALSE
,
// lrRank
FALSE
,
// renderParents
...
...
@@ -2212,41 +2246,36 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
{
// run dot to create a bitmap image
QCString
dotArgs
(
maxCmdLine
);
QCString
imgName
=
b
aseName
+
"."
+
imgExt
;
DotRunner
dotRun
(
b
aseName
+
".dot"
);
dotRun
.
addJob
(
imgExt
,
i
mgName
);
if
(
generateImageMap
)
dotRun
.
addJob
(
MAP_CMD
,
b
aseName
+
".map"
);
QCString
absImgName
=
absB
aseName
+
"."
+
imgExt
;
DotRunner
dotRun
(
absB
aseName
+
".dot"
);
dotRun
.
addJob
(
imgExt
,
absI
mgName
);
if
(
generateImageMap
)
dotRun
.
addJob
(
MAP_CMD
,
absB
aseName
+
".map"
);
if
(
!
dotRun
.
run
())
{
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
baseName
;
}
checkDotResult
(
i
mgName
);
checkDotResult
(
absI
mgName
);
}
else
if
(
format
==
EPS
)
{
// run dot to create a .eps image
DotRunner
dotRun
(
baseName
+
".dot"
);
dotRun
.
addJob
(
"ps"
,
baseName
+
".eps"
);
if
(
!
dotRun
.
run
())
{
QDir
::
setCurrent
(
oldDir
);
return
baseName
;
}
DotRunner
dotRun
(
absBaseName
+
".dot"
);
dotRun
.
addJob
(
"ps"
,
absBaseName
+
".eps"
);
if
(
Config_getBool
(
"USE_PDFLATEX"
))
{
QCString
epstopdfArgs
(
maxCmdLine
);
epstopdfArgs
.
sprintf
(
"
\"
%s.eps
\"
--outfile=
\"
%s.pdf
\"
"
,
baseName
.
data
(),
baseName
.
data
());
if
(
portable_system
(
"epstopdf"
,
epstopdfArgs
)
!=
0
)
absBaseName
.
data
(),
absBaseName
.
data
());
dotRun
.
addPostProcessing
(
"epstopdf"
,
epstopdfArgs
);
}
if
(
!
dotRun
.
run
())
{
err
(
"Error: Problems running epstopdf. Check your TeX installation!
\n
"
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
();
return
baseName
;
}
}
}
}
Doxygen
::
indexList
.
addImageFile
(
baseName
+
"."
+
imgExt
);
if
(
format
==
BITMAP
&&
generateImageMap
)
...
...
@@ -2258,22 +2287,21 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
QString
tmpstr
;
QTextOStream
tmpout
(
&
tmpstr
);
tmpout
.
setEncoding
(
tmpout
.
UnicodeUTF8
);
convertMapFile
(
tmpout
,
b
aseName
+
".map"
,
relPath
);
convertMapFile
(
tmpout
,
absB
aseName
+
".map"
,
relPath
);
if
(
!
tmpstr
.
isEmpty
())
{
out
<<
"<map name=
\"
"
<<
mapName
<<
"_map
\"
id=
\"
"
<<
mapName
<<
"
\"
>"
<<
endl
;
out
<<
tmpstr
;
out
<<
"</map>"
<<
endl
;
}
//thisDir.remove(baseName+".map");
}
else
if
(
format
==
EPS
)
{
int
width
,
height
;
if
(
!
readBoundingBoxEPS
(
b
aseName
+
".eps"
,
&
width
,
&
height
))
if
(
!
readBoundingBoxEPS
(
absB
aseName
+
".eps"
,
&
width
,
&
height
))
{
err
(
"Error: Could not extract bounding box from .eps!
\n
"
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
baseName
;
}
int
maxWidth
=
420
;
/* approx. page width in points */
...
...
@@ -2288,9 +2316,9 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
"
\\
end{figure}
\n
"
;
}
if
(
Config_getBool
(
"DOT_CLEANUP"
))
thisDir
.
remove
(
baseName
+
".dot"
);
if
(
Config_getBool
(
"DOT_CLEANUP"
))
d
.
remove
(
baseName
+
".dot"
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
baseName
;
}
...
...
@@ -2482,18 +2510,17 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
{
err
(
"Error: Output dir %s does not exist!
\n
"
,
path
);
exit
(
1
);
}
QCString
oldDir
=
convertToQCString
(
QDir
::
currentDirPath
());
// go to the html output directory (i.e. path)
QDir
::
setCurrent
(
d
.
absPath
());
QDir
thisDir
;
setDotFontPath
(
d
.
absPath
());
QCString
baseName
=
m_diskName
+
(
m_inverse
?
"_icgraph"
:
"_cgraph"
);
QCString
mapName
=
baseName
;
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
QCString
absBaseName
=
QCString
(
d
.
absPath
())
+
"/"
+
baseName
;
if
(
updateDotGraph
(
m_startNode
,
DotNode
::
CallGraph
,
b
aseName
,
absB
aseName
,
format
,
TRUE
,
// lrRank
FALSE
,
// renderParents
...
...
@@ -2505,41 +2532,36 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
{
// run dot to create a bitmap image
QCString
dotArgs
(
maxCmdLine
);
QCString
imgName
=
b
aseName
+
"."
+
imgExt
;
DotRunner
dotRun
(
b
aseName
+
".dot"
);
dotRun
.
addJob
(
imgExt
,
i
mgName
);
if
(
generateImageMap
)
dotRun
.
addJob
(
MAP_CMD
,
b
aseName
+
".map"
);
QCString
absImgName
=
absB
aseName
+
"."
+
imgExt
;
DotRunner
dotRun
(
absB
aseName
+
".dot"
);
dotRun
.
addJob
(
imgExt
,
absI
mgName
);
if
(
generateImageMap
)
dotRun
.
addJob
(
MAP_CMD
,
absB
aseName
+
".map"
);
if
(
!
dotRun
.
run
())
{
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
baseName
;
}
checkDotResult
(
i
mgName
);
checkDotResult
(
absI
mgName
);
}
else
if
(
format
==
EPS
)
{
// run dot to create a .eps image
DotRunner
dotRun
(
baseName
+
".dot"
);
dotRun
.
addJob
(
"ps"
,
baseName
+
".eps"
);
if
(
!
dotRun
.
run
())
{
QDir
::
setCurrent
(
oldDir
);
return
baseName
;
}
DotRunner
dotRun
(
absBaseName
+
".dot"
);
dotRun
.
addJob
(
"ps"
,
absBaseName
+
".eps"
);
if
(
Config_getBool
(
"USE_PDFLATEX"
))
{
QCString
epstopdfArgs
(
maxCmdLine
);
epstopdfArgs
.
sprintf
(
"
\"
%s.eps
\"
--outfile=
\"
%s.pdf
\"
"
,
baseName
.
data
(),
baseName
.
data
());
if
(
portable_system
(
"epstopdf"
,
epstopdfArgs
)
!=
0
)
absBaseName
.
data
(),
absBaseName
.
data
());
dotRun
.
addPostProcessing
(
"epstopdf"
,
epstopdfArgs
);
}
if
(
!
dotRun
.
run
())
{
err
(
"Error: Problems running epstopdf. Check your TeX installation!
\n
"
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
();
return
baseName
;
}
}
}
}
Doxygen
::
indexList
.
addImageFile
(
baseName
+
"."
+
imgExt
);
if
(
format
==
BITMAP
&&
generateImageMap
)
...
...
@@ -2552,22 +2574,21 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
QString
tmpstr
;
QTextOStream
tmpout
(
&
tmpstr
);
tmpout
.
setEncoding
(
tmpout
.
UnicodeUTF8
);
convertMapFile
(
tmpout
,
b
aseName
+
".map"
,
relPath
);
convertMapFile
(
tmpout
,
absB
aseName
+
".map"
,
relPath
);
if
(
!
tmpstr
.
isEmpty
())
{
out
<<
"<map name=
\"
"
<<
mapName
<<
"_map
\"
id=
\"
"
<<
mapName
<<
"
\"
>"
<<
endl
;
out
<<
tmpstr
;
out
<<
"</map>"
<<
endl
;
}
//thisDir.remove(baseName+".map");
}
else
if
(
format
==
EPS
)
{
int
width
,
height
;
if
(
!
readBoundingBoxEPS
(
b
aseName
+
".eps"
,
&
width
,
&
height
))
if
(
!
readBoundingBoxEPS
(
absB
aseName
+
".eps"
,
&
width
,
&
height
))
{
err
(
"Error: Could not extract bounding box from .eps!
\n
"
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
baseName
;
}
int
maxWidth
=
420
;
/* approx. page width in points */
...
...
@@ -2582,9 +2603,9 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
"
\\
end{figure}
\n
"
;
}
if
(
Config_getBool
(
"DOT_CLEANUP"
))
thisDir
.
remove
(
baseName
+
".dot"
);
if
(
Config_getBool
(
"DOT_CLEANUP"
))
d
.
remove
(
baseName
+
".dot"
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
baseName
;
}
...
...
@@ -2622,18 +2643,17 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
{
err
(
"Error: Output dir %s does not exist!
\n
"
,
path
);
exit
(
1
);
}
QCString
oldDir
=
convertToQCString
(
QDir
::
currentDirPath
());
// go to the html output directory (i.e. path)
QDir
::
setCurrent
(
d
.
absPath
());
QDir
thisDir
;
setDotFontPath
(
d
.
absPath
());
QCString
baseName
=
m_dir
->
getOutputFileBase
()
+
"_dep"
;
QCString
mapName
=
escapeCharsInString
(
baseName
,
FALSE
);
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
// todo: create check, update md5 checksum
QCString
absBaseName
=
QCString
(
d
.
absPath
())
+
"/"
+
baseName
;
// TODO: create check, update md5 checksum
{
QFile
f
(
b
aseName
+
".dot"
);
QFile
f
(
absB
aseName
+
".dot"
);
if
(
!
f
.
open
(
IO_WriteOnly
))
{
err
(
"Cannot create file %s.dot for writing!
\n
"
,
baseName
.
data
());
...
...
@@ -2647,41 +2667,36 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
{
// run dot to create a bitmap image
QCString
dotArgs
(
maxCmdLine
);
QCString
imgName
=
b
aseName
+
"."
+
imgExt
;
DotRunner
dotRun
(
b
aseName
+
".dot"
);
dotRun
.
addJob
(
imgExt
,
i
mgName
);
if
(
generateImageMap
)
dotRun
.
addJob
(
MAP_CMD
,
b
aseName
+
".map"
);
QCString
absImgName
=
absB
aseName
+
"."
+
imgExt
;
DotRunner
dotRun
(
absB
aseName
+
".dot"
);
dotRun
.
addJob
(
imgExt
,
absI
mgName
);
if
(
generateImageMap
)
dotRun
.
addJob
(
MAP_CMD
,
absB
aseName
+
".map"
);
if
(
!
dotRun
.
run
())
{
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
baseName
;
}
checkDotResult
(
i
mgName
);
checkDotResult
(
absI
mgName
);
}
else
if
(
format
==
EPS
)
{
// run dot to create a .eps image
DotRunner
dotRun
(
baseName
+
".dot"
);
dotRun
.
addJob
(
"ps"
,
baseName
+
".eps"
);
if
(
!
dotRun
.
run
())
{
QDir
::
setCurrent
(
oldDir
);
return
baseName
;
}
DotRunner
dotRun
(
absBaseName
+
".dot"
);
dotRun
.
addJob
(
"ps"
,
absBaseName
+
".eps"
);
if
(
Config_getBool
(
"USE_PDFLATEX"
))
{
QCString
epstopdfArgs
(
maxCmdLine
);
epstopdfArgs
.
sprintf
(
"
\"
%s.eps
\"
--outfile=
\"
%s.pdf
\"
"
,
baseName
.
data
(),
baseName
.
data
());
if
(
portable_system
(
"epstopdf"
,
epstopdfArgs
)
!=
0
)
absBaseName
.
data
(),
absBaseName
.
data
());
dotRun
.
addPostProcessing
(
"epstopdf"
,
epstopdfArgs
);
}
if
(
!
dotRun
.
run
())
{
err
(
"Error: Problems running epstopdf. Check your TeX installation!
\n
"
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
();
return
baseName
;
}
}
}
}
Doxygen
::
indexList
.
addImageFile
(
baseName
+
"."
+
imgExt
);
if
(
format
==
BITMAP
&&
generateImageMap
)
...
...
@@ -2695,7 +2710,7 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
QString
tmpstr
;
QTextOStream
tmpout
(
&
tmpstr
);
tmpout
.
setEncoding
(
tmpout
.
UnicodeUTF8
);
convertMapFile
(
tmpout
,
b
aseName
+
".map"
,
relPath
,
TRUE
);
convertMapFile
(
tmpout
,
absB
aseName
+
".map"
,
relPath
,
TRUE
);
if
(
!
tmpstr
.
isEmpty
())
{
out
<<
"<map name=
\"
"
<<
mapName
<<
"_map
\"
id=
\"
"
<<
mapName
<<
"
\"
>"
<<
endl
;
...
...
@@ -2711,10 +2726,10 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
else
if
(
format
==
EPS
)
{
int
width
,
height
;
if
(
!
readBoundingBoxEPS
(
b
aseName
+
".eps"
,
&
width
,
&
height
))
if
(
!
readBoundingBoxEPS
(
absB
aseName
+
".eps"
,
&
width
,
&
height
))
{
err
(
"Error: Could not extract bounding box from .eps!
\n
"
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
baseName
;
}
int
maxWidth
=
420
;
/* approx. page width in points */
...
...
@@ -2729,9 +2744,9 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
"
\\
end{figure}
\n
"
;
}
if
(
Config_getBool
(
"DOT_CLEANUP"
))
thisDir
.
remove
(
baseName
+
".dot"
);
if
(
Config_getBool
(
"DOT_CLEANUP"
))
d
.
remove
(
baseName
+
".dot"
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
baseName
;
}
...
...
@@ -2779,85 +2794,64 @@ void generateGraphLegend(const char *path)
{
err
(
"Error: Output dir %s does not exist!
\n
"
,
path
);
exit
(
1
);
}
QCString
oldDir
=
convertToQCString
(
QDir
::
currentDirPath
());
// go to the html output directory (i.e. path)
QDir
::
setCurrent
(
d
.
absPath
());
setDotFontPath
(
d
.
absPath
());
// run dot to generate the a bitmap image from the graph
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
QCString
imgName
=
"graph_legend."
+
imgExt
;
QCString
absImgName
=
QCString
(
d
.
absPath
())
+
"/"
+
imgName
;
DotRunner
dotRun
(
"
graph_legend.dot"
);
dotRun
.
addJob
(
imgExt
,
i
mgName
);
DotRunner
dotRun
(
d
.
absPath
()
+
"/
graph_legend.dot"
);
dotRun
.
addJob
(
imgExt
,
absI
mgName
);
if
(
!
dotRun
.
run
())
{
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
;
}
checkDotResult
(
i
mgName
);
checkDotResult
(
absI
mgName
);
Doxygen
::
indexList
.
addImageFile
(
imgName
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
}
void
writeDotGraphFromFile
(
const
char
*
inFile
,
const
char
*
outDir
,
const
char
*
outFile
,
GraphOutputFormat
format
)
{
QCString
absOutFile
=
outDir
;
absOutFile
+=
portable_pathSeparator
();
absOutFile
+=
outFile
;
// chdir to the output dir, so dot can find the font file.
QCString
oldDir
=
convertToQCString
(
QDir
::
currentDirPath
());
// go to the html output directory (i.e. path)
QDir
::
setCurrent
(
outDir
);
//printf("Going to dir %s\n",QDir::currentDirPath().data());
QCString
env
=
portable_getenv
(
"DOTFONTPATH"
);
if
(
env
==
"."
)
// this path was set by doxygen, so dot can find the FreeSans.ttf font,
// for user defined graphs we use the default search path built into dot,
// unless the user has set the DOTFONTPATH as well.
QDir
d
(
outDir
);
if
(
!
d
.
exists
())
{
// temporarily remove the DOTFONTPATH environment variable
// so dot will use the built-in search path.
portable_unsetenv
(
"DOTFONTPATH"
);
err
(
"Error: Output dir %s does not exist!
\n
"
,
outDir
);
exit
(
1
);
}
setDotFontPath
(
0
);
QCString
imgExt
=
Config_getEnum
(
"DOT_IMAGE_FORMAT"
);
QCString
imgName
=
(
QCString
)
outFile
+
"."
+
imgExt
;
QCString
absImgName
=
QCString
(
d
.
absPath
())
+
"/"
+
imgName
;
QCString
absOutFile
=
QCString
(
d
.
absPath
())
+
"/"
+
outFile
;
DotRunner
dotRun
(
inFile
);
if
(
format
==
BITMAP
)
dotRun
.
addJob
(
imgExt
,
i
mgName
);
dotRun
.
addJob
(
imgExt
,
absI
mgName
);
else
// format==EPS
dotRun
.
addJob
(
"ps"
,
QCString
(
outFile
)
+
".eps"
);
if
(
!
dotRun
.
run
())
{
QDir
::
setCurrent
(
oldDir
);
goto
error
;
}
// Added by Nils Strom
dotRun
.
addJob
(
"ps"
,
absOutFile
+
".eps"
);
if
(
(
format
==
EPS
)
&&
(
Config_getBool
(
"USE_PDFLATEX"
))
)
{
QCString
epstopdfArgs
(
maxCmdLine
);
epstopdfArgs
.
sprintf
(
"
\"
%s.eps
\"
--outfile=
\"
%s.pdf
\"
"
,
outFile
,
outFile
);
if
(
portable_system
(
"epstopdf"
,
epstopdfArgs
)
!=
0
)
{
err
(
"Error: Problems running epstopdf. Check your TeX installation!
\n
"
);
}
absOutFile
.
data
(),
absOutFile
.
data
());
dotRun
.
addPostProcessing
(
"epstopdf"
,
epstopdfArgs
);
}
if
(
format
==
BITMAP
)
checkDotResult
(
imgName
);
Doxygen
::
indexList
.
addImageFile
(
imgName
);
if
(
env
==
"."
)
if
(
!
dotRun
.
run
())
{
// restore the DOTFONTPATH variable again
portable_setenv
(
"DOTFONTPATH"
,
env
)
;
unsetDotFontPath
();
return
;
}
error
:
QDir
::
setCurrent
(
oldDir
);
if
(
format
==
BITMAP
)
checkDotResult
(
absImgName
);
Doxygen
::
indexList
.
addImageFile
(
imgName
);
unsetDotFontPath
();
}
...
...
@@ -2874,28 +2868,30 @@ QString getDotImageMapFromFile(const QString& inFile, const QString& outDir,
{
QString
outFile
=
inFile
+
".map"
;
// chdir to the output dir, so dot can find the font file.
QCString
oldDir
=
convertToQCString
(
QDir
::
currentDirPath
());
// go to the html output directory (i.e. path)
QDir
::
setCurrent
(
outDir
);
//printf("Going to dir %s\n",QDir::currentDirPath().data());
QDir
d
(
outDir
);
if
(
!
d
.
exists
())
{
err
(
"Error: Output dir %s does not exist!
\n
"
,
outDir
.
data
());
exit
(
1
);
}
setDotFontPath
(
d
.
absPath
());
QCString
absOutFile
=
QCString
(
d
.
absPath
())
+
"/"
+
outFile
.
data
();
DotRunner
dotRun
(
inFile
);
dotRun
.
addJob
(
MAP_CMD
,
o
utFile
);
dotRun
.
addJob
(
MAP_CMD
,
absO
utFile
);
if
(
!
dotRun
.
run
())
{
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
""
;
}
QString
result
;
QTextOStream
tmpout
(
&
result
);
tmpout
.
setEncoding
(
tmpout
.
UnicodeUTF8
);
convertMapFile
(
tmpout
,
outFile
,
relPath
,
TRUE
,
context
);
QDir
().
remove
(
outFile
);
// printf("result=%s\n",result.data());
convertMapFile
(
tmpout
,
absOutFile
,
relPath
,
TRUE
,
context
);
d
.
remove
(
outFile
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
result
;
}
// end MDG mods
...
...
@@ -3119,16 +3115,14 @@ QCString DotGroupCollaboration::writeGraph( QTextStream &t, GraphOutputFormat fo
// store the original directory
if
(
!
d
.
exists
())
{
err
(
"Error: Output dir %s does not exist!
\n
"
,
path
);
exit
(
1
);
err
(
"Error: Output dir %s does not exist!
\n
"
,
path
);
exit
(
1
);
}
QCString
oldDir
=
convertToQCString
(
QDir
::
currentDirPath
());
// go to the output directory (i.e. path)
QDir
::
setCurrent
(
d
.
absPath
());
QDir
thisDir
;
setDotFontPath
(
d
.
absPath
());
QCString
baseName
=
m_diskName
;
QCString
absBaseName
=
QCString
(
d
.
absPath
())
+
"/"
+
baseName
;
QFile
dotfile
(
b
aseName
+
".dot"
);
QFile
dotfile
(
absB
aseName
+
".dot"
);
if
(
dotfile
.
open
(
IO_WriteOnly
))
{
QTextStream
tdot
(
&
dotfile
);
...
...
@@ -3166,12 +3160,15 @@ QCString DotGroupCollaboration::writeGraph( QTextStream &t, GraphOutputFormat fo
QCString
imgName
=
baseName
+
"."
+
imgExt
;
QCString
mapName
=
baseName
+
".map"
;
DotRunner
dotRun
(
baseName
+
".dot"
);
dotRun
.
addJob
(
imgExt
,
imgName
);
if
(
writeImageMap
)
dotRun
.
addJob
(
MAP_CMD
,
mapName
);
QCString
absImgName
=
QCString
(
d
.
absPath
())
+
"/"
+
imgName
;
QCString
absMapName
=
QCString
(
d
.
absPath
())
+
"/"
+
mapName
;
DotRunner
dotRun
(
absBaseName
+
".dot"
);
dotRun
.
addJob
(
imgExt
,
absImgName
);
if
(
writeImageMap
)
dotRun
.
addJob
(
MAP_CMD
,
absMapName
);
if
(
!
dotRun
.
run
())
{
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
baseName
;
}
...
...
@@ -3182,38 +3179,33 @@ QCString DotGroupCollaboration::writeGraph( QTextStream &t, GraphOutputFormat fo
<<
"
\"
border=
\"
0
\"
alt=
\"\"
usemap=
\"
#"
<<
mapLabel
<<
"_map
\"
/>"
<<
endl
;
t
<<
"<map name=
\"
"
<<
mapLabel
<<
"_map
\"
id=
\"
"
<<
mapLabel
<<
"
\"
>"
<<
endl
;
convertMapFile
(
t
,
m
apName
,
relPath
);
convertMapFile
(
t
,
absM
apName
,
relPath
);
t
<<
"</map></td></tr></table></center>"
<<
endl
;
thisDir
.
remove
(
mapName
);
}
}
else
if
(
format
==
EPS
)
{
DotRunner
dotRun
(
baseName
+
".dot"
);
dotRun
.
addJob
(
"ps"
,
baseName
+
".eps"
);
if
(
!
dotRun
.
run
())
{
QDir
::
setCurrent
(
oldDir
);
return
baseName
;
}
DotRunner
dotRun
(
absBaseName
+
".dot"
);
dotRun
.
addJob
(
"ps"
,
absBaseName
+
".eps"
);
if
(
Config_getBool
(
"USE_PDFLATEX"
))
{
QCString
epstopdfArgs
(
maxCmdLine
);
epstopdfArgs
.
sprintf
(
"
\"
%s.eps
\"
--outfile=
\"
%s.pdf
\"
"
,
baseName
.
data
(),
baseName
.
data
());
if
(
portable_system
(
"epstopdf"
,
epstopdfArgs
)
!=
0
)
absBaseName
.
data
(),
absBaseName
.
data
());
dotRun
.
addPostProcessing
(
"epstopdf"
,
epstopdfArgs
);
}
if
(
!
dotRun
.
run
())
{
err
(
"Error: Problems running epstopdf. Check your TeX installation!
\n
"
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
();
return
baseName
;
}
}
int
width
,
height
;
if
(
!
readBoundingBoxEPS
(
b
aseName
+
".eps"
,
&
width
,
&
height
))
if
(
!
readBoundingBoxEPS
(
absB
aseName
+
".eps"
,
&
width
,
&
height
))
{
err
(
"Error: Could not extract bounding box from .eps!
\n
"
);
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
(
);
return
baseName
;
}
int
maxWidth
=
420
;
/* approx. page width in points */
...
...
@@ -3228,11 +3220,10 @@ QCString DotGroupCollaboration::writeGraph( QTextStream &t, GraphOutputFormat fo
}
if
(
Config_getBool
(
"DOT_CLEANUP"
))
{
thisDir
.
remove
(
baseName
+
".dot"
);
d
.
remove
(
baseName
+
".dot"
);
}
QDir
::
setCurrent
(
oldDir
);
unsetDotFontPath
();
return
baseName
;
}
...
...
src/dot.h
View file @
a62d9f8f
...
...
@@ -321,10 +321,14 @@ class DotRunner
*/
void
addJob
(
const
char
*
format
,
const
char
*
output
);
void
addPostProcessing
(
const
char
*
cmd
,
const
char
*
args
);
/** Runs dot for all jobs added. */
bool
run
();
private
:
QList
<
QCString
>
m_jobs
;
QCString
m_postArgs
;
QCString
m_postCmd
;
QCString
m_file
;
};
...
...
src/doxygen.cpp
View file @
a62d9f8f
...
...
@@ -78,6 +78,7 @@
#include "marshal.h"
#include "portable.h"
#include "vhdlscanner.h"
#include "vhdldocgen.h"
#include "layout.h"
...
...
@@ -4078,12 +4079,12 @@ static bool findClassRelation(
QCString
biName
=
bi
->
name
;
bool
explicitGlobalScope
=
FALSE
;
//printf("findClassRelation: biName=`%s'\n",biName.data());
if
(
biName
.
left
(
2
)
==
"::"
)
// explicit global scope
{
biName
=
biName
.
right
(
biName
.
length
()
-
2
);
explicitGlobalScope
=
TRUE
;
}
//printf("biName=`%s'\n",biName.data());
EntryNav
*
parentNode
=
rootNav
->
parent
();
bool
lastParent
=
FALSE
;
...
...
@@ -4108,7 +4109,7 @@ static bool findClassRelation(
// &stripped);
MemberDef
*
baseClassTypeDef
=
0
;
QCString
templSpec
;
ClassDef
*
baseClass
=
getResolvedClass
(
explicitGlobalScope
?
0
:
cd
,
ClassDef
*
baseClass
=
getResolvedClass
(
explicitGlobalScope
?
Doxygen
::
globalScope
:
context
,
cd
->
getFileDef
(),
baseClassName
,
&
baseClassTypeDef
,
...
...
@@ -4154,7 +4155,7 @@ static bool findClassRelation(
{
templSpec
=
removeRedundantWhiteSpace
(
baseClassName
.
mid
(
i
,
e
-
i
));
baseClassName
=
baseClassName
.
left
(
i
)
+
baseClassName
.
right
(
baseClassName
.
length
()
-
e
);
baseClass
=
getResolvedClass
(
cd
,
baseClass
=
getResolvedClass
(
explicitGlobalScope
?
Doxygen
::
globalScope
:
context
,
cd
->
getFileDef
(),
baseClassName
,
&
baseClassTypeDef
,
...
...
@@ -4190,7 +4191,7 @@ static bool findClassRelation(
QCString
tmpTemplSpec
;
// replace any namespace aliases
replaceNamespaceAliases
(
baseClassName
,
si
);
baseClass
=
getResolvedClass
(
cd
,
baseClass
=
getResolvedClass
(
explicitGlobalScope
?
Doxygen
::
globalScope
:
context
,
cd
->
getFileDef
(),
baseClassName
,
&
baseClassTypeDef
,
...
...
@@ -4648,8 +4649,9 @@ static void addListReferences()
{
LockingPtr
<
QList
<
ListItemInfo
>
>
xrefItems
=
pd
->
xrefListItems
();
addRefItem
(
xrefItems
.
pointer
(),
name
,
theTranslator
->
trPage
(
TRUE
,
TRUE
),
name
,
pd
->
title
());
name
,
pd
->
title
()
,
0
);
}
}
DirSDict
::
Iterator
ddi
(
*
Doxygen
::
directories
);
...
...
@@ -4663,8 +4665,9 @@ static void addListReferences()
//}
LockingPtr
<
QList
<
ListItemInfo
>
>
xrefItems
=
dd
->
xrefListItems
();
addRefItem
(
xrefItems
.
pointer
(),
name
,
theTranslator
->
trDir
(
TRUE
,
TRUE
),
name
,
dd
->
displayName
());
name
,
dd
->
displayName
()
,
0
);
}
}
...
...
@@ -7782,9 +7785,13 @@ static void buildPageList(EntryNav *rootNav)
QCString
title
=
root
->
args
.
stripWhiteSpace
();
if
(
title
.
isEmpty
())
title
=
theTranslator
->
trMainPage
();
addRefItem
(
root
->
sli
,
"page"
,
Config_getBool
(
"GENERATE_TREEVIEW"
)
?
"main"
:
"index"
,
title
QCString
name
=
Config_getBool
(
"GENERATE_TREEVIEW"
)
?
"main"
:
"index"
;
addRefItem
(
root
->
sli
,
name
,
"page"
,
name
,
title
,
0
);
rootNav
->
releaseEntry
();
...
...
@@ -8422,113 +8429,6 @@ static bool patternMatch(QFileInfo *fi,QStrList *patList)
return
found
;
}
static
int
transcodeCharacterBuffer
(
BufStr
&
srcBuf
,
int
size
,
const
char
*
inputEncoding
,
const
char
*
outputEncoding
)
{
if
(
inputEncoding
==
0
||
outputEncoding
==
0
)
return
size
;
if
(
qstricmp
(
inputEncoding
,
outputEncoding
)
==
0
)
return
size
;
void
*
cd
=
portable_iconv_open
(
outputEncoding
,
inputEncoding
);
if
(
cd
==
(
void
*
)(
-
1
))
{
err
(
"Error: unsupported character conversion: '%s'->'%s': %s
\n
"
"Check the INPUT_ENCODING setting in the config file!
\n
"
,
inputEncoding
,
outputEncoding
,
strerror
(
errno
));
exit
(
1
);
}
int
tmpBufSize
=
size
*
4
+
1
;
BufStr
tmpBuf
(
tmpBufSize
);
size_t
iLeft
=
size
;
size_t
oLeft
=
tmpBufSize
;
const
char
*
srcPtr
=
srcBuf
.
data
();
char
*
dstPtr
=
tmpBuf
.
data
();
uint
newSize
=
0
;
if
(
!
portable_iconv
(
cd
,
&
srcPtr
,
&
iLeft
,
&
dstPtr
,
&
oLeft
))
{
newSize
=
tmpBufSize
-
oLeft
;
srcBuf
.
shrink
(
newSize
);
strncpy
(
srcBuf
.
data
(),
tmpBuf
.
data
(),
newSize
);
//printf("iconv: input size=%d output size=%d\n[%s]\n",size,newSize,srcBuf.data());
}
else
{
err
(
"Error: failed to translate characters from %s to %s: check INPUT_ENCODING
\n
"
,
inputEncoding
,
outputEncoding
);
exit
(
1
);
}
portable_iconv_close
(
cd
);
return
newSize
;
}
//----------------------------------------------------------------------------
// reads a file into an array and filters out any 0x00 and 0x06 bytes,
// because these are special for the parser.
void
copyAndFilterFile
(
const
char
*
fileName
,
BufStr
&
dest
)
{
// try to open file
int
size
=
0
;
//uint oldPos = dest.curPos();
//printf(".......oldPos=%d\n",oldPos);
QFileInfo
fi
(
fileName
);
if
(
!
fi
.
exists
())
return
;
QCString
filterName
=
getFileFilter
(
fileName
);
if
(
filterName
.
isEmpty
())
{
QFile
f
(
fileName
);
if
(
!
f
.
open
(
IO_ReadOnly
))
{
err
(
"Error: could not open file %s
\n
"
,
fileName
);
return
;
}
size
=
fi
.
size
();
// read the file
dest
.
skip
(
size
);
if
(
f
.
readBlock
(
dest
.
data
()
/*+oldPos*/
,
size
)
!=
size
)
{
err
(
"Error while reading file %s
\n
"
,
fileName
);
return
;
}
}
else
{
QCString
cmd
=
filterName
+
"
\"
"
+
fileName
+
"
\"
"
;
Debug
::
print
(
Debug
::
ExtCmd
,
0
,
"Executing popen(`%s`)
\n
"
,
cmd
.
data
());
FILE
*
f
=
portable_popen
(
cmd
,
"r"
);
if
(
!
f
)
{
err
(
"Error: could not execute filter %s
\n
"
,
filterName
.
data
());
return
;
}
const
int
bufSize
=
1024
;
char
buf
[
bufSize
];
int
numRead
;
while
((
numRead
=
fread
(
buf
,
1
,
bufSize
,
f
))
>
0
)
{
//printf(">>>>>>>>Reading %d bytes\n",numRead);
dest
.
addArray
(
buf
,
numRead
),
size
+=
numRead
;
}
portable_pclose
(
f
);
}
// filter unwanted bytes from the resulting data
uchar
conv
[
256
];
int
i
;
for
(
i
=
0
;
i
<
256
;
i
++
)
conv
[
i
]
=
i
;
conv
[
0x06
]
=
0x20
;
// replace the offending characters with spaces
conv
[
0x00
]
=
0x20
;
// remove any special markers from the input
uchar
*
p
=
(
uchar
*
)
dest
.
data
()
/*+oldPos*/
;
for
(
i
=
0
;
i
<
size
;
i
++
,
p
++
)
*
p
=
conv
[
*
p
];
// and translate CR's
int
newSize
=
filterCRLF
(
dest
.
data
()
/*+oldPos*/
,
size
);
//printf("filter char at %p size=%d newSize=%d\n",dest.data()+oldPos,size,newSize);
if
(
newSize
!=
size
)
// we removed chars
{
dest
.
shrink
(
/*oldPos+*/
newSize
);
// resize the array
//printf(".......resizing from %d to %d result=[%s]\n",oldPos+size,oldPos+newSize,dest.data());
}
}
//----------------------------------------------------------------------------
static
void
copyStyleSheet
()
{
...
...
@@ -8562,6 +8462,8 @@ static void copyStyleSheet()
}
}
//! parse the list of input files
static
void
parseFiles
(
Entry
*
root
,
EntryNav
*
rootNav
)
{
void
*
cd
=
0
;
...
...
@@ -8587,26 +8489,21 @@ static void parseFiles(Entry *root,EntryNav *rootNav)
QFileInfo
fi
(
fileName
);
BufStr
preBuf
(
fi
.
size
()
+
4096
);
//BufStr *bufPtr = &preBuf;
if
(
Config_getBool
(
"ENABLE_PREPROCESSING"
)
&&
parser
->
needsPreprocessing
(
extension
))
{
BufStr
inBuf
(
fi
.
size
()
+
4096
);
msg
(
"Preprocessing %s...
\n
"
,
s
->
data
());
preprocessFile
(
fileName
,
preBuf
);
readInputFile
(
fileName
,
inBuf
);
preprocessFile
(
fileName
,
inBuf
,
preBuf
);
}
else
else
// no preprocessing
{
msg
(
"Reading %s...
\n
"
,
s
->
data
());
copyAndFilter
File
(
fileName
,
preBuf
);
readInput
File
(
fileName
,
preBuf
);
}
preBuf
.
addChar
(
'\n'
);
/* to prevent problems under Windows ? */
// do character transcoding if needed.
transcodeCharacterBuffer
(
preBuf
,
preBuf
.
curPos
(),
Config_getString
(
"INPUT_ENCODING"
),
"UTF-8"
);
BufStr
convBuf
(
preBuf
.
curPos
()
+
1024
);
// convert multi-line C++ comments to C style comments
...
...
@@ -9911,6 +9808,29 @@ void parseInput()
if
(
generateMan
)
manOutput
=
createOutputDirectory
(
outputDirectory
,
"MAN_OUTPUT"
,
"/man"
);
if
(
Config_getBool
(
"HAVE_DOT"
))
{
QCString
curFontPath
=
Config_getString
(
"DOT_FONTPATH"
);
if
(
curFontPath
.
isEmpty
())
{
portable_getenv
(
"DOTFONTPATH"
);
QCString
newFontPath
=
"."
;
if
(
!
curFontPath
.
isEmpty
())
{
newFontPath
+=
portable_pathListSeparator
();
newFontPath
+=
curFontPath
;
}
portable_setenv
(
"DOTFONTPATH"
,
newFontPath
);
}
else
{
portable_setenv
(
"DOTFONTPATH"
,
curFontPath
);
}
}
/**************************************************************************
* Handle layout file *
**************************************************************************/
...
...
@@ -10102,14 +10022,14 @@ void parseInput()
msg
(
"Computing class relations...
\n
"
);
computeTemplateClassRelations
();
flushUnresolvedRelations
();
//
if (Config_getBool("OPTIMIZE_OUTPUT_VHDL"))
//
{
// VhdlDocGen::computeVhdlComponentRelations(g_classEntries,g_storage
);
//
}
//
else
//
{
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_VHDL"
))
{
VhdlDocGen
::
computeVhdlComponentRelations
(
);
}
else
{
computeClassRelations
();
//
}
}
g_classEntries
.
clear
();
msg
(
"Add enum values to enums...
\n
"
);
...
...
src/filedef.cpp
View file @
a62d9f8f
...
...
@@ -1094,8 +1094,10 @@ void FileDef::addListReferences()
{
LockingPtr
<
QList
<
ListItemInfo
>
>
xrefItems
=
xrefListItems
();
addRefItem
(
xrefItems
.
pointer
(),
getOutputFileBase
(),
theTranslator
->
trFile
(
TRUE
,
TRUE
),
getOutputFileBase
(),
name
()
getOutputFileBase
(),
name
(),
0
);
}
if
(
memberGroupSDict
)
...
...
src/formula.cpp
View file @
a62d9f8f
...
...
@@ -84,7 +84,7 @@ void FormulaList::generateBitmaps(const char *path)
for
(
fli
.
toFirst
();(
formula
=
fli
.
current
());
++
fli
)
{
QCString
resultName
;
resultName
.
sprintf
(
"form_%d.
png
"
,
formula
->
getId
());
resultName
.
sprintf
(
"form_%d.
gif
"
,
formula
->
getId
());
// only formulas for which no image exists are generated
QFileInfo
fi
(
resultName
);
if
(
!
fi
.
exists
())
...
...
@@ -119,7 +119,7 @@ void FormulaList::generateBitmaps(const char *path)
for
(;(
pagePtr
=
pli
.
current
());
++
pli
,
++
pageIndex
)
{
int
pageNum
=*
pagePtr
;
msg
(
"Generating image form_%d.
png
for formula
\n
"
,
pageNum
);
msg
(
"Generating image form_%d.
gif
for formula
\n
"
,
pageNum
);
char
dviArgs
[
4096
];
QCString
formBase
;
formBase
.
sprintf
(
"_form%d"
,
pageNum
);
...
...
@@ -268,7 +268,7 @@ void FormulaList::generateBitmaps(const char *path)
}
// save the result as a png
QCString
resultName
;
resultName
.
sprintf
(
"form_%d.
png
"
,
pageNum
);
resultName
.
sprintf
(
"form_%d.
gif
"
,
pageNum
);
// the option parameter 1 is used here as a temporary hack
// to select the right color palette!
dstImage
.
save
(
resultName
,
1
);
...
...
src/groupdef.cpp
View file @
a62d9f8f
...
...
@@ -1230,8 +1230,10 @@ void GroupDef::addListReferences()
{
LockingPtr
<
QList
<
ListItemInfo
>
>
xrefItems
=
xrefListItems
();
addRefItem
(
xrefItems
.
pointer
(),
getOutputFileBase
(),
theTranslator
->
trGroup
(
TRUE
,
TRUE
),
getOutputFileBase
(),
name
()
getOutputFileBase
(),
name
(),
0
);
}
MemberGroupSDict
::
Iterator
mgli
(
*
memberGroupSDict
);
...
...
src/htmlgen.cpp
View file @
a62d9f8f
...
...
@@ -1758,7 +1758,7 @@ void HtmlGenerator::startMemberGroupDocs()
void
HtmlGenerator
::
endMemberGroupDocs
()
{
t
<<
"<
br/><br/><
/div></td></tr>"
<<
endl
;
t
<<
"</div></td></tr>"
<<
endl
;
}
void
HtmlGenerator
::
startMemberGroup
()
...
...
src/latexgen.cpp
View file @
a62d9f8f
...
...
@@ -1580,38 +1580,18 @@ void LatexGenerator::docify(const char *str)
void
LatexGenerator
::
codify
(
const
char
*
str
)
{
static
bool
isJapanese
=
theTranslator
->
idLanguage
()
==
"japanese"
||
theTranslator
->
idLanguage
()
==
"japanese-en"
;
if
(
str
)
{
const
char
*
p
=
str
;
char
c
;
char
cs
[
2
];
cs
[
1
]
=
'\0'
;
char
cs
[
5
];
int
spacesToNextTabStop
;
static
int
tabSize
=
Config_getInt
(
"TAB_SIZE"
);
while
(
*
p
)
{
static
bool
MultiByte
=
FALSE
;
//
static bool MultiByte = FALSE;
c
=*
p
++
;
if
(
isJapanese
)
{
if
(
MultiByte
)
{
t
<<
(
char
)
c
;
MultiByte
=
FALSE
;
continue
;
}
if
((
uchar
)
c
>=
0x80
)
// char in range [0x80..0xff]
{
t
<<
(
char
)
c
;
MultiByte
=
TRUE
;
continue
;
}
}
switch
(
c
)
{
case
0x0c
:
break
;
// remove ^L
...
...
@@ -1621,14 +1601,34 @@ void LatexGenerator::codify(const char *str)
col
+=
spacesToNextTabStop
;
break
;
case
'\n'
:
t
<<
'\n'
;
col
=
0
;
break
;
default
:
if
(
m_prettyCode
)
default
:
cs
[
0
]
=
c
;
cs
[
1
]
=
0
;
int
bytes
=
1
;
if
(
c
<
0
)
// multibyte utf-8 character
{
bytes
++
;
// 1xxx.xxxx: >=2 byte character
cs
[
1
]
=*
p
;
cs
[
2
]
=
0
;
if
(((
uchar
)
c
&
0xE0
)
==
0xE0
)
{
bytes
++
;
// 111x.xxxx: >=3 byte character
cs
[
2
]
=*
(
p
+
1
);
cs
[
3
]
=
0
;
}
if
(((
uchar
)
c
&
0xF0
)
==
0xF0
)
{
bytes
++
;
// 1111.xxxx: 4 byte character
cs
[
2
]
=*
(
p
+
2
);
cs
[
4
]
=
0
;
}
}
if
(
m_prettyCode
)
{
cs
[
0
]
=
c
;
filterLatexString
(
t
,
cs
,
insideTabbing
,
TRUE
);
}
else
{
t
<<
c
;
t
<<
c
s
;
}
if
(
col
>=
80
)
{
...
...
@@ -1639,6 +1639,7 @@ void LatexGenerator::codify(const char *str)
{
col
++
;
}
p
+=
(
bytes
-
1
);
// skip to next character
break
;
}
}
...
...
src/libdoxycfg.t
View file @
a62d9f8f
...
...
@@ -47,3 +47,6 @@ sub GenerateDep {
#$ GenerateDep("config.cpp","config.l");
$
(
LEX
)
-
PconfigYY
-
t
config
.
l
>
config
.
cpp
configoptions
.
cpp:
config
.
xml
python
configgen
.
py
config
.
xml
>
configoptions
.
cpp
src/memberdef.cpp
View file @
a62d9f8f
...
...
@@ -1538,6 +1538,12 @@ void MemberDef::writeDeclaration(OutputList &ol,
//ol.startEmphasis();
ol
.
popGeneratorState
();
}
// for RTF we need to add an extra empty paragraph
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
RTF
);
ol
.
startParagraph
();
ol
.
endParagraph
();
ol
.
popGeneratorState
();
ol
.
endMemberDescription
();
}
warnIfUndocumented
();
...
...
@@ -2714,7 +2720,8 @@ void MemberDef::addListReference(Definition *)
QCString
memName
=
name
();
Definition
*
pd
=
getOuterScope
();
QCString
memArgs
;
if
(
!
isRelated
()
&&
if
(
!
isRelated
()
/* && commented out as a result of bug 597016
(
(!hideScopeNames && // there is a scope
pd && pd!=Doxygen::globalScope) // and we can show it
...
...
@@ -2722,6 +2729,7 @@ void MemberDef::addListReference(Definition *)
(pd=getClassDef()) // it's a class so we
// show the scope anyway
)
*/
)
{
if
(
isObjCMethod
())
...
...
@@ -2730,19 +2738,21 @@ void MemberDef::addListReference(Definition *)
}
else
if
(
optimizeOutputJava
)
{
memName
.
prepend
(
pd
->
name
()
+
"."
);
if
(
!
hideScopeNames
)
memName
.
prepend
(
pd
->
name
()
+
"."
);
memArgs
=
argsString
();
}
else
{
memName
.
prepend
(
pd
->
name
()
+
"::"
);
if
(
!
hideScopeNames
)
memName
.
prepend
(
pd
->
name
()
+
"::"
);
memArgs
=
argsString
();
}
}
LockingPtr
<
QList
<
ListItemInfo
>
>
xrefItems
=
xrefListItems
();
if
(
xrefItems
!=
0
)
{
addRefItem
(
xrefItems
.
pointer
(),
memLabel
,
addRefItem
(
xrefItems
.
pointer
(),
qualifiedName
(),
memLabel
,
getOutputFileBase
()
+
"#"
+
anchor
(),
memName
,
memArgs
);
}
}
...
...
src/membergroup.cpp
View file @
a62d9f8f
...
...
@@ -273,8 +273,12 @@ void MemberGroup::addListReferences(Definition *def)
memberList
->
addListReferences
(
def
);
if
(
m_xrefListItems
&&
def
)
{
addRefItem
(
m_xrefListItems
,
theTranslator
->
trGroup
(
TRUE
,
TRUE
),
def
->
getOutputFileBase
()
+
"#"
+
anchor
(),
grpHeader
,
0
);
QCString
name
=
def
->
getOutputFileBase
()
+
"#"
+
anchor
();
addRefItem
(
m_xrefListItems
,
name
,
theTranslator
->
trGroup
(
TRUE
,
TRUE
),
name
,
grpHeader
,
0
);
}
}
...
...
src/namespacedef.cpp
View file @
a62d9f8f
...
...
@@ -655,8 +655,10 @@ void NamespaceDef::addListReferences()
{
LockingPtr
<
QList
<
ListItemInfo
>
>
xrefItems
=
xrefListItems
();
addRefItem
(
xrefItems
.
pointer
(),
qualifiedName
(),
fortranOpt
?
theTranslator
->
trModule
(
TRUE
,
TRUE
)
:
theTranslator
->
trNamespace
(
TRUE
,
TRUE
),
getOutputFileBase
(),
displayName
()
getOutputFileBase
(),
displayName
(),
0
);
}
MemberGroupSDict
::
Iterator
mgli
(
*
memberGroupSDict
);
...
...
src/pagedef.cpp
View file @
a62d9f8f
...
...
@@ -70,10 +70,7 @@ void PageDef::writeDocumentation(OutputList &ol)
{
//outputList->disable(OutputGenerator::Man);
QCString
pageName
;
if
(
Config_getBool
(
"CASE_SENSE_NAMES"
))
pageName
=
name
();
else
pageName
=
name
().
lower
();
pageName
=
escapeCharsInString
(
name
(),
FALSE
);
startFile
(
ol
,
pageName
,
pageName
,
title
(),
HLI_Pages
,
TRUE
);
...
...
src/pre.h
View file @
a62d9f8f
...
...
@@ -20,7 +20,6 @@
#include "qtbc.h"
#include <stdio.h>
//#include <qfile.h>
#include "define.h"
class
BufStr
;
...
...
@@ -29,7 +28,7 @@ DefineDict* getFileDefineDict();
void
initPreprocessor
();
void
cleanUpPreprocessor
();
void
addSearchDir
(
const
char
*
dir
);
void
preprocessFile
(
const
char
*
fileName
,
BufStr
&
output
);
void
preprocessFile
(
const
char
*
fileName
,
BufStr
&
input
,
BufStr
&
output
);
void
preFreeScanner
();
#endif
src/pre.l
View file @
a62d9f8f
...
...
@@ -46,16 +46,21 @@
#include "debug.h"
#include "bufstr.h"
#include "portable.h"
#include "bufstr.h"
#define YY_NEVER_INTERACTIVE 1
struct FileState
{
FileState(int size) : fileBuf(size), oldFileBuf(0), oldFileBufPos(0) {}
int lineNr;
FILE *filePtr;
FILE *oldYYin;
bool isPlainFile;
//FILE *filePtr;
BufStr fileBuf;
//FILE *oldYYin;
BufStr *oldFileBuf;
int oldFileBufPos;
//bool isPlainFile;
YY_BUFFER_STATE bufState;
QCString fileName;
};
...
...
@@ -83,6 +88,8 @@ static int g_level;
static int g_lastCContext;
static int g_lastCPPContext;
static QArray<int> g_levelGuard;
static BufStr *g_inputBuf;
static int g_inputBufPos;
static BufStr *g_outputBuf;
static int g_roundCount;
static bool g_quoteArg;
...
...
@@ -192,7 +199,7 @@ static FileState *checkAndOpenFile(const QCString &fileName,bool &alreadyInclude
// global guard
if (g_curlyCount==0) // not #include inside { ... }
{
if (g_allIncludes.find(absName)
==0)
if (g_allIncludes.find(absName)
!=0)
{
alreadyIncluded = TRUE;
//printf(" already included 1\n");
...
...
@@ -222,9 +229,21 @@ static FileState *checkAndOpenFile(const QCString &fileName,bool &alreadyInclude
}
//printf("#include %s\n",absName.data());
fs = new FileState;
fs = new FileState
(fi.size()+4096)
;
alreadyIncluded = FALSE;
if (!readInputFile(absName,fs->fileBuf))
{ // error
//printf(" error reading\n");
delete fs;
fs=0;
}
else
{
fs->oldFileBuf = g_inputBuf;
fs->oldFileBufPos = g_inputBufPos;
}
#if 0
QCString filterName = getFileFilter(absName);
if (!filterName.isEmpty())
{
...
...
@@ -256,6 +275,8 @@ static FileState *checkAndOpenFile(const QCString &fileName,bool &alreadyInclude
{
fs->oldYYin = preYYin;
}
#endif
}
return fs;
}
...
...
@@ -1213,8 +1234,11 @@ static void readIncludeFile(const QCString &inc)
outputArray(lineStr.data(),lineStr.length());
//fprintf(stderr,"Switching to include file %s\n",incFileName.data());
preYYin=fs->filePtr;
yy_switch_to_buffer(yy_create_buffer(preYYin, YY_BUF_SIZE));
//preYYin=fs->filePtr;
//yy_switch_to_buffer(yy_create_buffer(preYYin, YY_BUF_SIZE));
g_inputBuf=&fs->fileBuf;
g_inputBufPos=0;
yy_switch_to_buffer(yy_create_buffer(0, YY_BUF_SIZE));
}
else
{
...
...
@@ -1309,6 +1333,7 @@ static char resolveTrigraph(char c)
static int yyread(char *buf,int max_size)
{
#if 0
int len = fread( buf, 1, max_size, preYYin );
if (len==0 && ferror( yyin ))
{
...
...
@@ -1316,6 +1341,13 @@ static int yyread(char *buf,int max_size)
return len;
}
return filterCRLF(buf,len);
#endif
int bytesInBuf = g_inputBuf->curPos()-g_inputBufPos;
int bytesToCopy = QMIN(max_size,bytesInBuf);
memcpy(buf,g_inputBuf->data()+g_inputBufPos,bytesToCopy);
g_inputBufPos+=bytesToCopy;
return bytesToCopy;
}
/* ----------------------------------------------------------------- */
...
...
@@ -1590,7 +1622,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
g_incName=c;
BEGIN(Include);
}
<Command>
"define"{B}+
{
<Command>
("cmake")?"define"{B}+
{
//printf("!!!DefName\n");
BEGIN(DefName);
}
...
...
@@ -2231,6 +2263,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
{
FileState *fs=g_includeStack.pop();
//fileDefineCache->merge(g_yyFileName,fs->fileName);
#if 0
if (fs->isPlainFile)
{
if (fs->filePtr && fclose(fs->filePtr)!=0)
...
...
@@ -2247,11 +2280,14 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
fs->filePtr=0;
}
#endif
YY_BUFFER_STATE oldBuf = YY_CURRENT_BUFFER;
yy_switch_to_buffer( fs->bufState );
yy_delete_buffer( oldBuf );
g_yyLineNr=fs->lineNr;
preYYin = fs->oldYYin;
//preYYin = fs->oldYYin;
g_inputBuf = fs->oldFileBuf;
g_inputBufPos = fs->oldFileBufPos;
setFileName(fs->fileName.copy());
//fprintf(stderr,"######## FileName %s\n",g_yyFileName.data());
...
...
@@ -2264,6 +2300,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
delete fs; fs=0;
}
}
<*>"/*"/"*/" |
<*>"/*"[*]? {
outputArray(yytext,yyleng);
g_lastCContext=YY_START;
...
...
@@ -2385,14 +2422,18 @@ void cleanUpPreprocessor()
}
void preprocessFile(const char *fileName,BufStr &output)
void preprocessFile(const char *fileName,BufStr &
input,BufStr &
output)
{
uint orgOffset=output.curPos();
//printf("##########################\n%s\n####################\n",
// input.data());
g_macroExpansion = Config_getBool("MACRO_EXPANSION");
g_expandOnlyPredef = Config_getBool("EXPAND_ONLY_PREDEF");
g_curlyCount=0;
g_nospaces=FALSE;
g_inputBuf=&input;
g_inputBufPos=0;
g_outputBuf=&output;
g_includeStack.setAutoDelete(TRUE);
g_includeStack.clear();
...
...
@@ -2511,6 +2552,7 @@ void preprocessFile(const char *fileName,BufStr &output)
firstTime=FALSE;
}
#if 0
QCString inputFilter = getFileFilter(fileName);
if (inputFilter.isEmpty())
{
...
...
@@ -2532,6 +2574,7 @@ void preprocessFile(const char *fileName,BufStr &output)
return;
}
}
#endif
g_yyLineNr = 1;
g_level = 0;
g_ifcount = 0;
...
...
@@ -2544,10 +2587,13 @@ void preprocessFile(const char *fileName,BufStr &output)
preYYlex();
g_lexInit=TRUE;
#if 0
if (inputFilter.isEmpty())
fclose(preYYin);
else
portable_pclose(preYYin);
#endif
if (Debug::isFlagSet(Debug::Preprocessor))
{
...
...
src/scanner.l
View file @
a62d9f8f
...
...
@@ -1124,7 +1124,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
<FindMembers>{BN}{1,80} {
lineCount();
}
<FindMembers>"@"
{ID}{BN}*"("
{
<FindMembers>"@"
({ID}".")*{ID}{BN}*"("
{
if (insideJava) // Java annotation
{
lineCount();
...
...
@@ -2010,7 +2010,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
lastCPPContext = YY_START;
BEGIN( SkipCPP ) ;
}
<FindMembers,FindFields>{B}*"#"{B}*"define" { if (insidePHP)
<FindMembers,FindFields>{B}*"#"{B}*("cmake")?"define" {
if (insidePHP)
REJECT;
current->bodyLine = yyLineNr;
BEGIN( Define );
...
...
@@ -2674,6 +2675,10 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
current->type=current->type.simplifyWhiteSpace();
current->args=removeRedundantWhiteSpace(current->args);
current->name=current->name.stripWhiteSpace();
if (current->section==Entry::CLASS_SEC) // remove spec for "struct Bla bla;"
{
current->spec = 0;
}
current->section = Entry::VARIABLE_SEC ;
current->fileName = yyFileName;
current->startLine = yyLineNr;
...
...
src/translator_cz.h
View file @
a62d9f8f
...
...
@@ -20,7 +20,7 @@
// Updates:
// --------
// 2009/0
8/24 -
// 2009/0
9/02 - Updates for "new since 1.6.0 (mainly for the new search engine)".
// 2008/06/09 - Corrections in trLegendDocs().
// 2007/11/13 - Update for "new since 1.5.4 (mainly for Fortran)".
// 2007/03/20 - removing decode(), conversion of literals to UTF-8.
...
...
@@ -1821,7 +1821,7 @@ class TranslatorCzech : public Translator
/*! directory relation for \a name */
virtual
QCString
trDirRelation
(
const
char
*
name
)
{
return
"Relace "
+
QCString
(
name
);
return
"Relace "
+
QCString
(
name
);
}
/*! Loading message shown when loading search results */
...
...
@@ -1847,7 +1847,6 @@ class TranslatorCzech : public Translator
{
return
"Nic se nenašlo"
;
}
};
#endif // TRANSLATOR_CZ_H
src/translator_fr.h
View file @
a62d9f8f
...
...
@@ -158,7 +158,7 @@ class TranslatorFrench : public TranslatorAdapter_1_5_4
/*! header that is put before the list of typedefs. */
virtual
QCString
trMemberTypedefDocumentation
()
{
return
"Documentation des définitions de type membre
s
"
;
}
return
"Documentation des définitions de type membre"
;
}
/*! header that is put before the list of enumerations. */
virtual
QCString
trMemberEnumerationDocumentation
()
...
...
@@ -386,7 +386,7 @@ class TranslatorFrench : public TranslatorAdapter_1_5_4
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
result
+=
"des fonctions, variables, macros,
e
numérations, et définitions de type "
;
result
+=
"des fonctions, variables, macros,
é
numérations, et définitions de type "
;
}
else
{
...
...
@@ -573,7 +573,7 @@ class TranslatorFrench : public TranslatorAdapter_1_5_4
*/
virtual
QCString
trTypedefDocumentation
()
{
return
"Documentation des définition de type"
;
}
return
"Documentation des définition
s
de type"
;
}
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types
...
...
@@ -812,7 +812,7 @@ class TranslatorFrench : public TranslatorAdapter_1_5_4
if
(
i
<
numEntries
-
2
)
// not the fore last entry
result
+=
", "
;
else
// the fore last entry
result
+=
"
,
et "
;
result
+=
" et "
;
}
}
return
result
;
...
...
@@ -998,7 +998,7 @@ class TranslatorFrench : public TranslatorAdapter_1_5_4
/*! header that is put before the list of constructor/destructors. */
virtual
QCString
trConstructorDocumentation
()
{
return
"Documentation des constructeurs et destructeur"
;
return
"Documentation des constructeurs et destructeur
s
"
;
}
/*! Used in the file documentation to point to the corresponding sources. */
virtual
QCString
trGotoSourceCode
()
...
...
@@ -1192,7 +1192,7 @@ class TranslatorFrench : public TranslatorAdapter_1_5_4
"};
\n
"
"
\\
endcode
\n
"
"Si la valeur 240 est attribuée au tag
\\
c MAX_DOT_GRAPH_HEIGHT "
"du fichier de configuration, cela gén
è
rera le graphe suivant :"
"du fichier de configuration, cela gén
é
rera le graphe suivant :"
"<p><center><img alt=
\"\"
src=
\"
graph_legend."
+
Config_getEnum
(
"DOT_IMAGE_FORMAT"
)
+
"
\"
></center>
\n
"
"<p>
\n
"
"Les rectangles du graphe ci-dessus ont la signification suivante :
\n
"
...
...
@@ -1736,6 +1736,41 @@ class TranslatorFrench : public TranslatorAdapter_1_5_4
*/
virtual
QCString
trEnumerationValueDocumentation
()
{
return
"Documentation des énumérations"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.6.0 (mainly for the new search engine)
//////////////////////////////////////////////////////////////////////////
/*! directory relation for \a name */
virtual
QCString
trDirRelation
(
const
char
*
name
)
{
return
QCString
(
name
)
+
" Relation"
;
}
/*! Loading message shown when loading search results */
virtual
QCString
trLoading
()
{
return
"Chargement..."
;
}
/*! Label used for search results in the global namespace */
virtual
QCString
trGlobalNamespace
()
{
return
"Espace de nommage global"
;
}
/*! Message shown while searching */
virtual
QCString
trSearching
()
{
return
"Recherche..."
;
}
/*! Text shown when no search results are found */
virtual
QCString
trNoMatches
()
{
return
"Aucune correspondance"
;
}
};
#endif
...
...
src/translator_pl.h
View file @
a62d9f8f
...
...
@@ -20,21 +20,8 @@
#ifndef TRANSLATOR_PL_H
#define TRANSLATOR_PL_H
class
TranslatorPolish
:
public
Translator
Adapter_1_6_0
class
TranslatorPolish
:
public
Translator
{
private
:
/*! to avoid macro redefinition from translator_pl.h */
inline
QCString
decode
(
const
QCString
&
sInput
)
{
//if (Config_getBool("USE_WINDOWS_ENCODING"))
//{
// return ISO88592ToWin1250(sInput);
//}
//else
//{
return
sInput
;
//}
}
public
:
// --- Language control methods -------------------
...
...
@@ -62,80 +49,73 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! return the language charset. This will be used for the HTML output */
virtual
QCString
idLanguageCharset
()
{
//if (Config_getBool("USE_WINDOWS_ENCODING"))
//{
// return "windows-1250";
//}
//else
//{
return
"iso-8859-2"
;
//}
return
"utf-8"
;
}
// --- Language translation methods -------------------
/*! used in the compound documentation before a list of related functions. */
QCString
trRelatedFunctions
()
{
return
decode
(
"Funkcje powi±zane"
);
}
{
return
"Funkcje powiązane"
;
}
/*! subscript for the related functions. */
QCString
trRelatedSubscript
()
{
return
decode
(
"(Zauwa¿, ¿e to nie s± metody klas.
)"
);
}
{
return
"(Zauważ, że to nie są metody klas.)"
;
}
/*! header that is put before the detailed description of files, classes and namespaces. */
QCString
trDetailedDescription
()
{
return
decode
(
"Opis szczegó³owy
"
);
}
{
return
"Opis szczegółowy"
;
}
/*! header that is put before the list of typedefs. */
QCString
trMemberTypedefDocumentation
()
{
return
decode
(
"Dokumentacja sk³adowych definicji typu"
);
}
{
return
"Dokumentacja składowych definicji typu"
;
}
/*! header that is put before the list of enumerations. */
QCString
trMemberEnumerationDocumentation
()
{
return
decode
(
"Dokumentacja sk³adowych wyliczanych"
);
}
{
return
"Dokumentacja składowych wyliczanych"
;
}
/*! header that is put before the list of member functions. */
QCString
trMemberFunctionDocumentation
()
{
return
decode
(
"Dokumentacja funkcji sk³adowych"
);
}
{
return
"Dokumentacja funkcji składowych"
;
}
/*! header that is put before the list of member attributes. */
QCString
trMemberDataDocumentation
()
{
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
return
decode
(
"Dokumentacja pól"
);
return
"Dokumentacja pól"
;
}
else
{
return
decode
(
"Dokumentacja atrybutów sk³adowych
"
);
return
"Dokumentacja atrybutów składowych"
;
}
}
/*! this is the text of a link put after brief descriptions. */
QCString
trMore
()
{
return
decode
(
"Wiêcej..."
);
}
{
return
"Więcej..."
;
}
/*! put in the class documentation */
QCString
trListOfAllMembers
()
{
return
decode
(
"Lista wszystkich sk³adowych."
);
}
{
return
"Lista wszystkich składowych."
;
}
/*! used as the title of the "list of all members" page of a class */
QCString
trMemberList
()
{
return
decode
(
"Lista sk³adowych"
);
}
{
return
"Lista składowych"
;
}
/*! this is the first part of a sentence that is followed by a class name */
QCString
trThisIsTheListOfAllMembers
()
{
return
"To jest kompletna lista sk³adowych dla "
;
}
{
return
"To jest kompletna lista sk
ł
adowych dla "
;
}
/*! this is the remainder of the sentence after the class name */
QCString
trIncludingInheritedMembers
()
{
return
decode
(
", uwzglêdniaj±ca wszystkie dziedziczone sk³adowe
."
);
}
{
return
", uwzględniająca wszystkie dziedziczone składowe."
;
}
/*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name.
*/
QCString
trGeneratedAutomatically
(
const
char
*
s
)
{
QCString
result
=
decode
(
"Wygenerowano automatycznie z kodu ¼ród³owego programem Doxyge
n"
);
{
QCString
result
=
"Wygenerowano automatycznie z kodu źródłowego programem Doxygen"
;
if
(
s
)
result
+=
(
QCString
)
" dla "
+
s
;
result
+=
"."
;
return
result
;
...
...
@@ -147,7 +127,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! put after an enum value in the list of all members */
QCString
trEnumValue
()
{
return
decode
(
"warto¶æ wyliczenia
"
);
}
{
return
"wartość wyliczenia"
;
}
/*! put after an undocumented member in the list of all members */
QCString
trDefinedIn
()
...
...
@@ -159,7 +139,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
* compounds or files (see the \\group command).
*/
QCString
trModules
()
{
return
decode
(
"Modu³y"
);
}
{
return
"Moduły"
;
}
/*! This is put above each page as a link to the class hierarchy */
QCString
trClassHierarchy
()
...
...
@@ -180,11 +160,11 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! This is put above each page as a link to the list of documented files */
QCString
trFileList
()
{
return
decode
(
"Lista plików"
);
}
{
return
"Lista plików"
;
}
/*! This is put above each page as a link to the list of all verbatim headers */
QCString
trHeaderFiles
()
{
return
decode
(
"Pliki nag³ówkowe
"
);
}
{
return
"Pliki nagłówkowe"
;
}
/*! This is put above each page as a link to all members of compounds. */
QCString
trCompoundMembers
()
...
...
@@ -195,7 +175,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
}
else
{
return
decode
(
"Sk³adowe klas"
);
return
"Składowe klas"
;
}
}
...
...
@@ -208,7 +188,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
}
else
{
return
decode
(
"Sk³adowe plików
"
);
return
"Składowe plików"
;
}
}
...
...
@@ -218,7 +198,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! This is put above each page as a link to all examples. */
QCString
trExamples
()
{
return
decode
(
"Przyk³ady"
);
}
{
return
"Przykłady"
;
}
/*! This is put above each page as a link to the search engine. */
QCString
trSearch
()
...
...
@@ -226,17 +206,17 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! This is an introduction to the class hierarchy. */
QCString
trClassHierarchyDescription
()
{
return
decode
(
"Ta lista dziedziczenia posortowana jest z grubsza, "
"cho
æ nie ca³kowicie, alfabetycznie:
"
);
{
return
"Ta lista dziedziczenia posortowana jest z grubsza, "
"cho
ć nie całkowicie, alfabetycznie:"
;
}
/*! This is an introduction to the list with all files. */
QCString
trFileListDescription
(
bool
extractAll
)
{
QCString
result
=
"Tutaj znajduje siê lista wszystkich "
;
QCString
result
=
"Tutaj znajduje si
ę
lista wszystkich "
;
if
(
!
extractAll
)
result
+=
"udokumentowanych "
;
result
+=
"plik
ów z ich k
rótkimi opisami:"
;
return
decode
(
result
)
;
result
+=
"plik
ów z ich kró
tkimi opisami:"
;
return
result
;
}
/*! This is an introduction to the annotated compound list. */
...
...
@@ -245,93 +225,93 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
return
decode
(
"Tutaj znajduj± siê struktury danych wraz z ich krótkimi opisami
:"
);
return
"Tutaj znajdują się struktury danych wraz z ich krótkimi opisami:"
;
}
else
{
return
decode
(
"Tutaj znajduj± s
iê klasy, struktury, "
"unie i interfejsy wraz z ich kr
ótkimi opisami:"
);
return
"Tutaj znajdują się
klasy, struktury, "
"unie i interfejsy wraz z ich kr
ótkimi opisami:"
;
}
}
/*! This is an introduction to the page with all class members. */
QCString
trCompoundMembersDescription
(
bool
extractAll
)
{
QCString
result
=
"Tutaj znajduje siê lista wszystkich "
;
QCString
result
=
"Tutaj znajduje si
ę
lista wszystkich "
;
if
(
!
extractAll
)
{
result
+=
"udokumentowanych "
;
}
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
result
+=
"pól struktur i unii"
;
result
+=
"p
ó
l struktur i unii"
;
}
else
{
result
+=
"sk³adowych"
;
result
+=
"sk
ł
adowych"
;
}
result
+=
" wraz z odno¶nikami do "
;
result
+=
" wraz z odno
ś
nikami do "
;
if
(
!
extractAll
)
{
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
result
+=
"dokumentacji struktur/unii dla ka¿dego pola:"
;
result
+=
"dokumentacji struktur/unii dla ka
ż
dego pola:"
;
}
else
{
result
+=
"dokumentacji klas dla ka
¿dej s
k³adowej:"
;
result
+=
"dokumentacji klas dla ka
żdej skł
adowej:"
;
}
}
else
{
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
result
+=
"struktur/unii, do kt
órych dane pole nal
e¿y:"
;
result
+=
"struktur/unii, do kt
órych dane pole należ
y:"
;
}
else
{
result
+=
"klas, do kt
órych dana sk³adowa na
le¿y:"
;
result
+=
"klas, do kt
órych dana składowa należ
y:"
;
}
}
return
decode
(
result
)
;
return
result
;
}
/*! This is an introduction to the page with all file members. */
QCString
trFileMembersDescription
(
bool
extractAll
)
{
QCString
result
=
"Tutaj znajduje siê lista wszystkich "
;
QCString
result
=
"Tutaj znajduje si
ę
lista wszystkich "
;
if
(
!
extractAll
)
result
+=
"udokumentowanych "
;
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
result
+=
"funkcji, zmiennych, makr, wylicze
ñ i definicji ty
pów"
;
result
+=
"funkcji, zmiennych, makr, wylicze
ń i definicji typó
w"
;
}
else
{
result
+=
"sk
³adowych pli
ków"
;
result
+=
"sk
ładowych plikó
w"
;
}
result
+=
" wraz z odno¶nikami do "
;
result
+=
" wraz z odno
ś
nikami do "
;
if
(
extractAll
)
result
+=
"plik
ów, do których one na
le¿±:"
;
result
+=
"plik
ów, do których one należą
:"
;
else
result
+=
"dokumentacji:"
;
return
decode
(
result
)
;
return
result
;
}
/*! This is an introduction to the page with the list of all header files. */
QCString
trHeaderFilesDescription
()
{
return
decode
(
"Tutaj znajduj± siê pliki nag³ówkowe tworz±ce A
PI:"
);
}
{
return
"Tutaj znajdują się pliki nagłówkowe tworzące API:"
;
}
/*! This is an introduction to the page with the list of all examples */
QCString
trExamplesDescription
()
{
return
decode
(
"Tutaj znajduje siê lista wszystkich przyk³adów
:"
);
}
{
return
"Tutaj znajduje się lista wszystkich przykładów:"
;
}
/*! This is an introduction to the page with the list of related pages */
QCString
trRelatedPagesDescription
()
{
return
decode
(
"Tutaj znajduje siê lista wszystkich stron dokumentacji:"
);
}
{
return
"Tutaj znajduje się lista wszystkich stron dokumentacji:"
;
}
/*! This is an introduction to the page with the list of class/file groups */
QCString
trModulesDescription
()
{
return
decode
(
"Tutaj znajduje siê lista wszystkich grup:"
);
}
{
return
"Tutaj znajduje się lista wszystkich grup:"
;
}
/*! This sentences is used in the annotated class/file lists if no brief
* description is given.
...
...
@@ -377,7 +357,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
* list of all files.
*/
QCString
trFileIndex
()
{
return
decode
(
"Indeks plików"
);
}
{
return
"Indeks plików"
;
}
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all groups.
...
...
@@ -404,13 +384,13 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
* the documentation of all files.
*/
QCString
trFileDocumentation
()
{
return
decode
(
"Dokumentacja plików"
);
}
{
return
"Dokumentacja plików"
;
}
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all examples.
*/
QCString
trExampleDocumentation
()
{
return
decode
(
"Dokumentacja przyk³adów
"
);
}
{
return
"Dokumentacja przykładów"
;
}
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all related pages.
...
...
@@ -420,7 +400,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! This is used in LaTeX as the title of the document */
QCString
trReferenceManual
()
{
return
decode
(
"Podrêcznik"
);
}
{
return
"Podręcznik"
;
}
/*! This is used in the documentation of a file as a header before the
* list of defines
...
...
@@ -438,7 +418,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
* list of typedefs
*/
QCString
trTypedefs
()
{
return
decode
(
"Definicje typów"
);
}
{
return
"Definicje typów"
;
}
/*! This is used in the documentation of a file as a header before the
* list of enumerations
...
...
@@ -462,7 +442,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
* list of (global) variables
*/
QCString
trEnumerationValues
()
{
return
decode
(
"Warto¶ci wyliczeñ
"
);
}
{
return
"Wartości wyliczeń"
;
}
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
...
...
@@ -474,19 +454,19 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
* of documentation blocks for function prototypes
*/
QCString
trFunctionPrototypeDocumentation
()
{
return
decode
(
"Dokumentacja prototypów funkcji"
);
}
{
return
"Dokumentacja prototypów funkcji"
;
}
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs
*/
QCString
trTypedefDocumentation
()
{
return
decode
(
"Dokumentacja definicji typów"
);
}
{
return
"Dokumentacja definicji typów"
;
}
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types
*/
QCString
trEnumerationTypeDocumentation
()
{
return
decode
(
"Dokumentacja typów wyliczanych"
);
}
{
return
"Dokumentacja typów wyliczanych"
;
}
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for functions
...
...
@@ -540,19 +520,19 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! this text is generated when the \\internal command is used. */
QCString
trForInternalUseOnly
()
{
return
decode
(
"Tylko do u¿ytku wewnêtrznego.
"
);
}
{
return
"Tylko do użytku wewnętrznego."
;
}
/*! this text is generated when the \\reimp command is used. */
QCString
trReimplementedForInternalReasons
()
{
return
decode
(
"Reimplementowana z wewnêtrzych przyczyn; nie dotyczy API."
);
}
{
return
"Reimplementowana z wewnętrzych przyczyn; nie dotyczy API."
;
}
/*! this text is generated when the \\warning command is used. */
QCString
trWarning
()
{
return
decode
(
"Ostrze¿enie"
);
}
{
return
"Ostrzeżenie"
;
}
/*! this text is generated when the \\bug command is used. */
QCString
trBugsAndLimitations
()
{
return
decode
(
"B³êdy i ograniczenia
"
);
}
{
return
"Błędy i ograniczenia"
;
}
/*! this text is generated when the \\version command is used. */
QCString
trVersion
()
...
...
@@ -568,7 +548,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! this text is generated when the \\sa command is used. */
QCString
trSeeAlso
()
{
return
decode
(
"Zobacz równie¿
"
);
}
{
return
"Zobacz również"
;
}
/*! this text is generated when the \\param command is used. */
QCString
trParameters
()
...
...
@@ -576,7 +556,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! this text is generated when the \\exception command is used. */
QCString
trExceptions
()
{
return
decode
(
"Wyj±tki"
);
}
{
return
"Wyjątki"
;
}
/*! this text is used in the title page of a LaTeX document. */
QCString
trGeneratedBy
()
...
...
@@ -591,10 +571,10 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! used as an introduction to the namespace list */
QCString
trNamespaceListDescription
(
bool
extractAll
)
{
QCString
result
=
"Tutaj znajduj
± s
iê wszystkie "
;
QCString
result
=
"Tutaj znajduj
ą się
wszystkie "
;
if
(
!
extractAll
)
result
+=
"udokumentowane "
;
result
+=
"przestrzenie nazw wraz z ich krótkimi opisami:"
;
return
decode
(
result
)
;
result
+=
"przestrzenie nazw wraz z ich kr
ó
tkimi opisami:"
;
return
result
;
}
/*! used in the class documentation as a header before the list of all
...
...
@@ -611,7 +591,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
* related classes
*/
QCString
trRelatedFunctionDocumentation
()
{
return
decode
(
"Dokumentacja przyjació³ i funkcji zwi±zanyc
h"
);
}
{
return
"Dokumentacja przyjaciół i funkcji związanych"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
...
...
@@ -630,12 +610,12 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
case
ClassDef
:
:
Struct
:
result
+=
" struktury "
;
break
;
case
ClassDef
:
:
Union
:
result
+=
" unii "
;
break
;
case
ClassDef
:
:
Interface
:
result
+=
" interfejsu "
;
break
;
case
ClassDef
:
:
Protocol
:
result
+=
" protoko³u "
;
break
;
case
ClassDef
:
:
Protocol
:
result
+=
" protoko
ł
u "
;
break
;
case
ClassDef
:
:
Category
:
result
+=
" kategorii "
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
" wyj±tku "
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
" wyj
ą
tku "
;
break
;
}
result
+=
(
QCString
)
clName
;
return
decode
(
result
)
;
return
result
;
}
/*! used as the title of the HTML page of a file */
...
...
@@ -660,7 +640,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
QCString
trPublicSlots
()
{
return
"Sloty publiczne"
;
}
QCString
trSignals
()
{
return
decode
(
"Sygna³y"
);
}
{
return
"Sygnały"
;
}
QCString
trStaticPublicMembers
()
{
return
"Statyczne metody publiczne"
;
}
QCString
trProtectedMembers
()
...
...
@@ -735,19 +715,19 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! This is put above each page as a link to all members of namespaces. */
QCString
trNamespaceMembers
()
{
return
decode
(
"Sk³adowe przestrzeni nazw"
);
}
{
return
"Składowe przestrzeni nazw"
;
}
/*! This is an introduction to the page with all namespace members */
QCString
trNamespaceMemberDescription
(
bool
extractAll
)
{
QCString
result
=
"Tutaj znajduje siê lista wszystkich "
;
QCString
result
=
"Tutaj znajduje si
ę
lista wszystkich "
;
if
(
!
extractAll
)
result
+=
"udokumentowanych "
;
result
+=
"sk
³adowych wraz z odn
o¶nikami do "
;
result
+=
"sk
ładowych wraz z odnoś
nikami do "
;
if
(
extractAll
)
result
+=
"dokumentacji przestrzeni nazw dla ka
¿dej s
k³adowej:"
;
result
+=
"dokumentacji przestrzeni nazw dla ka
żdej skł
adowej:"
;
else
result
+=
"przestrzeni nazw do kt
órych sk³adowe te na
le¿±:"
;
return
decode
(
result
)
;
result
+=
"przestrzeni nazw do kt
órych składowe te należą
:"
;
return
result
;
}
/*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces.
...
...
@@ -789,13 +769,13 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
case
ClassDef
:
:
Struct
:
result
+=
"j struktury"
;
break
;
case
ClassDef
:
:
Union
:
result
+=
"j unii"
;
break
;
case
ClassDef
:
:
Interface
:
result
+=
"go interfejsu"
;
break
;
case
ClassDef
:
:
Protocol
:
result
+=
"go protoko³u"
;
break
;
case
ClassDef
:
:
Protocol
:
result
+=
"go protoko
ł
u"
;
break
;
case
ClassDef
:
:
Category
:
result
+=
"j kategorii"
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
"go wyj±tku"
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
"go wyj
ą
tku"
;
break
;
}
result
+=
" zosta³a wygenerowana z plik"
;
if
(
single
)
result
+=
"u:"
;
else
result
+=
"ów:"
;
return
decode
(
result
)
;
result
+=
" zosta
ł
a wygenerowana z plik"
;
if
(
single
)
result
+=
"u:"
;
else
result
+=
"
ó
w:"
;
return
result
;
}
/*! This is in the (quick) index as a link to the alphabetical compound
...
...
@@ -810,12 +790,12 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! This is used as the heading text for the retval command. */
QCString
trReturnValues
()
{
return
decode
(
"Zwracane warto¶ci"
);
}
{
return
"Zwracane wartości"
;
}
/*! This is in the (quick) index as a link to the main page (index.html)
*/
QCString
trMainPage
()
{
return
decode
(
"Strona g³ówna
"
);
}
{
return
"Strona główna"
;
}
/*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
...
...
@@ -829,7 +809,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
QCString
trSources
()
{
return
decode
(
"¬ród³
a"
);
return
"Źródła"
;
}
QCString
trDefinedAtLineInSourceFile
()
{
...
...
@@ -856,12 +836,12 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! this text is put before a collaboration diagram */
QCString
trCollaborationDiagram
(
const
char
*
clName
)
{
return
(
QCString
)
decode
(
"Diagram wspó³pracy dla
"
)
+
clName
+
":"
;
return
(
QCString
)
"Diagram współpracy dla "
+
clName
+
":"
;
}
/*! this text is put before an include dependency graph */
QCString
trInclDepGraph
(
const
char
*
fName
)
{
return
(
QCString
)
decode
(
"Wykres zale¿no¶ci za³±czania dl
a "
)
+
fName
+
":"
;
return
(
QCString
)
"Wykres zależności załączania dla "
+
fName
+
":"
;
}
/*! header that is put before the list of constructor/destructors. */
QCString
trConstructorDocumentation
()
...
...
@@ -871,22 +851,22 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! Used in the file documentation to point to the corresponding sources. */
QCString
trGotoSourceCode
()
{
return
decode
(
"Id¼ do kodu ¼ród³owego tego plik
u."
);
return
"Idź do kodu źródłowego tego pliku."
;
}
/*! Used in the file sources to point to the corresponding documentation. */
QCString
trGotoDocumentation
()
{
return
decode
(
"Id¼ do dokumentacji tego pliku."
);
return
"Idź do dokumentacji tego pliku."
;
}
/*! Text for the \\pre command */
QCString
trPrecondition
()
{
return
decode
(
"Warunek wstêpny"
);
return
"Warunek wstępny"
;
}
/*! Text for the \\post command */
QCString
trPostcondition
()
{
return
decode
(
"Warunek koñcowy"
);
return
"Warunek końcowy"
;
}
/*! Text for the \\invariant command */
QCString
trInvariant
()
...
...
@@ -896,12 +876,12 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! Text shown before a multi-line variable/enum initialization */
QCString
trInitialValue
()
{
return
decode
(
"Warto¶æ pocz±tkowa
:"
);
return
"Wartość początkowa:"
;
}
/*! Text used the source code in the file index */
QCString
trCode
()
{
return
decode
(
"kod ¼ród³ow
y"
);
return
"kod źródłowy"
;
}
QCString
trGraphicalHierarchy
()
{
...
...
@@ -909,11 +889,11 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
}
QCString
trGotoGraphicalHierarchy
()
{
return
decode
(
"Id¼ do graficznej hierarchi klas"
);
return
"Idź do graficznej hierarchi klas"
;
}
QCString
trGotoTextualHierarchy
()
{
return
decode
(
"Id¼ do tekstowej hierarchi klas"
);
return
"Idź do tekstowej hierarchi klas"
;
}
QCString
trPageIndex
()
{
...
...
@@ -993,11 +973,11 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
QCString
trReferencedBy
()
{
return
decode
(
"Odwo³ania w"
);
return
"Odwołania w"
;
}
QCString
trRemarks
()
{
return
decode
(
"Spostrze¿enia"
);
return
"Spostrzeżenia"
;
}
QCString
trAttention
()
{
...
...
@@ -1005,8 +985,8 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
}
QCString
trInclByDepGraph
()
{
return
decode
(
"Ten wykres pokazuje, które pliki bezp
o¶rednio lub "
"po
¶rednio za³±czaj± ten pli
k:"
);
return
"Ten wykres pokazuje, które pliki bezpoś
rednio lub "
"po
średnio załączają ten plik:"
;
}
QCString
trSince
()
{
...
...
@@ -1025,10 +1005,10 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! page explaining how the dot graph's should be interpreted */
QCString
trLegendDocs
()
{
return
decode
(
"Ta strona wyja
¶nia jak interpretowaæ wykresy, któr
e s± wygenerowane "
return
"Ta strona wyja
śnia jak interpretować wykresy, które są
wygenerowane "
"przez doxygen.<p>
\n
"
"Rozwa
¿ nastêpuj±cy pr
zyk³ad:
\n
"
"Rozwa
ż następujący przykł
ad:
\n
"
"
\\
code
\n
"
"/*! Klasa Niewidzialna z powodu okrojenia */
\n
"
"class Niewidzialna { };
\n\n
"
...
...
@@ -1036,17 +1016,17 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
"class Okrojona : public Niewidzialna { };
\n\n
"
"/* Klasa nie udokumentowana komentarzami doxygen */
\n
"
"class Nieudokumentowana { };
\n\n
"
"/*! Klasa, która jest dziedziczona publicznie */
\n
"
"/*! Klasa, kt
ó
ra jest dziedziczona publicznie */
\n
"
"class PublicznaBaza : public Okrojona { };
\n\n
"
"/*! A template class */
\n
"
"template<class T> class Templ { };
\n\n
"
"/*! Klasa, kt
óra jest dziedziczona przy
u¿yciu dziedziczenia chronionego */
\n
"
"/*! Klasa, kt
óra jest dziedziczona przy uż
yciu dziedziczenia chronionego */
\n
"
"class ChronionaBaza { };
\n\n
"
"/*! Klasa, która jest dziedziczona prywatnie */
\n
"
"/*! Klasa, kt
ó
ra jest dziedziczona prywatnie */
\n
"
"class PrywatnaBaza { };
\n\n
"
"/*! Klasa, kt
óra jest u¿yta przez kl
asê Dziedziczona */
\n
"
"/*! Klasa, kt
óra jest użyta przez klasę
Dziedziczona */
\n
"
"class Uzyta { };
\n\n
"
"/*! Superklasa, która dziedziczy kilka innych klas */
\n
"
"/*! Superklasa, kt
ó
ra dziedziczy kilka innych klas */
\n
"
"class Dziedziczona : public PublicznaBaza,
\n
"
" protected ChronionaBaza,
\n
"
" private PrywatnaBaza,
\n
"
...
...
@@ -1057,30 +1037,32 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
" Uzyta *m_usedClass;
\n
"
"};
\n
"
"
\\
endcode
\n
"
"Je¶li znacznik
\\
c MAX_DOT_GRAPH_HEIGHT w pliku konfiguracji "
"jest ustawiony na 200, odniesie to rezultat w nastêpuj±cym wykresie:"
"<p><center><img src=
\"
graph_legend."
+
Config_getEnum
(
"DOT_IMAGE_FORMAT"
)
+
"
\"
></center>
\n
"
"Rezultat na następującym wykresie:"
"<p><center><img src=
\"
graph_legend."
+
Config_getEnum
(
"DOT_IMAGE_FORMAT"
)
+
"
\"
></center></p>
\n
"
"<p>
\n
"
"Prostok±ty w powy¿szym wykresie maj± nastêpuj±ce znaczenie:
\n
"
"Prostokąty w powyższym wykresie mają następujące znaczenie:
\n
"
"</p>
\n
"
"<ul>
\n
"
"<li>Wype
³niony czarny prostok±t reprezentuje strukturê lub k
lasê dla "
"kt
órej zosta³ wygenerowany wykre
s.
\n
"
"<li>Prostok
±t z czarn± obwolut± oznacza udokumentowan± strukturê lub
klasê.
\n
"
"<li>Prostok
±t z szar± obwolut± oznacza nieudokumentowan± strukturê lub
klasê.
\n
"
"<li>Prostok
±t z czerwon± obwolut± oznacza udokumentowan± strukturê lub
klasê dla
\n
"
"kt
órej nie
s± pokazane wszystkie relacje dziedziczenia/zawierania. Wykres jest "
"okrojony, je
¶li nie mie¶ci siê w okre¶lonych brzeg
ach."
"<li>Wype
łniony czarny prostokąt reprezentuje strukturę lub klasę
dla "
"kt
órej został wygenerowany wykres.</li>
\n
"
"<li>Prostok
ąt z czarną obwolutą oznacza udokumentowaną strukturę lub klasę.</li>
\n
"
"<li>Prostok
ąt z szarą obwolutą oznacza nieudokumentowaną strukturę lub klasę.</li>
\n
"
"<li>Prostok
ąt z czerwoną obwolutą oznacza udokumentowaną strukturę lub klasę
dla
\n
"
"kt
órej nie są
pokazane wszystkie relacje dziedziczenia/zawierania. Wykres jest "
"okrojony, je
śli nie mieści się w określonych brzegach.</li>
\n
"
"</ul>
\n
"
"Strza³ki maj± nastêpuj±ce znaczenie:
\n
"
"<p>
\n
"
"Strzałki mają następujące znaczenie:
\n
"
"<p>
\n
"
"<ul>
\n
"
"<li>Ciemno niebieska strza
³ka jest
u¿ywana do wizualizacji relacji "
"dziedziczenia publicznego pomi
êdzy dwiema klasami
.
\n
"
"<li>Ciemno zielona strza
³ka jest u¿ywana dla dziedziczenia chronioneg
o.
\n
"
"<li>Ciemno czerwona strza
³ka jest u¿ywana dla dziedziczenia prywatneg
o.
\n
"
"<li>Fioletowa przerywana strza
³ka jest u¿ywana
je¶li klasa jest zawarta "
"lub u
¿yta przez inn± klasê. Strza³ka jest podpisana zm
ienn±(ymi) "
"przez kt
óre wskazywana klasa lub struktura jest dostêpna
.
\n
"
"</ul>
\n
"
)
;
"<li>Ciemno niebieska strza
łka jest uż
ywana do wizualizacji relacji "
"dziedziczenia publicznego pomi
ędzy dwiema klasami.</li>
\n
"
"<li>Ciemno zielona strza
łka jest używana dla dziedziczenia chronionego.</li>
\n
"
"<li>Ciemno czerwona strza
łka jest używana dla dziedziczenia prywatnego.</li>
\n
"
"<li>Fioletowa przerywana strza
łka jest używana jeś
li klasa jest zawarta "
"lub u
żyta przez inną klasę. Strzałka jest podpisana zmienną
(ymi) "
"przez kt
óre wskazywana klasa lub struktura jest dostępna. </li>
\n
"
"</ul>
\n
"
;
}
/*! text for the link to the legend page */
QCString
trLegend
()
...
...
@@ -1119,12 +1101,12 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! Used as a section header for IDL properties */
virtual
QCString
trProperties
()
{
return
decode
(
"W³a¶ciwo¶c
i"
);
return
"Właściwości"
;
}
/*! Used as a section header for IDL property documentation */
virtual
QCString
trPropertyDocumentation
()
{
return
decode
(
"Dokumentacja w³a¶ciwo¶c
i"
);
return
"Dokumentacja właściwości"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.4
...
...
@@ -1155,27 +1137,27 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! Title of the package index page */
virtual
QCString
trPackageList
()
{
return
decode
(
"Lista Pakietów"
);
return
"Lista Pakietów"
;
}
/*! The description of the package index page */
virtual
QCString
trPackageListDescription
()
{
return
decode
(
"Oto lista pakietów wraz z krótkim opisem (o ile jest dostêpny)
:"
);
return
"Oto lista pakietów wraz z krótkim opisem (o ile jest dostępny):"
;
}
/*! The link name in the Quick links header for each page */
virtual
QCString
trPackages
()
{
return
decode
(
"Pakiety"
)
;
return
"Pakiety"
;
}
/*! Used as a chapter title for Latex & RTF output */
virtual
QCString
trPackageDocumentation
()
{
return
decode
(
"Dokumentacja Pakietu"
)
;
return
"Dokumentacja Pakietu"
;
}
/*! Text shown before a multi-line define */
virtual
QCString
trDefineValue
()
{
return
decode
(
"Warto¶æ:
"
);
return
"Wartość:"
;
}
//////////////////////////////////////////////////////////////////////////
...
...
@@ -1185,12 +1167,12 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! Used as a marker that is put before a \\bug item */
virtual
QCString
trBug
()
{
return
decode
(
"B³±d
"
);
return
"Błąd"
;
}
/*! Used as the header of the bug list */
virtual
QCString
trBugList
()
{
return
decode
(
"Lista b³êdó
w"
);
return
"Lista błędów"
;
}
//////////////////////////////////////////////////////////////////////////
...
...
@@ -1212,7 +1194,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! Used as header RTF general index */
virtual
QCString
trRTFGeneralIndex
()
{
return
decode
(
"Indeks"
)
;
return
"Indeks"
;
}
/*! This is used for translation of the word that will possibly
...
...
@@ -1244,9 +1226,9 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
virtual
QCString
trNamespace
(
bool
first_capital
,
bool
singular
)
{
QCString
result
((
first_capital
?
"Przestrze"
:
"przestrze"
));
result
+=
(
singular
?
"ñ"
:
"nie"
);
result
+=
(
singular
?
"
ń
"
:
"nie"
);
result
+=
" nazw"
;
return
decode
(
result
)
;
return
result
;
}
/*! This is used for translation of the word that will possibly
...
...
@@ -1277,9 +1259,9 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
*/
virtual
QCString
trMember
(
bool
first_capital
,
bool
singular
)
{
QCString
result
((
first_capital
?
"Sk
³adow"
:
"s
k³adow"
));
QCString
result
((
first_capital
?
"Sk
ładow"
:
"skł
adow"
));
result
+=
(
singular
?
"a"
:
"e"
);
return
decode
(
result
)
;
return
result
;
}
/*! This is used for translation of the word that will possibly
...
...
@@ -1325,7 +1307,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
*/
virtual
QCString
trReferences
()
{
return
decode
(
"Odwo³uje siê do
"
);
return
"Odwołuje się do"
;
}
...
...
@@ -1353,7 +1335,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
*/
virtual
QCString
trRTFTableOfContents
()
{
return
decode
(
"Spis tre¶ci"
);
return
"Spis treści"
;
}
//////////////////////////////////////////////////////////////////////////
...
...
@@ -1365,7 +1347,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
*/
virtual
QCString
trDeprecatedList
()
{
return
decode
(
"Lista elementów do wycofania"
);
return
"Lista elementów do wycofania"
;
}
//////////////////////////////////////////////////////////////////////////
...
...
@@ -1382,7 +1364,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! Header used for the documentation section of a class' events. */
virtual
QCString
trEventDocumentation
()
{
return
decode
(
"Dokumentacja zdarzeñ"
);
return
"Dokumentacja zdarzeń"
;
}
//////////////////////////////////////////////////////////////////////////
...
...
@@ -1438,7 +1420,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! Put in front of the call graph for a function. */
virtual
QCString
trCallGraph
()
{
return
"Oto graf wywo
³
añ dla tej funkcji:"
;
return
"Oto graf wywo
łań
dla tej funkcji:"
;
}
//////////////////////////////////////////////////////////////////////////
...
...
@@ -1472,22 +1454,22 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
{
if
(
numDocuments
==
0
)
{
return
"Niestety ¿aden dokument nie pasuje do twojego zapytania."
;
return
"Niestety
ż
aden dokument nie pasuje do twojego zapytania."
;
}
else
if
(
numDocuments
==
1
)
{
return
"Znaleziono <b>1</b> dokument pasuj±cy do twojego zapytania."
;
return
"Znaleziono <b>1</b> dokument pasuj
ą
cy do twojego zapytania."
;
}
int
count
=
numDocuments
%
10
;
if
((
count
>=
2
)
&&
(
count
<=
4
))
{
return
"Znaleziono <b>$num</b> dokumenty pasuj±ce do twojego zapytania. "
"Najlepiej pasuj
±ce dokumenty wy¶wietlane s± na p
ocz±tku listy."
;
return
"Znaleziono <b>$num</b> dokumenty pasuj
ą
ce do twojego zapytania. "
"Najlepiej pasuj
ące dokumenty wyświetlane są na począ
tku listy."
;
}
else
{
return
"Znaleziono <b>$num</b> dokument
ów pasu
j±cych do twojego zapytania. "
"Najlepiej pasuj
±ce dokumenty wy¶wietlane s± na p
ocz±tku listy."
;
return
"Znaleziono <b>$num</b> dokument
ów pasują
cych do twojego zapytania. "
"Najlepiej pasuj
ące dokumenty wyświetlane są na począ
tku listy."
;
}
}
/*! This string is put before the list of matched words, for each search
...
...
@@ -1495,7 +1477,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
*/
virtual
QCString
trSearchMatches
()
{
return
"Pasuj
±ce
s³owa:"
;
return
"Pasuj
ące sł
owa:"
;
}
//////////////////////////////////////////////////////////////////////////
...
...
@@ -1506,7 +1488,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
*/
virtual
QCString
trSourceFile
(
QCString
&
filename
)
{
return
"Plik
¼r
ód³owy "
+
filename
;
return
"Plik
źródł
owy "
+
filename
;
}
//////////////////////////////////////////////////////////////////////////
...
...
@@ -1517,13 +1499,13 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
* hierarchy.
*/
virtual
QCString
trDirIndex
()
{
return
"Struktura katalogów"
;
}
{
return
"Struktura katalog
ó
w"
;
}
/*! This is used as the name of the chapter containing the documentation
* of the directories.
*/
virtual
QCString
trDirDocumentation
()
{
return
"Dokumentacja katalogów"
;
}
{
return
"Dokumentacja katalog
ó
w"
;
}
/*! This is used as the title of the directory index and also in the
* Quick links of a HTML page, to link to the directory hierarchy.
...
...
@@ -1536,8 +1518,8 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
*/
virtual
QCString
trDirDescription
()
{
return
"Ta struktura katalogów jest posortowana jest z grubsza, "
"cho
æ nie c
a³kowicie, alfabetycznie:"
;
return
"Ta struktura katalog
ó
w jest posortowana jest z grubsza, "
"cho
ć nie cał
kowicie, alfabetycznie:"
;
}
/*! This returns the title of a directory page. The name of the
...
...
@@ -1565,8 +1547,8 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
*/
virtual
QCString
trOverloadText
()
{
return
"To jest metoda przeci
±¿ona, udo
stêpniona dla wygody. "
"R
ó¿ni siê od powy¿szej metody tylko zestawem akceptowanych argu
mentów."
;
return
"To jest metoda przeci
ążona, udostę
pniona dla wygody. "
"R
óżni się od powyższej metody tylko zestawem akceptowanych argumentó
w."
;
}
//////////////////////////////////////////////////////////////////////////
...
...
@@ -1576,14 +1558,14 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! This is used to introduce a caller (or called-by) graph */
virtual
QCString
trCallerGraph
()
{
return
"Oto graf wywo
³yw
añ tej funkcji:"
;
return
"Oto graf wywo
ływań
tej funkcji:"
;
}
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values
*/
virtual
QCString
trEnumerationValueDocumentation
()
{
return
"Dokumentacja wyliczeñ"
;
}
//TODO check if it is correct translation
{
return
"Dokumentacja wylicze
ń
"
;
}
//TODO check if it is correct translation
//////////////////////////////////////////////////////////////////////////
// new since 1.5.4 (mainly for Fortran)
...
...
@@ -1591,11 +1573,11 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! header that is put before the list of member subprograms (Fortran). */
virtual
QCString
trMemberFunctionDocumentationFortran
()
{
return
"Dokumentacja sk³adowej funkcji/podprogramu"
;
}
{
return
"Dokumentacja sk
ł
adowej funkcji/podprogramu"
;
}
/*! This is put above each page as a link to the list of annotated data types (Fortran). */
virtual
QCString
trCompoundListFortran
()
{
return
"Lista typów danych"
;
}
{
return
"Lista typ
ó
w danych"
;
}
/*! This is put above each page as a link to all members of compounds (Fortran). */
virtual
QCString
trCompoundMembersFortran
()
...
...
@@ -1603,25 +1585,25 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! This is an introduction to the annotated compound list (Fortran). */
virtual
QCString
trCompoundListDescriptionFortran
()
{
return
"Tutaj znajduj
± siê typy danych z ich
krótkimi opisami:"
;
}
{
return
"Tutaj znajduj
ą się typy danych z ich kró
tkimi opisami:"
;
}
/*! This is an introduction to the page with all data types (Fortran). */
virtual
QCString
trCompoundMembersDescriptionFortran
(
bool
extractAll
)
{
QCString
result
=
"Tutaj znajduje siê lista wszystkich "
;
QCString
result
=
"Tutaj znajduje si
ę
lista wszystkich "
;
if
(
!
extractAll
)
{
result
+=
"udokumentowanych "
;
}
result
+=
"sk
³adowych ty
pów danych"
;
result
+=
" wraz z odno¶nikami do "
;
result
+=
"sk
ładowych typó
w danych"
;
result
+=
" wraz z odno
ś
nikami do "
;
if
(
!
extractAll
)
{
result
+=
"dokumentacji struktury danych dla ka
¿dej s
k³adowej"
;
result
+=
"dokumentacji struktury danych dla ka
żdej skł
adowej"
;
}
else
{
result
+=
"typ
ów danych, do których dana sk³adowa n
ale¿y:"
;
result
+=
"typ
ów danych, do których dana składowa należ
y:"
;
}
return
result
;
}
...
...
@@ -1630,13 +1612,13 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
* annotated compound index (Fortran).
*/
virtual
QCString
trCompoundIndexFortran
()
{
return
"Indeks typów danych"
;
}
{
return
"Indeks typ
ó
w danych"
;
}
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all data types (Fortran).
*/
virtual
QCString
trTypeDocumentation
()
{
return
"Dokumentacja typów danych"
;
}
{
return
"Dokumentacja typ
ó
w danych"
;
}
/*! This is used in the documentation of a file as a header before the
* list of (global) subprograms (Fortran).
...
...
@@ -1658,14 +1640,14 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! used as the title of page containing all the index of all modules (Fortran). */
virtual
QCString
trModulesList
()
{
return
"Lista modu³ów"
;
}
{
return
"Lista modu
łó
w"
;
}
/*! used as an introduction to the modules list (Fortran) */
virtual
QCString
trModulesListDescription
(
bool
extractAll
)
{
QCString
result
=
"Tutaj znajduje siê lista wszystkich "
;
QCString
result
=
"Tutaj znajduje si
ę
lista wszystkich "
;
if
(
!
extractAll
)
result
+=
"udokumentowanych "
;
result
+=
"modu
³ów z ich
krótkimi opisami:"
;
result
+=
"modu
łów z ich kró
tkimi opisami:"
;
return
result
;
}
...
...
@@ -1678,13 +1660,13 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
if
(
isTemplate
)
result
+=
" szablonu"
;
switch
(
compType
)
{
case
ClassDef
:
:
Class
:
result
+=
" modu³u "
;
break
;
case
ClassDef
:
:
Class
:
result
+=
" modu
ł
u "
;
break
;
case
ClassDef
:
:
Struct
:
result
+=
" typu "
;
break
;
case
ClassDef
:
:
Union
:
result
+=
" unii "
;
break
;
case
ClassDef
:
:
Interface
:
result
+=
" interfejsu "
;
break
;
case
ClassDef
:
:
Protocol
:
result
+=
" protoko³u "
;
break
;
case
ClassDef
:
:
Protocol
:
result
+=
" protoko
ł
u "
;
break
;
case
ClassDef
:
:
Category
:
result
+=
" kategorii "
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
" wyj±tku "
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
" wyj
ą
tku "
;
break
;
}
result
+=
(
QCString
)
clName
;
return
result
;
...
...
@@ -1692,28 +1674,28 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! used as the title of the HTML page of a module (Fortran) */
virtual
QCString
trModuleReference
(
const
char
*
namespaceName
)
{
QCString
result
=
"Dokumentacja modu³u "
;
QCString
result
=
"Dokumentacja modu
ł
u "
;
result
+=
namespaceName
;
return
result
;
}
/*! This is put above each page as a link to all members of modules. (Fortran) */
virtual
QCString
trModulesMembers
()
{
return
"Sk
³adowe mod
u³u"
;
}
{
return
"Sk
ładowe moduł
u"
;
}
/*! This is an introduction to the page with all modules members (Fortran) */
virtual
QCString
trModulesMemberDescription
(
bool
extractAll
)
{
QCString
result
=
"Tutaj znajduje siê lista wszystkich "
;
QCString
result
=
"Tutaj znajduje si
ę
lista wszystkich "
;
if
(
!
extractAll
)
result
+=
"udokumentowanych "
;
result
+=
"sk
³adowych modu³ów wraz z o
dno¶nikami do "
;
result
+=
"sk
ładowych modułów wraz z odnoś
nikami do "
;
if
(
extractAll
)
{
result
+=
"dokumentacji modu
³u dla ka¿dej
sk³adowej:"
;
result
+=
"dokumentacji modu
łu dla każdej skł
adowej:"
;
}
else
{
result
+=
"modu
³ów do których sk³adowe te
nale¿±:"
;
result
+=
"modu
łów do których składowe te należą
:"
;
}
return
result
;
}
...
...
@@ -1722,7 +1704,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
* index of all modules (Fortran).
*/
virtual
QCString
trModulesIndex
()
{
return
"Indeks modu³u"
;
}
{
return
"Indeks modu
ł
u"
;
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
...
...
@@ -1730,7 +1712,7 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
*/
virtual
QCString
trModule
(
bool
first_capital
,
bool
singular
)
{
QCString
result
((
first_capital
?
"Modu
³"
:
"mod
u³"
));
QCString
result
((
first_capital
?
"Modu
ł"
:
"moduł
"
));
if
(
!
singular
)
result
+=
"y"
;
return
result
;
}
...
...
@@ -1744,17 +1726,17 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
QCString
result
=
(
QCString
)
"Dokumentacja dla te"
;
switch
(
compType
)
{
case
ClassDef
:
:
Class
:
result
+=
"go modu³u"
;
break
;
case
ClassDef
:
:
Class
:
result
+=
"go modu
ł
u"
;
break
;
case
ClassDef
:
:
Struct
:
result
+=
"go typu"
;
break
;
case
ClassDef
:
:
Union
:
result
+=
"j unii"
;
break
;
case
ClassDef
:
:
Interface
:
result
+=
"go interfejsu"
;
break
;
case
ClassDef
:
:
Protocol
:
result
+=
"go protoko³u"
;
break
;
case
ClassDef
:
:
Protocol
:
result
+=
"go protoko
ł
u"
;
break
;
case
ClassDef
:
:
Category
:
result
+=
"j kategorii"
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
"go wyj±tku"
;
break
;
case
ClassDef
:
:
Exception
:
result
+=
"go wyj
ą
tku"
;
break
;
}
result
+=
" zosta³a wygenerowana z plik"
;
if
(
single
)
result
+=
"u:"
;
else
result
+=
"ów:"
;
return
decode
(
result
)
;
result
+=
" zosta
ł
a wygenerowana z plik"
;
if
(
single
)
result
+=
"u:"
;
else
result
+=
"
ó
w:"
;
return
result
;
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
...
...
@@ -1780,8 +1762,43 @@ class TranslatorPolish : public TranslatorAdapter_1_6_0
/*! C# Type Constraint list */
virtual
QCString
trTypeConstraints
()
{
return
"Wiêzy typów"
;
//TODO check if it is correct translation
return
"Więzy typów"
;
//TODO check if it is correct translation
}
//////////////////////////////////////////////////////////////////////////
// new since 1.6.0 (mainly for the new search engine)
//////////////////////////////////////////////////////////////////////////
/*! directory relation for \a name */
virtual
QCString
trDirRelation
(
const
char
*
name
)
{
return
"Relcja "
+
QCString
(
name
);
}
/*! Loading message shown when loading search results */
virtual
QCString
trLoading
()
{
return
"Wczytywanie..."
;
}
/*! Label used for search results in the global namespace */
virtual
QCString
trGlobalNamespace
()
{
return
"Globalna przestrzeń nazw"
;
}
/*! Message shown while searching */
virtual
QCString
trSearching
()
{
return
"Szukanie..."
;
}
/*! Text shown when no search results are found */
virtual
QCString
trNoMatches
()
{
return
"Brak dopasowań"
;
}
};
#endif
src/util.cpp
View file @
a62d9f8f
...
...
@@ -49,6 +49,7 @@
#include "textdocvisitor.h"
#include "portable.h"
#include "parserintf.h"
#include "bufstr.h"
#define ENABLE_TRACINGSUPPORT 0
...
...
@@ -5515,21 +5516,36 @@ QCString substituteTemplateArgumentsInString(
{
//printf("n=%s formArg->type='%s' formArg->name='%s' formArg->defval='%s'\n",
// n.data(),formArg->type.data(),formArg->name.data(),formArg->defval.data());
//printf(">> formArg->name='%s' actArg->type='%s' actArg->name='%s'\n",
// formArg->name.data(),actArg->type.data(),actArg->name.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
(
!
leftScopeMatch
(
actArg
->
type
,
n
))
// the scope guard is to prevent recursive lockup for
// template<class A> class C : public<A::T>,
// where A::T would become A::T::T here,
// since n==A and actArg->type==A::T
// see bug595833 for an example
{
if
(
actArg
->
name
.
isEmpty
())
{
result
+=
actArg
->
type
+
" "
;
found
=
TRUE
;
}
else
// for case where the actual arg is something like "unsigned int"
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
()
&&
}
}
else
if
(
formArg
->
name
==
n
&&
actArg
==
0
&&
!
formArg
->
defval
.
isEmpty
()
&&
formArg
->
defval
!=
name
/* to prevent recursion */
)
{
...
...
@@ -5537,7 +5553,9 @@ QCString substituteTemplateArgumentsInString(
found
=
TRUE
;
}
}
else
if
(
formArg
->
name
==
n
&&
actArg
==
0
&&
!
formArg
->
defval
.
isEmpty
()
&&
else
if
(
formArg
->
name
==
n
&&
actArg
==
0
&&
!
formArg
->
defval
.
isEmpty
()
&&
formArg
->
defval
!=
name
/* to prevent recursion */
)
{
...
...
@@ -5777,12 +5795,7 @@ PageDef *addRelatedPage(const char *name,const QCString &ptitle,
pd
->
setReference
(
tagInfo
->
tagName
);
}
QCString
pageName
;
if
(
Config_getBool
(
"CASE_SENSE_NAMES"
))
pageName
=
pd
->
name
();
else
pageName
=
pd
->
name
().
lower
();
pd
->
setFileName
(
pageName
);
pd
->
setFileName
(
convertNameToFile
(
pd
->
name
(),
FALSE
));
//printf("Appending page `%s'\n",baseName.data());
Doxygen
::
pageSDict
->
append
(
baseName
,
pd
);
...
...
@@ -5799,13 +5812,9 @@ PageDef *addRelatedPage(const char *name,const QCString &ptitle,
{
file
=
gd
->
getOutputFileBase
();
}
else
if
(
pd
->
getGroupDef
())
{
file
=
pd
->
getGroupDef
()
->
getOutputFileBase
().
copy
();
}
else
{
file
=
p
ageName
;
file
=
p
d
->
getOutputFileBase
()
;
}
SectionInfo
*
si
=
new
SectionInfo
(
file
,
pd
->
name
(),
pd
->
title
(),
SectionInfo
::
Page
,
pd
->
getReference
());
...
...
@@ -5814,7 +5823,7 @@ PageDef *addRelatedPage(const char *name,const QCString &ptitle,
// si->fileName.data());
//printf(" SectionInfo: sec=%p sec->fileName=%s\n",si,si->fileName.data());
//printf("Adding section key=%s si->fileName=%s\n",pageName.data(),si->fileName.data());
Doxygen
::
sectionDict
.
insert
(
p
ageName
,
si
);
Doxygen
::
sectionDict
.
insert
(
p
d
->
name
()
,
si
);
}
}
return
pd
;
...
...
@@ -5823,6 +5832,7 @@ PageDef *addRelatedPage(const char *name,const QCString &ptitle,
//----------------------------------------------------------------------------
void
addRefItem
(
const
QList
<
ListItemInfo
>
*
sli
,
const
char
*
key
,
const
char
*
prefix
,
const
char
*
name
,
const
char
*
title
,
const
char
*
args
)
{
//printf("addRefItem(sli=%p,prefix=%s,name=%s,title=%s,args=%s)\n",sli,prefix,name,title,args);
...
...
@@ -5834,7 +5844,6 @@ void addRefItem(const QList<ListItemInfo> *sli,
{
RefList
*
refList
=
Doxygen
::
xrefLists
->
find
(
lii
->
type
);
if
(
refList
#if 0
&&
(
// either not a built-in list or the list is enabled
...
...
@@ -5843,7 +5852,6 @@ void addRefItem(const QList<ListItemInfo> *sli,
(
lii
->
type
!=
"bug"
||
Config_getBool
(
"GENERATE_BUGLIST"
))
&&
(
lii
->
type
!=
"deprecated"
||
Config_getBool
(
"GENERATE_DEPRECATEDLIST"
))
)
#endif
)
{
RefItem
*
item
=
refList
->
getRefItem
(
lii
->
itemId
);
...
...
@@ -5854,7 +5862,7 @@ void addRefItem(const QList<ListItemInfo> *sli,
item
->
title
=
title
;
item
->
args
=
args
;
refList
->
insertIntoList
(
title
,
item
);
refList
->
insertIntoList
(
key
,
item
);
#if 0
...
...
@@ -6843,3 +6851,121 @@ void stackTrace()
#endif
}
static
int
transcodeCharacterBuffer
(
BufStr
&
srcBuf
,
int
size
,
const
char
*
inputEncoding
,
const
char
*
outputEncoding
)
{
if
(
inputEncoding
==
0
||
outputEncoding
==
0
)
return
size
;
if
(
qstricmp
(
inputEncoding
,
outputEncoding
)
==
0
)
return
size
;
void
*
cd
=
portable_iconv_open
(
outputEncoding
,
inputEncoding
);
if
(
cd
==
(
void
*
)(
-
1
))
{
err
(
"Error: unsupported character conversion: '%s'->'%s': %s
\n
"
"Check the INPUT_ENCODING setting in the config file!
\n
"
,
inputEncoding
,
outputEncoding
,
strerror
(
errno
));
exit
(
1
);
}
int
tmpBufSize
=
size
*
4
+
1
;
BufStr
tmpBuf
(
tmpBufSize
);
size_t
iLeft
=
size
;
size_t
oLeft
=
tmpBufSize
;
const
char
*
srcPtr
=
srcBuf
.
data
();
char
*
dstPtr
=
tmpBuf
.
data
();
uint
newSize
=
0
;
if
(
!
portable_iconv
(
cd
,
&
srcPtr
,
&
iLeft
,
&
dstPtr
,
&
oLeft
))
{
newSize
=
tmpBufSize
-
oLeft
;
srcBuf
.
shrink
(
newSize
);
strncpy
(
srcBuf
.
data
(),
tmpBuf
.
data
(),
newSize
);
//printf("iconv: input size=%d output size=%d\n[%s]\n",size,newSize,srcBuf.data());
}
else
{
err
(
"Error: failed to translate characters from %s to %s: check INPUT_ENCODING
\n
"
,
inputEncoding
,
outputEncoding
);
exit
(
1
);
}
portable_iconv_close
(
cd
);
return
newSize
;
}
//! read a file name \a fileName and optionally filter and transcode it
bool
readInputFile
(
const
char
*
fileName
,
BufStr
&
inBuf
)
{
// try to open file
int
size
=
0
;
//uint oldPos = dest.curPos();
//printf(".......oldPos=%d\n",oldPos);
QFileInfo
fi
(
fileName
);
if
(
!
fi
.
exists
())
return
FALSE
;
QCString
filterName
=
getFileFilter
(
fileName
);
if
(
filterName
.
isEmpty
())
{
QFile
f
(
fileName
);
if
(
!
f
.
open
(
IO_ReadOnly
))
{
err
(
"Error: could not open file %s
\n
"
,
fileName
);
return
FALSE
;
}
size
=
fi
.
size
();
// read the file
inBuf
.
skip
(
size
);
if
(
f
.
readBlock
(
inBuf
.
data
()
/*+oldPos*/
,
size
)
!=
size
)
{
err
(
"Error while reading file %s
\n
"
,
fileName
);
return
FALSE
;
}
}
else
{
QCString
cmd
=
filterName
+
"
\"
"
+
fileName
+
"
\"
"
;
Debug
::
print
(
Debug
::
ExtCmd
,
0
,
"Executing popen(`%s`)
\n
"
,
cmd
.
data
());
FILE
*
f
=
portable_popen
(
cmd
,
"r"
);
if
(
!
f
)
{
err
(
"Error: could not execute filter %s
\n
"
,
filterName
.
data
());
return
FALSE
;
}
const
int
bufSize
=
1024
;
char
buf
[
bufSize
];
int
numRead
;
while
((
numRead
=
fread
(
buf
,
1
,
bufSize
,
f
))
>
0
)
{
//printf(">>>>>>>>Reading %d bytes\n",numRead);
inBuf
.
addArray
(
buf
,
numRead
),
size
+=
numRead
;
}
portable_pclose
(
f
);
}
if
(
inBuf
.
size
()
>=
2
&&
((
inBuf
.
at
(
0
)
==-
1
&&
inBuf
.
at
(
1
)
==-
2
)
||
// Litte endian BOM
(
inBuf
.
at
(
0
)
==-
2
&&
inBuf
.
at
(
1
)
==-
1
)
// big endian BOM
)
)
// UCS-2 encoded file
{
transcodeCharacterBuffer
(
inBuf
,
inBuf
.
curPos
(),
"UCS-2"
,
"UTF-8"
);
}
else
// transcode according to the INPUT_ENCODING setting
{
// do character transcoding if needed.
transcodeCharacterBuffer
(
inBuf
,
inBuf
.
curPos
(),
Config_getString
(
"INPUT_ENCODING"
),
"UTF-8"
);
}
inBuf
.
addChar
(
'\n'
);
/* to prevent problems under Windows ? */
// and translate CR's
size
=
inBuf
.
curPos
();
int
newSize
=
filterCRLF
(
inBuf
.
data
(),
size
);
//printf("filter char at %p size=%d newSize=%d\n",dest.data()+oldPos,size,newSize);
if
(
newSize
!=
size
)
// we removed chars
{
inBuf
.
shrink
(
newSize
);
// resize the array
//printf(".......resizing from %d to %d result=[%s]\n",oldPos+size,oldPos+newSize,dest.data());
}
inBuf
.
at
(
inBuf
.
curPos
())
=
'\0'
;
return
TRUE
;
}
src/util.h
View file @
a62d9f8f
...
...
@@ -53,6 +53,7 @@ class PageDef;
struct
SectionInfo
;
class
QDir
;
class
Definition
;
class
BufStr
;
//--------------------------------------------------------------------
...
...
@@ -279,7 +280,8 @@ int getScopeFragment(const QCString &s,int p,int *l);
int
filterCRLF
(
char
*
buf
,
int
len
);
void
addRefItem
(
const
QList
<
ListItemInfo
>
*
sli
,
const
char
*
prefix
,
const
char
*
name
,
const
char
*
title
,
const
char
*
args
=
0
);
const
char
*
key
,
const
char
*
name
,
const
char
*
title
,
const
char
*
args
);
PageDef
*
addRelatedPage
(
const
char
*
name
,
const
QCString
&
ptitle
,
const
QCString
&
doc
,
QList
<
SectionInfo
>
*
anchors
,
...
...
@@ -363,5 +365,8 @@ QCString convertCharEntitiesToUTF8(const QCString &s);
bool
usingTreeIndex
();
void
stackTrace
();
bool
readInputFile
(
const
char
*
fileName
,
BufStr
&
inBuf
);
#endif
src/vhdldocgen.cpp
View file @
a62d9f8f
...
...
@@ -204,52 +204,32 @@ ClassDef *VhdlDocGen::getClass(const char *name)
}
/*!
* adds
components to their entities
* adds
architectures to their entity
*/
void
VhdlDocGen
::
computeVhdlComponentRelations
(
const
QDict
<
EntryNav
>&
classEntries
,
FileStorage
*
g_storage
)
void
VhdlDocGen
::
computeVhdlComponentRelations
()
{
ClassSDict
::
Iterator
cli
(
*
Doxygen
::
classSDict
);
for
(
cli
.
toFirst
();
cli
.
current
();
++
cli
)
cli
.
current
()
->
visited
=
FALSE
;
QDictIterator
<
EntryNav
>
edi
(
classEntries
);
EntryNav
*
rootNav
;
for
(;(
rootNav
=
edi
.
current
());
++
edi
)
for
(
cli
.
toFirst
();
cli
.
current
();
++
cli
)
{
ClassDef
*
cd
;
rootNav
->
loadEntry
(
g_storage
);
Entry
*
root
=
rootNav
->
entry
();
QCString
bName
=
stripAnonymousNamespaceScope
(
rootNav
->
name
());
if
((
cd
=
getClass
(
bName
)))
cli
.
current
()
->
visited
=
FALSE
;
ClassDef
*
cd
=
cli
.
current
();
if
((
VhdlDocGen
::
VhdlClasses
)
cd
->
protection
()
==
VhdlDocGen
::
ARCHITECTURECLASS
)
{
Q
ListIterator
<
BaseInfo
>
bii
(
*
root
->
extends
);
BaseInfo
*
bi
=
0
;
for
(
bii
.
toFirst
();(
bi
=
bii
.
current
());
++
bii
)
Q
CString
bName
=
cd
->
name
(
);
int
i
=
bName
.
find
(
"::"
)
;
if
(
i
>
0
)
{
ClassDef
*
baseDef
=
getClass
(
bi
->
name
);
if
(
baseDef
&&
baseDef
!=
cd
)
QCString
entityName
=
bName
.
left
(
i
);
ClassDef
*
classEntity
=
Doxygen
::
classSDict
->
find
(
entityName
);
// entity for architecutre ?
if
(
classEntity
)
{
QCString
cc
=
VhdlDocGen
::
getClassName
(
cd
);
ClassDef
*
ccdef
=
getClass
(
cc
);
if
(
ccdef
==
0
)
break
;
int
ii
=
ccdef
->
protection
();
int
jj
=
baseDef
->
protection
();
if
(
ii
==
VhdlDocGen
::
ENTITYCLASS
&&
jj
==
VhdlDocGen
::
ENTITYCLASS
&&
(
ccdef
!=
baseDef
))
{
ccdef
->
insertBaseClass
(
baseDef
,
bi
->
name
,
Public
,
Normal
,
0
);
baseDef
->
insertSubClass
(
ccdef
,
Public
,
bi
->
virt
,
0
);
classEntity
->
insertBaseClass
(
cd
,
bName
,
Public
,
Normal
,
0
);
cd
->
insertSubClass
(
classEntity
,
Public
,
Normal
,
0
);
}
}
}
else
{
if
(
Config_getBool
(
"WARNINGS"
))
warn
(
rootNav
->
fileDef
()
->
fileName
().
data
(),
root
->
startLine
,
"found component without entity: [%s]"
,
bi
->
name
.
data
());
}
}
//for
}
//if
rootNav
->
releaseEntry
();
}
// for
}
// computeVhdlComponentRelations
...
...
src/vhdldocgen.h
View file @
a62d9f8f
...
...
@@ -105,7 +105,7 @@ class VhdlDocGen
static
void
debugClassName
(
ClassSDict
*
);
//static void MergeFuncDoc(Entry* p,Entry* root);
static
void
computeVhdlComponentRelations
(
const
QDict
<
EntryNav
>&
,
FileStorage
*
);
static
void
computeVhdlComponentRelations
();
//static void addVariableToComponents(EntryNav *rootNav,ClassDef *cd, MemberDef::MemberType mtype, const QCString &name, bool fromAnnScope,MemberDef *fromAnnMemb,Protection prot,bool related);
...
...
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