summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2009-10-04 20:20:24 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2009-10-04 20:20:24 (GMT)
commit1042ef3a191bd0f399f1a2a20fe259c14fe6faf9 (patch)
tree36e6fdf77248708eaee0f1180b2ea526d1323c18
parentab2543160a96dae45f256daaeca7e093f65db6ad (diff)
downloadDoxygen-1042ef3a191bd0f399f1a2a20fe259c14fe6faf9.zip
Doxygen-1042ef3a191bd0f399f1a2a20fe259c14fe6faf9.tar.gz
Doxygen-1042ef3a191bd0f399f1a2a20fe259c14fe6faf9.tar.bz2
Release-1.6.1-20091004
-rw-r--r--INSTALL4
-rw-r--r--README4
-rw-r--r--addon/doxywizard/doxywizard.cpp11
-rwxr-xr-xconfigure2
-rw-r--r--doc/config.doc38
-rw-r--r--doc/language.doc10
-rw-r--r--doc/translator.py47
-rw-r--r--doc/translator_report.txt253
-rw-r--r--src/bufstr.h4
-rw-r--r--src/classdef.cpp4
-rw-r--r--src/config.l20
-rw-r--r--src/config.xml7
-rw-r--r--src/configoptions.cpp9
-rw-r--r--src/definition.cpp5
-rw-r--r--src/dirdef.cpp5
-rw-r--r--src/dot.cpp519
-rw-r--r--src/dot.h4
-rw-r--r--src/doxygen.cpp186
-rw-r--r--src/filedef.cpp4
-rw-r--r--src/formula.cpp6
-rw-r--r--src/groupdef.cpp4
-rw-r--r--src/htmlgen.cpp2
-rw-r--r--src/latexgen.cpp53
-rw-r--r--src/libdoxycfg.t3
-rw-r--r--src/memberdef.cpp20
-rw-r--r--src/membergroup.cpp8
-rw-r--r--src/namespacedef.cpp4
-rw-r--r--src/pagedef.cpp5
-rw-r--r--src/pre.h3
-rw-r--r--src/pre.l90
-rw-r--r--src/scanner.l9
-rw-r--r--src/translator_cz.h5
-rw-r--r--src/translator_fr.h47
-rw-r--r--src/translator_pl.h449
-rw-r--r--src/util.cpp184
-rw-r--r--src/util.h7
-rw-r--r--src/vhdldocgen.cpp62
-rw-r--r--src/vhdldocgen.h2
38 files changed, 1118 insertions, 981 deletions
diff --git a/INSTALL b/INSTALL
index cd4eb55..0a2c3d0 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
-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)
diff --git a/README b/README
index 293d70c..99f0029 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-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)
diff --git a/addon/doxywizard/doxywizard.cpp b/addon/doxywizard/doxywizard.cpp
index 2c30b14..a14aa4e 100644
--- a/addon/doxywizard/doxywizard.cpp
+++ b/addon/doxywizard/doxywizard.cpp
@@ -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>&copy; 2000-2008</center><p>"
+ "<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-2009</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);
diff --git a/configure b/configure
index 5b53142..9243607 100755
--- a/configure
+++ b/configure
@@ -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"`
diff --git a/doc/config.doc b/doc/config.doc
index f049986..9844686 100644
--- a/doc/config.doc
+++ b/doc/config.doc
@@ -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_qhg_location QHG_LOCATION
+\refitem cfg_qhp_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>
diff --git a/doc/language.doc b/doc/language.doc
index 78d7afc..4494aad 100644
--- a/doc/language.doc
+++ b/doc/language.doc
@@ -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
diff --git a/doc/translator.py b/doc/translator.py
index c53fd71..95ee485 100644
--- a/doc/translator.py
+++ b/doc/translator.py
@@ -48,8 +48,10 @@
2005/02/28 - Slight modification to generate "mailto.txt" auxiliary file.
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
+ 2007/03/20 - The "translate me!" searched in comments and reported if found.
+ 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)
@@ -884,9 +890,17 @@ class Transl:
# Insert new dictionary item.
assert(not self.prototypeDic.has_key(uniPrototype))
self.prototypeDic[uniPrototype] = prototype
- status = 2 # body consumed
+ 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(' %-30s' % obj.classId)
@@ -1548,7 +1573,9 @@ class TrManager:
numimpl = len(obj.missingMethods)
pluralS = ''
if numimpl > 1: pluralS = 's'
- f.write('\t%2d method%s to implement' % (numimpl, pluralS))
+ percent = 100 * numimpl / numRequired
+ f.write('\t%2d method%s to implement (%d %%)' % (
+ numimpl, pluralS, percent))
if obj.note:
f.write('\n\tNote: ' + obj.note + '\n')
f.write('\n')
diff --git a/doc/translator_report.txt b/doc/translator_report.txt
index d84e8b0..f3f12e0 100644
--- a/doc/translator_report.txt
+++ b/doc/translator_report.txt
@@ -1,4 +1,4 @@
-(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) 27 methods to implement
+TranslatorFrench (TranslatorAdapter_1_5_4) 22 methods to implement (9 %)
----------------
- Implements 194 of the required methods.
+ Implements 199 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 (TranslatorAdapter_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):
diff --git a/src/bufstr.h b/src/bufstr.h
index 80da421..4ce1dae 100644
--- a/src/bufstr.h
+++ b/src/bufstr.h
@@ -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;
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 55cc4f2..73bb09c 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -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)
diff --git a/src/config.l b/src/config.l
index e433669..df07204 100644
--- a/src/config.l
+++ b/src/config.l
@@ -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
diff --git a/src/config.xml b/src/config.xml
index a2cb0af..8395f54 100644
--- a/src/config.xml
+++ b/src/config.xml
@@ -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 &quot;myfile.cpp&quot; or
directories like &quot;/usr/src/myproject&quot;. 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&apos; 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&apos; 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
diff --git a/src/configoptions.cpp b/src/configoptions.cpp
index 2aad2bc..d96a48a 100644
--- a/src/configoptions.cpp
+++ b/src/configoptions.cpp
@@ -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);
diff --git a/src/definition.cpp b/src/definition.cpp
index 36c1f69..32e7d64 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -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("&nbsp;");
- ol.writeString("&raquo");
+ ol.writeString("&raquo;");
ol.writeString("&nbsp;");
}
}
diff --git a/src/dirdef.cpp b/src/dirdef.cpp
index 56f713c..1ca01b5 100644
--- a/src/dirdef.cpp
+++ b/src/dirdef.cpp
@@ -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)
{
diff --git a/src/dot.cpp b/src/dot.cpp
index 5014f93..8b30ad4 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -118,9 +118,9 @@ static void writeGraphFooter(QTextStream &t)
* \param mapName the name of the map file.
* \param relPath the relative path to the root of the output directory
* (used in case CREATE_SUBDIRS is enabled).
- * \param urlOnly if FALSE the url field in the map contains an external
- * references followed by a $ and then the URL.
- * \param context the context (file, class, or namespace) in which the
+ * \param urlOnly if FALSE the url field in the map contains an external
+ * references followed by a $ and then the URL.
+ * \param context the context (file, class, or namespace) in which the
* map file was found
* \returns TRUE if succesful.
*/
@@ -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",
@@ -1052,14 +1092,15 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) const
QDir d(path);
// store the original directory
- if (!d.exists())
- {
+ if (!d.exists())
+ {
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(baseName,sigStr) ||
- !QFileInfo(mapName).exists())
- {
+ if (checkAndUpdateMd5Signature(absBaseName,sigStr) ||
+ !QFileInfo(absMapName).exists())
+ {
// image was new or has changed
- QCString dotName=baseName+".dot";
+ QCString dotName=absBaseName+".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,imgName);
- dotRun.addJob(MAP_CMD,mapName);
+ dotRun.addJob(imgExt,absImgName);
+ dotRun.addJob(MAP_CMD,absMapName);
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(imgName);
+ Doxygen::indexList.addImageFile(absImgName);
// 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 << "<tr><td><img src=\"" << imgName << "\" border=\"0\" alt=\"\" usemap=\"#"
+ << mapLabel << "_map\"/>" << endl;
out << "<map name=\"" << mapLabel << "_map\" id=\"" << mapLabel << "\">" << endl;
- convertMapFile(out,mapName,"");
+ convertMapFile(out,absMapName,"");
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,
@@ -1833,14 +1876,11 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
{
QDir d(path);
// store the original directory
- if (!d.exists())
- {
+ if (!d.exists())
+ {
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,
- baseName,
+ absBaseName,
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 = baseName+"."+imgExt;
+ QCString absImgName = absBaseName+"."+imgExt;
- DotRunner dotRun(baseName+".dot");
- dotRun.addJob(imgExt,imgName);
- if (generateImageMap) dotRun.addJob(MAP_CMD,baseName+".map");
+ DotRunner dotRun(absBaseName+".dot");
+ dotRun.addJob(imgExt,absImgName);
+ if (generateImageMap) dotRun.addJob(MAP_CMD,absBaseName+".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)
- {
- err("Error: Problems running epstopdf. Check your TeX installation!\n");
- QDir::setCurrent(oldDir);
- return baseName;
- }
+ absBaseName.data(),absBaseName.data());
+ dotRun.addPostProcessing("epstopdf",epstopdfArgs);
}
+ if (!dotRun.run())
+ {
+ 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,baseName+".map",relPath);
+ convertMapFile(tmpout,absBaseName+".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(baseName+".eps",&width,&height))
+ if (!readBoundingBoxEPS(absBaseName+".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;
}
@@ -2181,14 +2215,11 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
{
QDir d(path);
// store the original directory
- if (!d.exists())
- {
+ if (!d.exists())
+ {
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,
- baseName,
+ absBaseName,
format,
FALSE, // lrRank
FALSE, // renderParents
@@ -2212,38 +2246,33 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
{
// run dot to create a bitmap image
QCString dotArgs(maxCmdLine);
- QCString imgName=baseName+"."+imgExt;
- DotRunner dotRun(baseName+".dot");
- dotRun.addJob(imgExt,imgName);
- if (generateImageMap) dotRun.addJob(MAP_CMD,baseName+".map");
+ QCString absImgName=absBaseName+"."+imgExt;
+ DotRunner dotRun(absBaseName+".dot");
+ dotRun.addJob(imgExt,absImgName);
+ if (generateImageMap) dotRun.addJob(MAP_CMD,absBaseName+".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)
- {
- err("Error: Problems running epstopdf. Check your TeX installation!\n");
- QDir::setCurrent(oldDir);
- return baseName;
- }
+ absBaseName.data(),absBaseName.data());
+ dotRun.addPostProcessing("epstopdf",epstopdfArgs);
+ }
+ if (!dotRun.run())
+ {
+ unsetDotFontPath();
+ return baseName;
}
}
}
@@ -2258,26 +2287,25 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
QString tmpstr;
QTextOStream tmpout(&tmpstr);
tmpout.setEncoding(tmpout.UnicodeUTF8);
- convertMapFile(tmpout,baseName+".map",relPath);
+ convertMapFile(tmpout,absBaseName+".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(baseName+".eps",&width,&height))
+ if (!readBoundingBoxEPS(absBaseName+".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 */
-
+
out << "\\nopagebreak\n"
"\\begin{figure}[H]\n"
"\\begin{center}\n"
@@ -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;
}
@@ -2478,22 +2506,21 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
{
QDir d(path);
// store the original directory
- if (!d.exists())
- {
+ if (!d.exists())
+ {
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,
- baseName,
+ absBaseName,
format,
TRUE, // lrRank
FALSE, // renderParents
@@ -2505,38 +2532,33 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
{
// run dot to create a bitmap image
QCString dotArgs(maxCmdLine);
- QCString imgName=baseName+"."+imgExt;
- DotRunner dotRun(baseName+".dot");
- dotRun.addJob(imgExt,imgName);
- if (generateImageMap) dotRun.addJob(MAP_CMD,baseName+".map");
+ QCString absImgName=absBaseName+"."+imgExt;
+ DotRunner dotRun(absBaseName+".dot");
+ dotRun.addJob(imgExt,absImgName);
+ if (generateImageMap) dotRun.addJob(MAP_CMD,absBaseName+".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)
- {
- err("Error: Problems running epstopdf. Check your TeX installation!\n");
- QDir::setCurrent(oldDir);
- return baseName;
- }
+ absBaseName.data(),absBaseName.data());
+ dotRun.addPostProcessing("epstopdf",epstopdfArgs);
+ }
+ if (!dotRun.run())
+ {
+ unsetDotFontPath();
+ return baseName;
}
}
}
@@ -2552,26 +2574,25 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
QString tmpstr;
QTextOStream tmpout(&tmpstr);
tmpout.setEncoding(tmpout.UnicodeUTF8);
- convertMapFile(tmpout,baseName+".map",relPath);
+ convertMapFile(tmpout,absBaseName+".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(baseName+".eps",&width,&height))
+ if (!readBoundingBoxEPS(absBaseName+".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 */
-
+
out << "\\nopagebreak\n"
"\\begin{figure}[H]\n"
"\\begin{center}\n"
@@ -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;
}
@@ -2618,22 +2639,21 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
{
QDir d(path);
// store the original directory
- if (!d.exists())
- {
+ if (!d.exists())
+ {
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(baseName+".dot");
+ QFile f(absBaseName+".dot");
if (!f.open(IO_WriteOnly))
{
err("Cannot create file %s.dot for writing!\n",baseName.data());
@@ -2642,43 +2662,38 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
t.setEncoding(t.UnicodeUTF8);
m_dir->writeDepGraph(t);
f.close();
-
+
if (format==BITMAP)
{
// run dot to create a bitmap image
QCString dotArgs(maxCmdLine);
- QCString imgName=baseName+"."+imgExt;
- DotRunner dotRun(baseName+".dot");
- dotRun.addJob(imgExt,imgName);
- if (generateImageMap) dotRun.addJob(MAP_CMD,baseName+".map");
+ QCString absImgName=absBaseName+"."+imgExt;
+ DotRunner dotRun(absBaseName+".dot");
+ dotRun.addJob(imgExt,absImgName);
+ if (generateImageMap) dotRun.addJob(MAP_CMD,absBaseName+".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)
- {
- err("Error: Problems running epstopdf. Check your TeX installation!\n");
- QDir::setCurrent(oldDir);
- return baseName;
- }
+ absBaseName.data(),absBaseName.data());
+ dotRun.addPostProcessing("epstopdf",epstopdfArgs);
+ }
+ if (!dotRun.run())
+ {
+ unsetDotFontPath();
+ return baseName;
}
}
}
@@ -2695,7 +2710,7 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
QString tmpstr;
QTextOStream tmpout(&tmpstr);
tmpout.setEncoding(tmpout.UnicodeUTF8);
- convertMapFile(tmpout,baseName+".map",relPath,TRUE);
+ convertMapFile(tmpout,absBaseName+".map",relPath,TRUE);
if (!tmpstr.isEmpty())
{
out << "<map name=\"" << mapName << "_map\" id=\"" << mapName << "\">" << endl;
@@ -2711,14 +2726,14 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
else if (format==EPS)
{
int width,height;
- if (!readBoundingBoxEPS(baseName+".eps",&width,&height))
+ if (!readBoundingBoxEPS(absBaseName+".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 */
-
+
out << "\\nopagebreak\n"
"\\begin{figure}[H]\n"
"\\begin{center}\n"
@@ -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;
}
@@ -2775,89 +2790,68 @@ void generateGraphLegend(const char *path)
QDir d(path);
// store the original directory
- if (!d.exists())
- {
+ if (!d.exists())
+ {
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,imgName);
+ DotRunner dotRun(d.absPath()+"/graph_legend.dot");
+ dotRun.addJob(imgExt,absImgName);
if (!dotRun.run())
{
- QDir::setCurrent(oldDir);
- return;
+ unsetDotFontPath();
+ return;
}
- checkDotResult(imgName);
+ checkDotResult(absImgName);
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,imgName);
+ if (format==BITMAP)
+ dotRun.addJob(imgExt,absImgName);
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,outFile);
+ dotRun.addJob(MAP_CMD,absOutFile);
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
@@ -3117,18 +3113,16 @@ QCString DotGroupCollaboration::writeGraph( QTextStream &t, GraphOutputFormat fo
{
QDir d(path);
// store the original directory
- if (!d.exists())
- {
- 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;
+ if (!d.exists())
+ {
+ err("Error: Output dir %s does not exist!\n",path); exit(1);
+ }
+ setDotFontPath(d.absPath());
+
QCString baseName = m_diskName;
+ QCString absBaseName = QCString(d.absPath())+"/"+baseName;
- QFile dotfile(baseName+".dot");
+ QFile dotfile(absBaseName+".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,mapName,relPath);
+ convertMapFile(t,absMapName,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)
- {
- err("Error: Problems running epstopdf. Check your TeX installation!\n");
- QDir::setCurrent(oldDir);
- return baseName;
- }
+ absBaseName.data(),absBaseName.data());
+ dotRun.addPostProcessing("epstopdf",epstopdfArgs);
+ }
+
+ if (!dotRun.run())
+ {
+ unsetDotFontPath();
+ return baseName;
}
+
int width,height;
- if (!readBoundingBoxEPS(baseName+".eps",&width,&height))
+ if (!readBoundingBoxEPS(absBaseName+".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;
}
diff --git a/src/dot.h b/src/dot.h
index 2a59a82..3a1c2f1 100644
--- a/src/dot.h
+++ b/src/dot.h
@@ -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;
};
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index f53a291..05d9429 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -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());
- copyAndFilterFile(fileName,preBuf);
+ readInputFile(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");
diff --git a/src/filedef.cpp b/src/filedef.cpp
index bcfcc01..7dd8b79 100644
--- a/src/filedef.cpp
+++ b/src/filedef.cpp
@@ -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)
diff --git a/src/formula.cpp b/src/formula.cpp
index 0ba3e22..ee4976b 100644
--- a/src/formula.cpp
+++ b/src/formula.cpp
@@ -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);
diff --git a/src/groupdef.cpp b/src/groupdef.cpp
index 3f3c86f..1b3c47e 100644
--- a/src/groupdef.cpp
+++ b/src/groupdef.cpp
@@ -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);
diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp
index fbea282..dae7084 100644
--- a/src/htmlgen.cpp
+++ b/src/htmlgen.cpp
@@ -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()
diff --git a/src/latexgen.cpp b/src/latexgen.cpp
index 794ef9f..f3f9438 100644
--- a/src/latexgen.cpp
+++ b/src/latexgen.cpp
@@ -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 << cs;
}
if (col>=80)
{
@@ -1637,8 +1637,9 @@ void LatexGenerator::codify(const char *str)
}
else
{
- col++;
+ col++;
}
+ p+=(bytes-1); // skip to next character
break;
}
}
diff --git a/src/libdoxycfg.t b/src/libdoxycfg.t
index c3f2f3c..0914b78 100644
--- a/src/libdoxycfg.t
+++ b/src/libdoxycfg.t
@@ -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
+
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index f9637e2..b3843cd 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -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,14 +2720,16 @@ 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
+ (!hideScopeNames && // there is a scope
pd && pd!=Doxygen::globalScope) // and we can show it
||
(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);
}
}
diff --git a/src/membergroup.cpp b/src/membergroup.cpp
index a191354..5c4a2e8 100644
--- a/src/membergroup.cpp
+++ b/src/membergroup.cpp
@@ -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);
}
}
diff --git a/src/namespacedef.cpp b/src/namespacedef.cpp
index 689fd26..2b41d4c 100644
--- a/src/namespacedef.cpp
+++ b/src/namespacedef.cpp
@@ -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);
diff --git a/src/pagedef.cpp b/src/pagedef.cpp
index 1f451cc..efb361c 100644
--- a/src/pagedef.cpp
+++ b/src/pagedef.cpp
@@ -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);
diff --git a/src/pre.h b/src/pre.h
index 8fa0079..faaaa80 100644
--- a/src/pre.h
+++ b/src/pre.h
@@ -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
diff --git a/src/pre.l b/src/pre.l
index fad03e0..579f134 100644
--- a/src/pre.l
+++ b/src/pre.l
@@ -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,11 +199,11 @@ 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");
- return 0; // already done
+ alreadyIncluded = TRUE;
+ //printf(" already included 1\n");
+ return 0; // already done
}
g_allIncludes.insert(absName,(void *)0x8);
}
@@ -215,16 +222,28 @@ static FileState *checkAndOpenFile(const QCString &fileName,bool &alreadyInclude
}
g_includeStack.setAutoDelete(TRUE);
- if (alreadyIncluded)
+ if (alreadyIncluded)
{
//printf(" already included 2\n");
- return 0;
+ return 0;
}
//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;
}
@@ -1155,9 +1176,9 @@ static void readIncludeFile(const QCString &inc)
uint i=0;
// find the start of the include file name
- while (i<inc.length() &&
+ while (i<inc.length() &&
(inc.at(i)==' ' || inc.at(i)=='"' || inc.at(i)=='<')
- ) i++;
+ ) i++;
uint s=i;
// was it a local include?
@@ -1190,13 +1211,13 @@ static void readIncludeFile(const QCString &inc)
}
if (oldFileDef)
{
- // add include dependency to the file in which the #include was found
- oldFileDef->addIncludeDependency(g_yyFileDef,incFileName,localInclude,g_isImported);
- // add included by dependency
+ // add include dependency to the file in which the #include was found
+ oldFileDef->addIncludeDependency(g_yyFileDef,incFileName,localInclude,g_isImported);
+ // add included by dependency
if (g_yyFileDef)
{
- //printf("Adding include dependency %s->%s\n",oldFileDef->name().data(),incFileName.data());
- g_yyFileDef->addIncludedByDependency(oldFileDef,oldFileDef->docName(),localInclude,g_isImported);
+ //printf("Adding include dependency %s->%s\n",oldFileDef->name().data(),incFileName.data());
+ g_yyFileDef->addIncludedByDependency(oldFileDef,oldFileDef->docName(),localInclude,g_isImported);
}
}
fs->bufState=YY_CURRENT_BUFFER;
@@ -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))
{
diff --git a/src/scanner.l b/src/scanner.l
index f112d5b..dd1eb77 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -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;
diff --git a/src/translator_cz.h b/src/translator_cz.h
index daad247..8d6d386 100644
--- a/src/translator_cz.h
+++ b/src/translator_cz.h
@@ -20,7 +20,7 @@
// Updates:
// --------
-// 2009/08/24 -
+// 2009/09/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
diff --git a/src/translator_fr.h b/src/translator_fr.h
index e7b66c8..575e923 100644
--- a/src/translator_fr.h
+++ b/src/translator_fr.h
@@ -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 membres"; }
+ 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, enumé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éfinitions 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 destructeurs";
}
/*! 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
diff --git a/src/translator_pl.h b/src/translator_pl.h
index 571966c..dd6373e 100644
--- a/src/translator_pl.h
+++ b/src/translator_pl.h
@@ -1,6 +1,6 @@
/******************************************************************************
*
- *
+ *
*
* Copyright (C) 1997-2008 by Dimitri van Heesch.
*
@@ -20,21 +20,8 @@
#ifndef TRANSLATOR_PL_H
#define TRANSLATOR_PL_H
-class TranslatorPolish : public TranslatorAdapter_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 Doxygen");
+ { 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 kró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± się 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 skł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 należy:";
+ result+="struktur/unii, do ktĂłrych dane pole naleĹĽy:";
}
else
{
- result+="klas, do których dana składowa należ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 typów";
+ result+="funkcji, zmiennych, makr, wyliczeń i definicji typów";
}
else
{
- result+="składowych plikó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 należ±:";
+ 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 API:"); }
+ { 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± się 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±zanych"); }
+ { 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 odno¶nikami do ";
+ result+="składowych wraz z odnośnikami do ";
if (extractAll)
- result+="dokumentacji przestrzeni nazw dla każdej składowej:";
+ result+="dokumentacji przestrzeni nazw dla każdej składowej:";
else
- result+="przestrzeni nazw do których składowe te należ±:";
- 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 dla ")+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 pliku.");
+ 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łowy");
+ 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 bezpo¶rednio lub "
- "po¶rednio zał±czaj± ten plik:");
+ 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óre s± wygenerowane "
+ return
+ "Ta strona wyjaśnia jak interpretować wykresy, które są wygenerowane "
"przez doxygen.<p>\n"
- "Rozważ następuj±cy przykł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 klasę 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 klasę dla "
- "której został wygenerowany wykres.\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 brzegach."
+ "<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 chronionego.\n"
- "<li>Ciemno czerwona strzałka jest używana dla dziedziczenia prywatnego.\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. \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¶ci");
+ return "Właściwości";
}
/*! Used as a section header for IDL property documentation */
virtual QCString trPropertyDocumentation()
{
- return decode("Dokumentacja wła¶ciwo¶ci");
+ 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" : "skł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 pocz±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 pasuj±cych do twojego zapytania. "
- "Najlepiej pasuj±ce dokumenty wy¶wietlane s± na pocz±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 cał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, udostępniona dla wygody. "
- "Różni się od powyższej metody tylko zestawem akceptowanych argumentó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ływań 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 typó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 składowej";
+ result+="dokumentacji struktury danych dla każdej składowej";
}
else
{
- result+="typów danych, do których dana składowa należ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 moduł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 odno¶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ł" : "moduł"));
+ 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
diff --git a/src/util.cpp b/src/util.cpp
index c164c2d..3a96fce 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -49,6 +49,7 @@
#include "textdocvisitor.h"
#include "portable.h"
#include "parserintf.h"
+#include "bufstr.h"
#define ENABLE_TRACINGSUPPORT 0
@@ -5515,31 +5516,48 @@ 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 (actArg->name.isEmpty())
+ 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
{
- result += actArg->type+" ";
- }
- else // for case where the actual arg is something like "unsigned int"
- // the "int" part is in actArg->name.
- {
- result += actArg->type+" "+actArg->name+" ";
+ if (actArg->name.isEmpty())
+ {
+ result += actArg->type+" ";
+ found=TRUE;
+ }
+ 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;
+ }
}
- found=TRUE;
}
- else if (formArg->name==n && actArg==0 && !formArg->defval.isEmpty() &&
- formArg->defval!=name /* to prevent recursion */
+ else if (formArg->name==n &&
+ actArg==0 &&
+ !formArg->defval.isEmpty() &&
+ formArg->defval!=name /* to prevent recursion */
)
{
result += substituteTemplateArgumentsInString(formArg->defval,formalArgs,actualArgs)+" ";
found=TRUE;
}
}
- else if (formArg->name==n && actArg==0 && !formArg->defval.isEmpty() &&
- formArg->defval!=name /* to prevent recursion */
- )
+ else if (formArg->name==n &&
+ actArg==0 &&
+ !formArg->defval.isEmpty() &&
+ formArg->defval!=name /* to prevent recursion */
+ )
{
result += substituteTemplateArgumentsInString(formArg->defval,formalArgs,actualArgs)+" ";
found=TRUE;
@@ -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())
+ else
{
- file=pd->getGroupDef()->getOutputFileBase().copy();
- }
- else
- {
- file=pageName;
+ file=pd->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(pageName,si);
+ Doxygen::sectionDict.insert(pd->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;
+}
+
+
diff --git a/src/util.h b/src/util.h
index 10f125f..6267c18 100644
--- a/src/util.h
+++ b/src/util.h
@@ -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
diff --git a/src/vhdldocgen.cpp b/src/vhdldocgen.cpp
index 27c2fa7..7abebc0 100644
--- a/src/vhdldocgen.cpp
+++ b/src/vhdldocgen.cpp
@@ -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)
- {
- ClassDef *cd;
- rootNav->loadEntry(g_storage);
- Entry *root = rootNav->entry();
- QCString bName=stripAnonymousNamespaceScope(rootNav->name());
- if ((cd=getClass(bName)))
+ for (cli.toFirst();cli.current();++cli)
+ {
+ cli.current()->visited=FALSE;
+ ClassDef * cd = cli.current();
+ if ((VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::ARCHITECTURECLASS)
{
- QListIterator<BaseInfo> bii(*root->extends);
- BaseInfo *bi=0;
- for (bii.toFirst();(bi=bii.current());++bii)
+ QCString bName=cd->name();
+ int i=bName.find("::");
+ if (i>0)
{
- ClassDef* baseDef=getClass(bi->name);
-
- if (baseDef && baseDef != cd)
- {
- 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);
- }
- }
- 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
+ QCString entityName=bName.left(i);
+ ClassDef *classEntity=Doxygen::classSDict->find(entityName);
+ // entity for architecutre ?
+ if (classEntity)
+ {
+ classEntity->insertBaseClass(cd,bName,Public,Normal,0);
+ cd->insertSubClass(classEntity,Public,Normal,0);
+ }
+ }
+ }
+ }
} // computeVhdlComponentRelations
diff --git a/src/vhdldocgen.h b/src/vhdldocgen.h
index 6323489..7d1a4a2 100644
--- a/src/vhdldocgen.h
+++ b/src/vhdldocgen.h
@@ -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);