summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2013-04-02 19:27:49 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2013-04-02 19:27:49 (GMT)
commitebf4b3641c9149eaf4468aa8df64e1c7517e5f0c (patch)
tree23804fcf753b3487b9a1ea28d4d28b71fa4ae208
parentdeaa34e0c1d990f37fe00e465ac7a22f705904f0 (diff)
downloadDoxygen-ebf4b3641c9149eaf4468aa8df64e1c7517e5f0c.zip
Doxygen-ebf4b3641c9149eaf4468aa8df64e1c7517e5f0c.tar.gz
Doxygen-ebf4b3641c9149eaf4468aa8df64e1c7517e5f0c.tar.bz2
Release-1.8.3.1-20130402
-rw-r--r--CVSROOT/checkoutlist13
-rw-r--r--CVSROOT/commitinfo15
-rw-r--r--CVSROOT/config9
-rw-r--r--CVSROOT/cvswrappers23
-rw-r--r--CVSROOT/editinfo21
-rw-r--r--CVSROOT/loginfo26
-rw-r--r--CVSROOT/modules27
-rw-r--r--CVSROOT/notify12
-rw-r--r--CVSROOT/rcsinfo13
-rw-r--r--CVSROOT/taginfo20
-rw-r--r--CVSROOT/verifymsg21
-rw-r--r--INSTALL4
-rw-r--r--README4
-rw-r--r--addon/doxywizard/config.l2
-rwxr-xr-xconfigure2
-rw-r--r--doc/arch.doc4
-rw-r--r--doc/config.doc161
-rw-r--r--doc/diagrams.doc1
-rw-r--r--doc/docblocks.doc4
-rw-r--r--doc/doxygen_usage.doc8
-rw-r--r--doc/faq.doc36
-rw-r--r--doc/features.doc2
-rw-r--r--doc/htmlcmds.doc6
-rw-r--r--doc/index.doc6
-rw-r--r--doc/install.doc10
-rw-r--r--doc/language.doc41
-rw-r--r--doc/language.tpl9
-rw-r--r--doc/markdown.doc2
-rw-r--r--doc/output.doc22
-rw-r--r--doc/perlmod.doc89
-rw-r--r--doc/searching.doc10
-rw-r--r--doc/translator.py2
-rw-r--r--doc/translator_report.txt614
-rw-r--r--doc/trouble.doc5
-rw-r--r--qtools/Doxyfile2
-rw-r--r--src/.gitignore47
-rw-r--r--src/clangparser.cpp19
-rw-r--r--src/classdef.cpp60
-rw-r--r--src/classdef.h12
-rw-r--r--src/commentcnv.l26
-rw-r--r--src/commentscan.l8
-rw-r--r--src/compound.xsd18
-rw-r--r--src/compound_xsd.h18
-rw-r--r--src/config.h51
-rw-r--r--src/config.l57
-rw-r--r--src/config.xml19
-rw-r--r--src/configoptions.cpp16
-rw-r--r--src/defgen.cpp4
-rw-r--r--src/dirdef.cpp2
-rw-r--r--src/docbookgen.cpp19
-rw-r--r--src/docsets.cpp4
-rw-r--r--src/doctokenizer.l6
-rw-r--r--src/dot.cpp12
-rw-r--r--src/doxygen.cpp214
-rw-r--r--src/doxygen.css3
-rw-r--r--src/doxygen.md2
-rw-r--r--src/doxygen.pro.in2
-rw-r--r--src/doxygen_css.h3
-rw-r--r--src/entry.h117
-rw-r--r--src/filedef.cpp14
-rw-r--r--src/filedef.h3
-rw-r--r--src/fortranscanner.l85
-rw-r--r--src/groupdef.cpp2
-rw-r--r--src/growbuf.h28
-rw-r--r--src/htags.cpp2
-rw-r--r--src/htmldocvisitor.cpp6
-rw-r--r--src/htmlgen.cpp37
-rw-r--r--src/htmlgen.h1
-rw-r--r--src/latexgen.cpp8
-rw-r--r--src/latexgen.h1
-rw-r--r--src/layout.cpp24
-rw-r--r--src/layout.h6
-rw-r--r--src/layout_default.h6
-rw-r--r--src/layout_default.xml6
-rw-r--r--src/mandocvisitor.cpp2
-rw-r--r--src/mangen.cpp40
-rw-r--r--src/mangen.h3
-rw-r--r--src/markdown.cpp20
-rw-r--r--src/marshal.cpp17
-rw-r--r--src/marshal.h2
-rw-r--r--src/memberdef.cpp160
-rw-r--r--src/memberdef.h16
-rw-r--r--src/memberlist.cpp9
-rw-r--r--src/namespacedef.cpp93
-rw-r--r--src/namespacedef.h17
-rw-r--r--src/outputgen.h1
-rw-r--r--src/outputlist.h2
-rw-r--r--src/perlmodgen.cpp2
-rw-r--r--src/pre.l114
-rw-r--r--src/pycode.l4
-rw-r--r--src/rtfgen.cpp10
-rw-r--r--src/rtfgen.h1
-rw-r--r--src/scanner.l166
-rw-r--r--src/translator.h12
-rw-r--r--src/translator_adapter.h45
-rw-r--r--src/translator_am.h108
-rw-r--r--src/translator_ar.h2
-rw-r--r--src/translator_br.h4
-rw-r--r--src/translator_ca.h4
-rw-r--r--src/translator_cn.h8
-rw-r--r--src/translator_cz.h6
-rw-r--r--src/translator_de.h6
-rw-r--r--src/translator_dk.h4
-rw-r--r--src/translator_en.h60
-rw-r--r--src/translator_eo.h6
-rw-r--r--src/translator_es.h6
-rw-r--r--src/translator_fa.h4
-rw-r--r--src/translator_fi.h4
-rw-r--r--src/translator_fr.h4
-rw-r--r--src/translator_gr.h10
-rw-r--r--src/translator_hr.h37
-rw-r--r--src/translator_hu.h2
-rw-r--r--src/translator_id.h4
-rw-r--r--src/translator_it.h6
-rw-r--r--src/translator_jp.h4
-rw-r--r--src/translator_kr.h4
-rw-r--r--src/translator_lt.h2
-rw-r--r--src/translator_mk.h4
-rw-r--r--src/translator_nl.h6
-rw-r--r--src/translator_no.h2
-rw-r--r--src/translator_pl.h4
-rw-r--r--src/translator_pt.h4
-rw-r--r--src/translator_ro.h10
-rw-r--r--src/translator_ru.h7
-rw-r--r--src/translator_sc.h56
-rw-r--r--src/translator_si.h4
-rw-r--r--src/translator_sk.h6
-rw-r--r--src/translator_sr.h4
-rw-r--r--src/translator_sv.h4
-rw-r--r--src/translator_tr.h4
-rw-r--r--src/translator_tw.h4
-rw-r--r--src/translator_ua.h9
-rw-r--r--src/translator_vi.h4
-rw-r--r--src/translator_za.h4
-rw-r--r--src/translatordecoder.h22
-rw-r--r--src/types.h13
-rw-r--r--src/util.cpp74
-rw-r--r--src/vhdldocgen.cpp127
-rw-r--r--src/vhdldocgen.h17
-rw-r--r--src/vhdlparser.y10
-rw-r--r--src/xmlgen.cpp56
141 files changed, 2699 insertions, 1001 deletions
diff --git a/CVSROOT/checkoutlist b/CVSROOT/checkoutlist
deleted file mode 100644
index b04b350..0000000
--- a/CVSROOT/checkoutlist
+++ /dev/null
@@ -1,13 +0,0 @@
-# The "checkoutlist" file is used to support additional version controlled
-# administrative files in $CVSROOT/CVSROOT, such as template files.
-#
-# The first entry on a line is a filename which will be checked out from
-# the corresponding RCS file in the $CVSROOT/CVSROOT directory.
-# The remainder of the line is an error message to use if the file cannot
-# be checked out.
-#
-# File format:
-#
-# [<whitespace>]<filename><whitespace><error message><end-of-line>
-#
-# comment lines begin with '#'
diff --git a/CVSROOT/commitinfo b/CVSROOT/commitinfo
deleted file mode 100644
index b19e7b7..0000000
--- a/CVSROOT/commitinfo
+++ /dev/null
@@ -1,15 +0,0 @@
-# The "commitinfo" file is used to control pre-commit checks.
-# The filter on the right is invoked with the repository and a list
-# of files to check. A non-zero exit of the filter program will
-# cause the commit to be aborted.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being committed to, relative
-# to the $CVSROOT. For the first match that is found, then the remainder
-# of the line is the name of the filter to run.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".
diff --git a/CVSROOT/config b/CVSROOT/config
deleted file mode 100644
index 8817419..0000000
--- a/CVSROOT/config
+++ /dev/null
@@ -1,9 +0,0 @@
-# Set this to "no" if pserver shouldn't check system users/passwords
-#SystemAuth=no
-
-# Set `PreservePermissions' to `yes' to save file status information
-# in the repository.
-#PreservePermissions=no
-
-TopLevelAdmin=yes
-#LockDir=/u/kp3softd/cvslocks/
diff --git a/CVSROOT/cvswrappers b/CVSROOT/cvswrappers
deleted file mode 100644
index 0c725ea..0000000
--- a/CVSROOT/cvswrappers
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file affects handling of files based on their names.
-#
-# The -t/-f options allow one to treat directories of files
-# as a single file, or to transform a file in other ways on
-# its way in and out of CVS.
-#
-# The -m option specifies whether CVS attempts to merge files.
-#
-# The -k option specifies keyword expansion (e.g. -kb for binary).
-#
-# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers)
-#
-# wildcard [option value][option value]...
-#
-# where option is one of
-# -f from cvs filter value: path to filter
-# -t to cvs filter value: path to filter
-# -m update methodology value: MERGE or COPY
-# -k expansion mode value: b, o, kkv, &c
-#
-# and value is a single-quote delimited value.
-# For example:
-*.gif -k 'b' -m 'COPY'
diff --git a/CVSROOT/editinfo b/CVSROOT/editinfo
deleted file mode 100644
index d78886c..0000000
--- a/CVSROOT/editinfo
+++ /dev/null
@@ -1,21 +0,0 @@
-# The "editinfo" file is used to allow verification of logging
-# information. It works best when a template (as specified in the
-# rcsinfo file) is provided for the logging procedure. Given a
-# template with locations for, a bug-id number, a list of people who
-# reviewed the code before it can be checked in, and an external
-# process to catalog the differences that were code reviewed, the
-# following test can be applied to the code:
-#
-# Making sure that the entered bug-id number is correct.
-# Validating that the code that was reviewed is indeed the code being
-# checked in (using the bug-id number or a seperate review
-# number to identify this particular code set.).
-#
-# If any of the above test failed, then the commit would be aborted.
-#
-# Actions such as mailing a copy of the report to each reviewer are
-# better handled by an entry in the loginfo file.
-#
-# One thing that should be noted is the the ALL keyword is not
-# supported. There can be only one entry that matches a given
-# repository.
diff --git a/CVSROOT/loginfo b/CVSROOT/loginfo
deleted file mode 100644
index 5a59f0a..0000000
--- a/CVSROOT/loginfo
+++ /dev/null
@@ -1,26 +0,0 @@
-# The "loginfo" file controls where "cvs commit" log information
-# is sent. The first entry on a line is a regular expression which must match
-# the directory that the change is being made to, relative to the
-# $CVSROOT. If a match is found, then the remainder of the line is a filter
-# program that should expect log information on its standard input.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name ALL appears as a regular expression it is always used
-# in addition to the first matching regex or DEFAULT.
-#
-# You may specify a format string as part of the
-# filter. The string is composed of a `%' followed
-# by a single format character, or followed by a set of format
-# characters surrounded by `{' and `}' as separators. The format
-# characters are:
-#
-# s = file name
-# V = old version number (pre-checkin)
-# v = new version number (post-checkin)
-#
-# For example:
-#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog
-# or
-#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog
diff --git a/CVSROOT/modules b/CVSROOT/modules
deleted file mode 100644
index 581582c..0000000
--- a/CVSROOT/modules
+++ /dev/null
@@ -1,27 +0,0 @@
-# Three different line formats are valid:
-# key -a aliases...
-# key [options] directory
-# key [options] directory files...
-#
-# Where "options" are composed of:
-# -i prog Run "prog" on "cvs commit" from top-level of module.
-# -o prog Run "prog" on "cvs checkout" of module.
-# -e prog Run "prog" on "cvs export" of module.
-# -t prog Run "prog" on "cvs rtag" of module.
-# -u prog Run "prog" on "cvs update" of module.
-# -d dir Place module in directory "dir" instead of module name.
-# -l Top-level directory only -- do not recurse.
-#
-# NOTE: If you change any of the "Run" options above, you'll have to
-# release and re-checkout any working directories of these modules.
-#
-# And "directory" is a path to a directory relative to $CVSROOT.
-#
-# The "-a" option specifies an alias. An alias is interpreted as if
-# everything on the right of the "-a" had been typed on the command line.
-#
-# You can encode a module within a module by using the special '&'
-# character to interpose another module into the current module. This
-# can be useful for creating a module that consists of many directories
-# spread out over the entire source repository.
-doxygen -a addon bin doc examples html lib objects packages qtools src tmake wintools libpng libmd5
diff --git a/CVSROOT/notify b/CVSROOT/notify
deleted file mode 100644
index 34f0bc2..0000000
--- a/CVSROOT/notify
+++ /dev/null
@@ -1,12 +0,0 @@
-# The "notify" file controls where notifications from watches set by
-# "cvs watch add" or "cvs edit" are sent. The first entry on a line is
-# a regular expression which is tested against the directory that the
-# change is being made to, relative to the $CVSROOT. If it matches,
-# then the remainder of the line is a filter program that should contain
-# one occurrence of %s for the user to notify, and information on its
-# standard input.
-#
-# "ALL" or "DEFAULT" can be used in place of the regular expression.
-#
-# For example:
-#ALL mail %s -s "CVS notification"
diff --git a/CVSROOT/rcsinfo b/CVSROOT/rcsinfo
deleted file mode 100644
index 49e59f4..0000000
--- a/CVSROOT/rcsinfo
+++ /dev/null
@@ -1,13 +0,0 @@
-# The "rcsinfo" file is used to control templates with which the editor
-# is invoked on commit and import.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being made to, relative to the
-# $CVSROOT. For the first match that is found, then the remainder of the
-# line is the name of the file that contains the template.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".
diff --git a/CVSROOT/taginfo b/CVSROOT/taginfo
deleted file mode 100644
index 274a46d..0000000
--- a/CVSROOT/taginfo
+++ /dev/null
@@ -1,20 +0,0 @@
-# The "taginfo" file is used to control pre-tag checks.
-# The filter on the right is invoked with the following arguments:
-#
-# $1 -- tagname
-# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
-# $3 -- repository
-# $4-> file revision [file revision ...]
-#
-# A non-zero exit of the filter program will cause the tag to be aborted.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being committed to, relative
-# to the $CVSROOT. For the first match that is found, then the remainder
-# of the line is the name of the filter to run.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".
diff --git a/CVSROOT/verifymsg b/CVSROOT/verifymsg
deleted file mode 100644
index 86f747c..0000000
--- a/CVSROOT/verifymsg
+++ /dev/null
@@ -1,21 +0,0 @@
-# The "verifymsg" file is used to allow verification of logging
-# information. It works best when a template (as specified in the
-# rcsinfo file) is provided for the logging procedure. Given a
-# template with locations for, a bug-id number, a list of people who
-# reviewed the code before it can be checked in, and an external
-# process to catalog the differences that were code reviewed, the
-# following test can be applied to the code:
-#
-# Making sure that the entered bug-id number is correct.
-# Validating that the code that was reviewed is indeed the code being
-# checked in (using the bug-id number or a seperate review
-# number to identify this particular code set.).
-#
-# If any of the above test failed, then the commit would be aborted.
-#
-# Actions such as mailing a copy of the report to each reviewer are
-# better handled by an entry in the loginfo file.
-#
-# One thing that should be noted is the the ALL keyword is not
-# supported. There can be only one entry that matches a given
-# repository.
diff --git a/INSTALL b/INSTALL
index c24819c..54ef1f1 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
-DOXYGEN Version 1.8.3.1-20130324
+DOXYGEN Version 1.8.3.1-20130402
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
-Dimitri van Heesch (24 March 2013)
+Dimitri van Heesch (02 April 2013)
diff --git a/README b/README
index 19253fe..e0063f7 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-DOXYGEN Version 1.8.3.1_20130324
+DOXYGEN Version 1.8.3.1_20130402
Please read INSTALL for compilation instructions.
@@ -26,4 +26,4 @@ forum.
Enjoy,
-Dimitri van Heesch (dimitri@stack.nl) (24 March 2013)
+Dimitri van Heesch (dimitri@stack.nl) (02 April 2013)
diff --git a/addon/doxywizard/config.l b/addon/doxywizard/config.l
index 0f25903..48d233e 100644
--- a/addon/doxywizard/config.l
+++ b/addon/doxywizard/config.l
@@ -408,7 +408,7 @@ static void substEnvVarsInStrList(QStringList &sl)
if (!wasQuoted) /* as a result of the expansion, a single string
may have expanded into a list, which we'll
- add to sl. If the orginal string already
+ add to sl. If the original string already
contained multiple elements no further
splitting is done to allow quoted items with spaces! */
{
diff --git a/configure b/configure
index 5efb26a..623ffe1 100755
--- a/configure
+++ b/configure
@@ -20,7 +20,7 @@ doxygen_version_minor=8
doxygen_version_revision=3.1
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
-doxygen_version_mmn=20130324
+doxygen_version_mmn=20130402
bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
diff --git a/doc/arch.doc b/doc/arch.doc
index c68d2f8..62661bc 100644
--- a/doc/arch.doc
+++ b/doc/arch.doc
@@ -58,7 +58,7 @@ of macros. This is to allow macro names to appear in the type of
function parameters for instance.
Another difference is that the preprocessor parses, but not actually includes
-code when it encounters a \#include (with the exception of \#include
+code when it encounters a \c \#include (with the exception of \c \#include
found inside { ... } blocks). The reasons behind this deviation from
the standard is to prevent feeding multiple definitions of the
same functions/classes to doxygen's parser. If all source files would
@@ -67,7 +67,7 @@ definitions (and their documentation) would be present in each
translation unit.
The preprocessor is written using \c flex and can be found in
-\c src/pre.l. For condition blocks (\#if) evaluation of constant expressions
+\c src/pre.l. For condition blocks (\c \#if) evaluation of constant expressions
is needed. For this a \c yacc based parser is used, which can be found
in \c src/constexp.y and \c src/constexp.l.
diff --git a/doc/config.doc b/doc/config.doc
index 8ceef96..c5aca26 100644
--- a/doc/config.doc
+++ b/doc/config.doc
@@ -24,6 +24,10 @@ that is similar to that of a Makefile, with the default name \c Doxyfile. It is
parsed by \c doxygen. The file may contain tabs and newlines for
formatting purposes. The statements in the file are case-sensitive.
Comments may be placed anywhere within the file (except within quotes).
+Comments beginning with two hash characters (\#\#) are kept when updating
+the configuration file and are placed in front of the TAG are in front of.
+Comments beginning with two hash characters (\#\#) at the end of the
+configuration file are also kept and placed at the end of the file.
Comments begin with the \# character and end at the end of the line.
The file essentially consists of a list of assignment statements.
@@ -218,6 +222,7 @@ followed by the descriptions of the tags grouped by category.
\refitem cfg_mathjax_extensions MATHJAX_EXTENSIONS
\refitem cfg_mathjax_format MATHJAX_FORMAT
\refitem cfg_mathjax_relpath MATHJAX_RELPATH
+\refitem cfg_mathjax_codefile MATHJAX_CODEFILE
\refitem cfg_max_dot_graph_depth MAX_DOT_GRAPH_DEPTH
\refitem cfg_max_initializer_lines MAX_INITIALIZER_LINES
\refitem cfg_mscfile_dirs MSCFILE_DIRS
@@ -383,7 +388,7 @@ followed by the descriptions of the tags grouped by category.
If the \c BRIEF_MEMBER_DESC tag is set to \c YES (the default) doxygen will
include brief member descriptions after the members that are listed in
the file and class documentation (similar to JavaDoc).
- Set to NO to disable this.
+ Set to \c NO to disable this.
\anchor cfg_repeat_brief
<dt>\c REPEAT_BRIEF <dd>
@@ -411,7 +416,8 @@ followed by the descriptions of the tags grouped by category.
\anchor cfg_always_detailed_sec
<dt>\c ALWAYS_DETAILED_SEC <dd>
\addindex ALWAYS_DETAILED_SEC
- If the \c ALWAYS_DETAILED_SEC and \c REPEAT_BRIEF tags are both set to \c YES then
+ If the \c ALWAYS_DETAILED_SEC and \ref cfg_repeat_brief "REPEAT_BRIEF" tags
+ are both set to \c YES then
doxygen will generate a detailed section even if there is only a brief
description.
@@ -428,7 +434,7 @@ followed by the descriptions of the tags grouped by category.
\addindex FULL_PATH_NAMES
If the \c FULL_PATH_NAMES tag is set to \c YES doxygen will prepend the full
path before files name in the file list and in the header files. If set
- to NO the shortest path that makes the file name unique will be used
+ to \c NO the shortest path that makes the file name unique will be used
\anchor cfg_strip_from_path
<dt>\c STRIP_FROM_PATH <dd>
@@ -448,7 +454,7 @@ followed by the descriptions of the tags grouped by category.
the reader which header file to include in order to use a class.
If left blank only the name of the header file containing the class
definition is used. Otherwise one should specify the include paths that
- are normally passed to the compiler using the -I flag.
+ are normally passed to the compiler using the `-I` flag.
\anchor cfg_short_names
<dt>\c SHORT_NAMES <dd>
@@ -462,16 +468,16 @@ followed by the descriptions of the tags grouped by category.
\addindex JAVADOC_AUTOBRIEF
If the \c JAVADOC_AUTOBRIEF is set to \c YES then doxygen
will interpret the first line (until the first dot) of a JavaDoc-style
- comment as the brief description. If set to NO (the default), the
+ comment as the brief description. If set to \c NO (the default), the
Javadoc-style will behave just like regular Qt-style comments
- (thus requiring an explicit \@brief command for a brief description.)
+ (thus requiring an explicit \ref cmdbrief "\@brief" command for a brief description.)
\anchor cfg_qt_autobrief
<dt>\c QT_AUTOBRIEF <dd>
\addindex QT_AUTOBRIEF
If the \c QT_AUTOBRIEF is set to \c YES then doxygen
will interpret the first line (until the first dot) of a Qt-style
- comment as the brief description. If set to NO (the default), the
+ comment as the brief description. If set to \c NO (the default), the
Qt-style will behave just like regular Qt-style comments (thus
requiring an explicit \\brief command for a brief description.)
@@ -486,33 +492,33 @@ followed by the descriptions of the tags grouped by category.
Disable only in case of backward compatibilities issues.
\anchor cfg_autolink_support
-<dt>'c AUTOLINK_SUPPORT <dd>
+<dt>\c AUTOLINK_SUPPORT <dd>
\addindex AUTOLINK_SUPPORT
When enabled doxygen tries to link words that correspond to documented classes,
or namespaces to their corresponding documentation. Such a link can be
prevented in individual cases by by putting a % sign in front of the word or
- globally by setting AUTOLINK_SUPPORT to NO.
+ globally by setting \c AUTOLINK_SUPPORT to \c NO.
\anchor cfg_builtin_stl_support
<dt>\c BUILTIN_STL_SUPPORT <dd>
\addindex BUILTIN_STL_SUPPORT
- If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
+ If you use STL classes (i.e. `std::string`, `std::vector`, etc.) but do not want to
include (a tag file for) the STL sources as input, then you should
set this tag to \c YES in order to let doxygen match functions declarations and
- definitions whose arguments contain STL classes (e.g. func(std::string); versus
- func(std::string) {}). This also make the inheritance and collaboration
+ definitions whose arguments contain STL classes (e.g. `func(std::string`); versus
+ `func(std::string) {}`). This also make the inheritance and collaboration
diagrams that involve STL classes more complete and accurate.
\anchor cfg_cpp_cli_support
<dt>\c CPP_CLI_SUPPORT <dd>
\addindex CPP_CLI_SUPPORT
- If you use Microsoft's C++/CLI language, you should set this option to YES to
+ If you use Microsoft's C++/CLI language, you should set this option to \c YES to
enable parsing support.
\anchor cfg_sip_support
<dt>\c SIP_SUPPORT <dd>
\addindex OPTIMIZE_OUTPUT_SIP
- Set the SIP_SUPPORT tag to YES if your project consists
+ Set the \c SIP_SUPPORT tag to \c YES if your project consists
of <a href="http://www.riverbankcomputing.co.uk/software/sip/intro">sip</a> sources only.
Doxygen will parse them like normal C++ but will assume all classes use public
instead of private inheritance when no explicit protection keyword is present.
@@ -530,29 +536,29 @@ followed by the descriptions of the tags grouped by category.
\anchor cfg_distribute_group_doc
<dt>\c DISTRIBUTE_GROUP_DOC <dd>
\addindex DISTRIBUTE_GROUP_DOC
- If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
- tag is set to YES, then doxygen will reuse the documentation of the first
+ If member grouping is used in the documentation and the \c DISTRIBUTE_GROUP_DOC
+ tag is set to \c YES, then doxygen will reuse the documentation of the first
member in the group (if any) for the other members of the group. By default
all members of a group must be documented explicitly.
\anchor cfg_multiline_cpp_is_brief
<dt>\c MULTILINE_CPP_IS_BRIEF <dd>
\addindex MULTILINE_CPP_IS_BRIEF
- The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+ The \c MULTILINE_CPP_IS_BRIEF tag can be set to \c YES to make Doxygen
treat a multi-line C++ special comment block (i.e. a block of //! or ///
comments) as a brief description. This used to be the default behavior.
The new default is to treat a multi-line C++ comment block as a detailed
- description. Set this tag to YES if you prefer the old behavior instead.
- Note that setting this tag to YES also means that rational rose comments
+ description. Set this tag to \c YES if you prefer the old behavior instead.
+ Note that setting this tag to \c YES also means that rational rose comments
are not recognized any more.
<!--
\anchor cfg_details_at_top
<dt>\c DETAILS_AT_TOP <dd>
\addindex DETAILS_AT_TOP
- If the DETAILS_AT_TOP tag is set to YES then Doxygen
+ If the \c DETAILS_AT_TOP tag is set to \c YES then Doxygen
will output the detailed description near the top, like JavaDoc.
- If set to NO, the detailed description appears after the member
+ If set to \c NO, the detailed description appears after the member
documentation.
-->
@@ -604,7 +610,7 @@ followed by the descriptions of the tags grouped by category.
\anchor cfg_optimize_output_java
<dt>\c OPTIMIZE_OUTPUT_JAVA <dd>
\addindex OPTIMIZE_OUTPUT_JAVA
- Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+ Set the OPTIMIZE_OUTPUT_JAVA tag to \c YES if your project consists of Java or
Python sources only. Doxygen will then generate output that is more tailored
for that language. For instance, namespaces will be presented as packages,
qualified scopes will look different, etc.
@@ -662,7 +668,7 @@ When the \c INLINE_SIMPLE_STRUCTS tag is set to \c YES, structs, classes, and
unions with only public data fields or simple typedef fields will be shown
inline in the documentation of the scope in which they are defined (i.e. file,
namespace, or group documentation), provided this scope is documented. If set
-to NO (the default), structs, classes, and unions are shown on a separate
+to \c NO (the default), structs, classes, and unions are shown on a separate
page (for HTML and Man pages) or section (for LaTeX and RTF).
\anchor cfg_typedef_hides_struct
@@ -739,13 +745,13 @@ page (for HTML and Man pages) or section (for LaTeX and RTF).
\addindex EXTRACT_LOCAL_CLASSES
If the \c EXTRACT_LOCAL_CLASSES tag is set to \c YES classes (and structs)
defined locally in source files will be included in the documentation.
- If set to NO only classes defined in header files are included. Does not
+ If set to \c NO only classes defined in header files are included. Does not
have any effect for Java sources.
\anchor cfg_extract_anon_nspaces
<dt>\c EXTRACT_ANON_NSPACES <dd>
\addindex EXTRACT_ANON_NSPACES
- If this flag is set to YES, the members of anonymous namespaces will be extracted
+ If this flag is set to \c YES, the members of anonymous namespaces will be extracted
and appear in the documentation as a namespace called 'anonymous_namespace{file}',
where file will be replaced with the base name of the file that contains the anonymous
namespace. By default anonymous namespace are hidden.
@@ -808,7 +814,7 @@ function's detailed documentation block.
\c YES upper-case letters are also allowed. This is useful if you have
classes or files whose names only differ in case and if your file system
supports case sensitive file names. Windows users are advised to set this
- option to NO.
+ option to \c NO.
\anchor cfg_hide_scope_names
<dt>\c HIDE_SCOPE_NAMES <dd>
@@ -877,7 +883,7 @@ function's detailed documentation block.
\addindex SORT_MEMBERS_CTORS_1ST
If the \c SORT_MEMBERS_CTORS_1ST tag is set to \c YES then doxygen
will sort the (brief and detailed) documentation of class members so that
- constructors and destructors are listed first. If set to NO (the default)
+ constructors and destructors are listed first. If set to \c NO (the default)
the constructors will appear in the respective orders defined by
\c SORT_MEMBER_DOCS and \c SORT_BRIEF_DOCS.
@note If \c SORT_BRIEF_DOCS is set to \c NO this option is ignored for
@@ -1005,7 +1011,7 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
doxygen's defaults, run doxygen with the -l option. You can optionally specify a
file name after the option, if omitted DoxygenLayout.xml will be used as the name
of the layout file. Note that if you run doxygen from a directory containing
- a file called DoxygenLayout.xml, doxygen will parse it automatically even if
+ a file called `DoxygenLayout.xml`, doxygen will parse it automatically even if
the \c LAYOUT_FILE tag is left empty.
\anchor cfg_cite_bib_files
@@ -1094,15 +1100,14 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
\c myfile.cpp or directories like \c /usr/src/myproject.
Separate the files or directories with spaces.<br>
- \b Note:
- If this tag is empty the current directory is searched.
+ \note Note If this tag is empty the current directory is searched.
\anchor cfg_input_encoding
<dt>\c INPUT_ENCODING <dd>
\addindex INPUT_ENCODING
This tag can be used to specify the character encoding of the source files that
doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default
- input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding.
+ input encoding. Doxygen uses `libiconv` (or the `iconv` built into `libc`) for the transcoding.
See <a href="http://www.gnu.org/software/libiconv">the libiconv documentation</a> for
the list of possible encodings.
@@ -1111,7 +1116,7 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
\addindex FILE_PATTERNS
If the value of the \c INPUT tag contains directories, you can use the
\c FILE_PATTERNS tag to specify one or more wildcard patterns
- (like \c *.cpp and \c *.h ) to filter out the source-files
+ (like `*.cpp` and `*.h`) to filter out the source-files
in the directories. If left blank the following patterns are tested:
<code>
*.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
@@ -1152,8 +1157,8 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
The \c EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
(namespaces, classes, functions, etc.) that should be excluded from the
output. The symbol name can be a fully qualified name, a word, or if the
-wildcard * is used, a substring. Examples: ANamespace, AClass,
-AClass::ANamespace, ANamespace::*Test
+wildcard `*` is used, a substring. Examples: `ANamespace`, `AClass`,
+`AClass::ANamespace`, `ANamespace::*Test`
Note that the wildcards are matched against the file with absolute path,
so to exclude all test directories use the pattern
@@ -1164,20 +1169,21 @@ AClass::ANamespace, ANamespace::*Test
\addindex EXAMPLE_PATH
The \c EXAMPLE_PATH tag can be used to specify one or more files or
directories that contain example code fragments that are included (see
- the \\include command in section \ref cmdinclude "\\include").
+ the \ref cmdinclude "\\include" command).
\anchor cfg_example_recursive
<dt>\c EXAMPLE_RECURSIVE <dd>
\addindex EXAMPLE_RECURSIVE
If the \c EXAMPLE_RECURSIVE tag is set to \c YES then subdirectories will be
searched for input files to be used with the \\include or \\dontinclude
- commands irrespective of the value of the \c RECURSIVE tag.
+ commands irrespective of the value of the \ref cfg_recursive "RECURSIVE" tag.
Possible values are \c YES and \c NO. If left blank \c NO is used.
\anchor cfg_example_patterns
<dt>\c EXAMPLE_PATTERNS <dd>
\addindex EXAMPLE_PATTERNS
- If the value of the \c EXAMPLE_PATH tag contains directories, you can use the
+ If the value of the \ref cfg_example_path "EXAMPLE_PATH" tag contains directories,
+ you can use the
\c EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like `*.cpp`
and `*.h`) to filter out the source-files in the directories. If left
blank all files are included.
@@ -1209,9 +1215,10 @@ AClass::ANamespace, ANamespace::*Test
The \c FILTER_PATTERNS tag can be used to specify filters on a per file pattern
basis. Doxygen will compare the file name with each pattern and apply the
filter if there is a match. The filters are a list of the form:
- pattern=filter (like `*.cpp=my_cpp_filter`). See \c INPUT_FILTER for further
+ pattern=filter (like `*.cpp=my_cpp_filter`). See \ref cfg_input_filter "INPUT_FILTER" for further
info on how filters are used. If \c FILTER_PATTERNS is empty or if
- none of the patterns match the file name, \c INPUT_FILTER is applied.
+ none of the patterns match the file name, \ref cfg_input_filter "INPUT_FILTER" is
+ applied.
\anchor cfg_filter_source_files
<dt>\c FILTER_SOURCE_FILES <dd>
@@ -1219,22 +1226,23 @@ AClass::ANamespace, ANamespace::*Test
If the \c FILTER_SOURCE_FILES tag is set to \c YES, the input filter (if set using
\ref cfg_input_filter "INPUT_FILTER" ) will also be used to filter the input
files that are used for producing the source files to browse
- (i.e. when SOURCE_BROWSER is set to YES).
+ (i.e. when \ref cfg_source_browser "SOURCE_BROWSER" is set to \c YES).
\anchor cfg_filter_source_patterns
<dt>\c FILTER_SOURCE_PATTERNS <dd>
\addindex FILTER_SOURCE_PATTERNS
The \c FILTER_SOURCE_PATTERNS tag can be used to specify source filters per
- file pattern. A pattern will override the setting for \c FILTER_PATTERN (if any)
+ file pattern. A pattern will override the setting
+ for \ref cfg_filter_patterns "FILTER_PATTERN" (if any)
and it is also possible to disable source filtering for a specific pattern
using `*.ext=` (so without naming a filter). This option only has effect when
- \c FILTER_SOURCE_FILES is enabled.
+ \ref cfg_filter_source_files "FILTER_SOURCE_FILES" is enabled.
\anchor cfg_use_mdfile_as_mainpage
<dt>\c USE_MDFILE_AS_MAINPAGE <dd>
\addindex USE_MDFILE_AS_MAINPAGE
If the \c USE_MD_FILE_AS_MAINPAGE tag refers to the name of a markdown file that
-is part of the input, its contents will be placed on the main page (index.html).
+is part of the input, its contents will be placed on the main page (`index.html`).
This can be useful if you have a project on for instance GitHub and want reuse
the introduction page also for the doxygen output.
@@ -1249,7 +1257,7 @@ the introduction page also for the doxygen output.
If the \c SOURCE_BROWSER tag is set to \c YES then a list of source files will
be generated. Documented entities will be cross-referenced with these sources.
Note: To get rid of all source code in the generated output, make sure also
- \c VERBATIM_HEADERS is set to NO.
+ \ref cfg_verbatim_headers "VERBATIM_HEADERS" is set to \c NO.
\anchor cfg_inline_sources
<dt>\c INLINE_SOURCES <dd>
@@ -1291,7 +1299,7 @@ the introduction page also for the doxygen output.
\addindex VERBATIM_HEADERS
If the \c VERBATIM_HEADERS tag is set the \c YES (the default) then doxygen
will generate a verbatim copy of the header file for each class for
- which an include is specified. Set to NO to disable this.
+ which an include is specified. Set to \c NO to disable this.
\sa Section \ref cmdclass "\\class".
\anchor cfg_use_htags
@@ -1571,7 +1579,7 @@ hr.footer {
\addindex HTML_TIMESTAMP
If the \c HTML_TIMESTAMP tag is set to \c YES then the footer of
each generated HTML page will contain the date and time when the page
- was generated. Setting this to NO can help when comparing the output of
+ was generated. Setting this to \c NO can help when comparing the output of
multiple runs.
\anchor cfg_html_align_members
@@ -1703,14 +1711,14 @@ The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
\anchor cfg_toc_expand
<dt>\c TOC_EXPAND <dd>
\addindex TOC_EXPAND
- The \c TOC_EXPAND flag can be set to YES to add extra items for
+ The \c TOC_EXPAND flag can be set to \c YES to add extra items for
group members to the table of contents of the HTML help documentation
and to the tree view.
\anchor cfg_generate_qhp
<dt>\c GENERATE_QHP <dd>
\addindex GENERATE_QHP
- If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE
+ If the GENERATE_QHP tag is set to \c YES and both \c QHP_NAMESPACE
and QHP_VIRTUAL_FOLDER are set, an additional index file will
be generated that can be used as input for Qt's qhelpgenerator
to generate a Qt Compressed Help (.qch) of the generated HTML
@@ -1728,38 +1736,38 @@ The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
\addindex QHP_NAMESPACE
The QHP_NAMESPACE tag specifies the namespace to use when generating
Qt Help Project output. For more information please see
- <a href="http://doc.trolltech.com/qthelpproject.html#namespace">Qt Help Project / Namespace</a>.
+ <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace">Qt Help Project / Namespace</a>.
\anchor cfg_qhp_virtual_folder
<dt>\c QHP_VIRTUAL_FOLDER <dd>
\addindex QHP_VIRTUAL_FOLDER
The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when
generating Qt Help Project output. For more information please see
- <a href="http://doc.trolltech.com/qthelpproject.html#virtual-folders">Qt Help Project / Virtual Folders</a>.
+ <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-folders">Qt Help Project / Virtual Folders</a>.
\anchor cfg_qhp_cust_filter_name
<dt>\c QHP_CUST_FILTER_NAME <dd>
\addindex QHP_CUST_FILTER_NAME
If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. For more information please see
- <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
+ <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
\anchor cfg_qhp_cust_filter_attrs
<dt>\c QHP_CUST_FILTER_ATTRS <dd>
\addindex QHP_CUST_FILTER_ATTRS
The QHP_CUST_FILTER_ATTRIBUTES tag specifies the list of the attributes of the custom filter to add.
For more information please see
- <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
+ <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
\anchor cfg_qhp_sect_filter_attrs
<dt>\c QHP_SECT_FILTER_ATTRS <dd>
\addindex QHP_SECT_FILTER_ATTRS
The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's filter section matches.
- <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
+ <a href="http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
\anchor cfg_qhg_location
<dt>\c QHG_LOCATION <dd>
\addindex QHG_LOCATION
- If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+ If the GENERATE_QHP tag is set to \c YES, the \c QHG_LOCATION tag can
be used to specify the location of Qt's qhelpgenerator.
If non-empty doxygen will try to run qhelpgenerator on the generated
.qhp file.
@@ -1792,7 +1800,7 @@ The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
If you want full control over the layout of the generated HTML pages it
might be necessary to disable the index and replace it with your own.
The \c DISABLE_INDEX tag can be used to turn on/off the condensed index at
- top of each page. A value of NO (the default) enables the index and the
+ top of each page. A value of \c NO (the default) enables the index and the
value \c YES disables it. Since the tabs have the same information as the
navigation tree you can set this option to \c NO if you already set
\ref cfg_generate_treeview "GENERATE_TREEVIEW" to \c YES.
@@ -1810,7 +1818,7 @@ The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
\addindex GENERATE_TREEVIEW
The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
structure should be generated to display hierarchical information.
- If the tag value is set to YES, a side panel will be generated
+ If the tag value is set to \c YES, a side panel will be generated
containing a tree-like index structure (just like the one that
is generated for HTML Help). For this to work a browser that supports
JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
@@ -1874,6 +1882,25 @@ The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
<a href="http://docs.mathjax.org/en/latest/output.html">the MathJax site</a>
for more details.
+\anchor cfg_mathjax_codefile
+<dt>\c MATHJAX_CODEFILE <dd>
+ \addindex MATHJAX_CODEFILE
+ The MATHJAX_CODE_FILE tag can be used to specify a file with javascript
+ pieces of code that will be used on startup of the MathJax code.
+ See
+<a href="http://docs.mathjax.org/en/latest/output.html">the MathJax site</a>
+ for more details.<br>
+ As an example to disable the "Math Renderer" menu item in the "Math
+ Settings" menu of MathJax:
+\verbatim
+MATHJAX_CODEFILE = disableRenderer
+ with in the file \c disableRenderer:
+ MathJax.Hub.Config({
+ menuSettings: {
+ showRenderer: false,
+ }
+ });
+\endverbatim
\anchor cfg_mathjax_relpath
<dt>\c MATHJAX_RELPATH <dd>
\addindex MATHJAX_RELPATH
@@ -2223,7 +2250,9 @@ EXTRA_PACKAGES = times
<dt>\c MAN_EXTENSION <dd>
\addindex MAX_EXTENSION
The \c MAN_EXTENSION tag determines the extension that is added to
- the generated man pages (default is the subroutine's section .3)
+ the generated man pages (default is the subroutine's section .3). In case
+ the manual section does not start with a number, the number 3 is prepended.
+ The dot (.) at the beginning of the MAN_EXTENSION is optional.
\anchor cfg_man_links
<dt>\c MAN_LINKS <dd>
@@ -2368,7 +2397,7 @@ front of it. If left blank docbook will be used as the default path.
\anchor cfg_expand_only_predef
<dt>\c EXPAND_ONLY_PREDEF <dd>
\addindex EXPAND_ONLY_PREDEF
- If the \c EXPAND_ONLY_PREDEF and \c MACRO_EXPANSION tags are both set to YES
+ If the \c EXPAND_ONLY_PREDEF and \c MACRO_EXPANSION tags are both set to \c YES
then the macro expansion is limited to the macros specified with the
\c PREDEFINED and \c EXPAND_AS_DEFINED tags.
@@ -2482,8 +2511,8 @@ front of it. If left blank docbook will be used as the default path.
\addindex CLASS_DIAGRAMS
If the \c CLASS_DIAGRAMS tag is set to \c YES (the default) doxygen will
generate a class diagram (in HTML and \f$\mbox{\LaTeX}\f$) for classes with base or
-super classes. Setting the tag to NO turns the diagrams off. Note that
-this option also works with HAVE_DOT disabled, but it is recommended to
+super classes. Setting the tag to \c NO turns the diagrams off. Note that
+this option also works with \c HAVE_DOT disabled, but it is recommended to
install and use dot, since it yields more powerful graphs.
\anchor cfg_mscgen_path
@@ -2543,7 +2572,7 @@ The default size is 10pt.
If the \c CLASS_GRAPH and \c HAVE_DOT tags are set to \c YES then doxygen
will generate a graph for each documented class showing the direct and
indirect inheritance relations. Setting this tag to \c YES will force
- the \c CLASS_DIAGRAMS tag to NO.
+ the \c CLASS_DIAGRAMS tag to \c NO.
\anchor cfg_collaboration_graph
<dt>\c COLLABORATION_GRAPH <dd>
@@ -2556,13 +2585,13 @@ The default size is 10pt.
\anchor cfg_group_graphs
<dt>\c GROUP_GRAPHS <dd>
\addindex GROUP_GRAPHS
- If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+ If the GROUP_GRAPHS and HAVE_DOT tags are set to \c YES then doxygen
will generate a graph for groups, showing the direct groups dependencies.
\anchor cfg_uml_look
<dt>\c UML_LOOK <dd>
\addindex UML_LOOK
- If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+ If the UML_LOOK tag is set to \c YES doxygen will generate inheritance and
collaboration diagrams in a style similar to the OMG's Unified Modeling
Language.
@@ -2573,7 +2602,7 @@ The default size is 10pt.
the class node. If there are many fields or methods and many nodes the
graph may become too big to be useful. The \c UML_LIMIT_NUM_FIELDS
threshold limits the number of items for each type to make the size more
- managable. Set this to 0 for no limit. Note that the threshold may be
+ manageable. Set this to 0 for no limit. Note that the threshold may be
exceeded by 50% before the limit is enforced. So when you set the threshold
to 10, up to 15 fields may appear, but if the number exceeds 15, the
total amount of fields shown is limited to 10.
@@ -2587,7 +2616,7 @@ The default size is 10pt.
\anchor cfg_hide_undoc_relations
<dt>\c HIDE_UNDOC_RELATIONS <dd>
\addindex HIDE_UNDOC_RELATIONS
- If set to YES, the inheritance and collaboration graphs will hide
+ If set to \c YES, the inheritance and collaboration graphs will hide
inheritance and usage relations if the target is undocumented
or is not a class.
@@ -2673,7 +2702,7 @@ The default size is 10pt.
\anchor cfg_interactive_svg
<dt>\c INTERACTIVE_SVG <dd>
- If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+ If DOT_IMAGE_FORMAT is set to svg, then this option can be set to \c YES to
enable generation of interactive SVG images that allow zooming and panning.
Note that this requires a modern browser other than Internet Explorer.
Tested and working are Firefox, Chrome, Safari, and Opera.
diff --git a/doc/diagrams.doc b/doc/diagrams.doc
index ec9f329..59a81cc 100644
--- a/doc/diagrams.doc
+++ b/doc/diagrams.doc
@@ -140,6 +140,7 @@ for the corresponding HTML documentation that is generated by doxygen<br/>
\endhtmlonly
\htmlonly
+<br><br>
Go to the <a href="preprocessing.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
diff --git a/doc/docblocks.doc b/doc/docblocks.doc
index 0363e7e..1b96361 100644
--- a/doc/docblocks.doc
+++ b/doc/docblocks.doc
@@ -433,8 +433,8 @@ config file.
For VHDL a comment normally start with "--". Doxygen will extract comments
starting with "--!". There are only two types of comment blocks in VHDL;
-a one line --! comment representing a brief description, and a multi-line
---! comment (where the --! prefix is repeated for each line) representing
+a one line "--!" comment representing a brief description, and a multi-line
+"--!" comment (where the "--!" prefix is repeated for each line) representing
a detailed description.
Comments are always located in front of the item that is being documented
diff --git a/doc/doxygen_usage.doc b/doc/doxygen_usage.doc
index 430846a..ddad5d7 100644
--- a/doc/doxygen_usage.doc
+++ b/doc/doxygen_usage.doc
@@ -67,11 +67,11 @@ afterwards:
\verbatim
doxygen -w html header.html footer.html stylesheet.css <config_file>
\endverbatim
- The config_file is optional. When omitted doxygen will search for
- a file named Doxyfile and process that. When this is also not found it
+ The `config_file` is optional. When omitted doxygen will search for
+ a file named `Doxyfile` and process that. When this is also not found it
will used the default settings.
-<li>For LaTeX output, you can generate the first and last part of \c refman.tex
+<li>For \f$\mbox{\LaTeX}\f$ output, you can generate the first and last part of \c refman.tex
(see \ref cfg_latex_header "LATEX_HEADER" and
\ref cfg_latex_footer "LATEX_FOOTER") and the style sheet included
by that header (normally <code>doxygen.sty</code>), using the following
@@ -79,7 +79,7 @@ doxygen -w html header.html footer.html stylesheet.css <config_file>
\verbatim
doxygen -w latex header.tex footer.tex doxygen.sty <config_file>
\endverbatim
-If you need non-default options (for instance to use extra latex packages)
+If you need non-default options (for instance to use extra \f$\mbox{\LaTeX}\f$ packages)
you need to make a config file with those options set correctly and then specify
that config file after the generated files (make a backup of the configuration
file first so you don't loose it in case you forget to specify one of the
diff --git a/doc/faq.doc b/doc/faq.doc
index 8e5d049..79e6585 100644
--- a/doc/faq.doc
+++ b/doc/faq.doc
@@ -19,7 +19,7 @@
<ol>
<li><b>How to get information on the index page in HTML?</b>
<p>
-You should use the \\mainpage command inside a comment block like this:
+You should use the \ref cmdmainpage "\\mainpage" command inside a comment block like this:
\verbatim
/*! \mainpage My Personal Index Page
*
@@ -41,9 +41,9 @@ You should use the \\mainpage command inside a comment block like this:
Check the following:
<ol>
<li>Is your class / file / namespace documented? If not, it will not
- be extracted from the sources unless \c EXTRACT_ALL is set to \c YES
+ be extracted from the sources unless \ref cfg_extract_all "EXTRACT_ALL" is set to \c YES
in the config file.
- <li>Are the members private? If so, you must set \c EXTRACT_PRIVATE to \c YES
+ <li>Are the members private? If so, you must set \ref cfg_extract_private "EXTRACT_PRIVATE" to \c YES
to make them appear in the documentation.
<li>Is there a function macro in your class that does not end with a
semicolon (e.g. MY_MACRO())? If so then you have to instruct
@@ -67,12 +67,12 @@ PREDEFINED = MY_MACRO()=
In order for global functions, variables, enums, typedefs, and defines
to be documented you should document the file in which these commands are
-located using a comment block containing a \\file (or \@file)
+located using a comment block containing a \ref cmdfile "\\file" (or \ref cmdfile "\@file")
command.
Alternatively, you can put all members in a group (or module)
-using the \\ingroup command and then document the group using a comment
-block containing the \\defgroup command.
+using the \ref cmdingroup "\\ingroup" command and then document the group using a comment
+block containing the \ref cmddefgroup "\\defgroup" command.
For member functions or functions that are part of a namespace you should
document either the class or namespace.
@@ -98,12 +98,13 @@ around the blocks that should be hidden and put:
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
\endverbatim
in the config file then all blocks should be skipped by Doxygen as long
-as <code>PREPROCESSING = YES</code>.
+as \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" is set to `YES`.
-<li><b>How can I change what is after the <code>\#include</code> in the class documentation?</b>
+<li><b>How can I change what is after the <code>\#include</code>
+in the class documentation?</b>
-In most cases you can use STRIP_FROM_INC_PATH to strip a user defined
-part of a path.
+In most cases you can use \ref cfg_strip_from_inc_path "STRIP_FROM_INC_PATH"
+to strip a user defined part of a path.
You can also document your class as follows
@@ -160,9 +161,9 @@ installdox -lb.tag@b.chm::
<li><b>I don't like the quick index that is put above each HTML page, what do I do?</b>
-You can disable the index by setting DISABLE_INDEX to YES. Then you can
+You can disable the index by setting \ref cfg_disable_index "DISABLE_INDEX" to `YES`. Then you can
put in your own header file by writing your own header and feed that to
-HTML_HEADER.
+\ref cfg_html_header "HTML_HEADER".
<li><b>The overall HTML output looks different, while I only wanted to
use my own html header file</b>
@@ -237,8 +238,8 @@ various buffers and then run "texconfig init".
<li><b>Why are dependencies via STL classes not shown in the dot graphs?</b>
-Doxygen is unaware of the STL classes, unless the option BUILTIN_STL_SUPPORT is
-turned on.
+Doxygen is unaware of the STL classes, unless the
+option \ref cfg_builtin_stl_support "BUILTIN_STL_SUPPORT" is turned on.
<li><b>I have problems getting the search engine to work with PHP5 and/or windows</b>
@@ -248,7 +249,7 @@ Please read <a href="searchengine.html">this</a> for hints on where to look.
Not via command line options, but doxygen can read from <code>stdin</code>,
so you can pipe things through it. Here's an example how to override an option
-in a configuration file from the command line (assuming a UNIX environment):
+in a configuration file from the command line (assuming a UNIX like environment):
\verbatim
( cat Doxyfile ; echo "PROJECT_NUMBER=1.0" ) | doxygen -
@@ -280,9 +281,10 @@ At the time I was looking into lex and yacc, where a lot of things start with
<li><b>What was the reason to develop doxygen?</b>
I once wrote a GUI widget based on the Qt library (it is still available at
-http://qdbttabular.sourceforge.net/ and maintained by Sven Meyer).
+http://sourceforge.net/projects/qdbttabular/ but hasn't been updated since 2002).
Qt had nicely generated documentation (using an internal tool which
-they didn't want to release) and I wrote similar docs by hand.
+<a href="http://rant.gulbrandsen.priv.no/udoc/history">they didn't want to release</a>)
+and I wrote similar docs by hand.
This was a nightmare to maintain, so I wanted a similar tool. I looked at
Doc++ but that just wasn't good enough (it didn't support signals and
slots and did not have the Qt look and feel I had grown to like),
diff --git a/doc/features.doc b/doc/features.doc
index 3b55ccd..87ca4bc 100644
--- a/doc/features.doc
+++ b/doc/features.doc
@@ -100,7 +100,7 @@
Although doxygen can now be used in any project written in a language that is
supported by doxygen, initially it was specifically designed to be used for projects
that make use of Qt Software's
-<A HREF="http://www.trolltech.com/products/qt.html">Qt toolkit</A>. I have tried to
+<A HREF="http://qt-project.org/">Qt toolkit</A>. I have tried to
make doxygen `Qt-compatible'. That is: Doxygen can read the documentation contained in
the Qt source code and create a class browser that looks quite similar to the
one that is generated by Qt Software. Doxygen understands the C++ extensions
diff --git a/doc/htmlcmds.doc b/doc/htmlcmds.doc
index 66018d3..6b7172d 100644
--- a/doc/htmlcmds.doc
+++ b/doc/htmlcmds.doc
@@ -40,10 +40,10 @@ of a HTML tag are passed on to the HTML output only
<li><tt>\<CAPTION\></tt> Starts a caption. Use within a table only.
<li><tt>\</CAPTION\></tt> Ends a caption. Use within a table only.
<li><tt>\<CODE\></tt> Starts a piece of text displayed in a typewriter font.
- Note that for C# code, this command is equivalent to
- \ref cmdcode "\\code".
+ Note that only for C# code, this command is equivalent to
+ \ref cmdcode "\\code".
<li><tt>\</CODE\></tt> Ends a <tt>\<CODE\></tt> section.
- Note that for C# code, this command is equivalent to
+ Note that only for C# code, this command is equivalent to
\ref cmdendcode "\\endcode".
<li><tt>\<DD\></tt> Starts an item description.
<li><tt>\<DFN\></tt> Starts a piece of text displayed in a typewriter font.
diff --git a/doc/index.doc b/doc/index.doc
index f36e295..55dceff 100644
--- a/doc/index.doc
+++ b/doc/index.doc
@@ -30,7 +30,7 @@ Version: $(VERSION)
Doxygen is the de facto standard tool for generating documentation from
annotated C++ sources, but it also supports other popular programming
languages such as C, Objective-C, C#, PHP, Java, Python, IDL
-(Corba and Microsoft flavors), Fortran, VHDL, Tcl, and to some extent D.
+(Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D.
Doxygen can help you in three ways:
<ol>
@@ -164,8 +164,8 @@ You can submit enhancement requests in
<a href="https://bugzilla.gnome.org/buglist.cgi?product=doxygen&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_severity=enhancement">the bug tracker</a>.
Make sure the severity of the bug report is set to "enhancement".
-<h2>Acknowledgements</h2>
-\addindex acknowledgements
+<h2>Acknowledgments</h2>
+\addindex acknowledgments
Thanks go to:
<ul>
<li>\addindex Doc++
diff --git a/doc/install.doc b/doc/install.doc
index 566baac..4ec6e66 100644
--- a/doc/install.doc
+++ b/doc/install.doc
@@ -361,7 +361,7 @@ You can now build the Release or Debug flavor of Doxygen by right-clicking
the project in the solutions explorer, and selecting Build.
Note that compiling Doxywizard currently requires Qt version 4
-(see http://qt.nokia.com/products/platform/qt-for-windows).
+(see http://qt-project.org/).
Also read the next section for additional tools you may need to install to run
doxygen with certain features enabled.
@@ -446,7 +446,7 @@ Here is what is required:
of Qt that is needed for to compile doxygen.
The Windows specific part were also created.
As a result doxygen (without the wizard) can be compiled on systems
- without X11 or (the commerical version of) Qt.
+ without X11 or (the commercial version of) Qt.
<li>If you used WinZip to extract the tar archive it will (apparently) not
create empty folders, so you have to add the folders
@@ -523,12 +523,12 @@ If you want to produce compressed HTML files (see \ref
cfg_generate_htmlhelp "GENERATE_HTMLHELP") in the config file, then
you need the Microsoft HTML help workshop.
You can download it from
-<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/vsconHH1Start.asp">Microsoft</a>.
+<a href="http://www.microsoft.com/en-us/download/details.aspx?id=21138">Microsoft</a>.
If you want to produce Qt Compressed Help files (see \ref
cfg_qhg_location "QHG_LOCATION") in the config file, then
you need qhelpgenerator which is part of Qt.
-You can download Qt from <a href="http://trolltech.com/downloads/">Qt Software Downloads</a>.
+You can download Qt from <a href="http://qt-project.org/downloads">Qt Software Downloads</a>.
In order to generate PDF output or use scientific formulas you will also need to
install <a href="http://en.wikipedia.org/wiki/LaTeX">LaTeX</a> and
@@ -601,7 +601,7 @@ features:
cfg_qhelgenerator_loc "QHG_LOCATION") in the config file,
then you need qhelpgenerator which is part of Qt.
You can download Qt from
- <a href="http://trolltech.com/downloads/">Qt Software Downloads</a>.
+ <a href="http://qt-project.org/downloads">Qt Software Downloads</a>.
<li><a href="http://www.graphviz.org/">
the Graph visualization toolkit version 1.8.10</a><br>
diff --git a/doc/language.doc b/doc/language.doc
index 7321fbe..70a0ace 100644
--- a/doc/language.doc
+++ b/doc/language.doc
@@ -104,7 +104,7 @@ when the translator was updated.
<td>Czech</td>
<td>Petr Přikryl</td>
<td>prikryl at atlas dot cz</td>
- <td>up-to-date</td>
+ <td>1.8.04</td>
</tr>
<tr bgcolor="#ffffff">
<td>Danish</td>
@@ -116,7 +116,7 @@ when the translator was updated.
<td>Dutch</td>
<td>Dimitri van Heesch</td>
<td>dimitri at stack dot nl</td>
- <td>up-to-date</td>
+ <td>1.8.04</td>
</tr>
<tr bgcolor="#ffffff">
<td>English</td>
@@ -128,7 +128,7 @@ when the translator was updated.
<td>Esperanto</td>
<td>Ander Martínez</td>
<td>ander dot basaundi at gmail dot com</td>
- <td>up-to-date</td>
+ <td>1.8.04</td>
</tr>
<tr bgcolor="#ffffff">
<td>Finnish</td>
@@ -146,13 +146,13 @@ when the translator was updated.
<td>German</td>
<td>Peter Grotrian<br/>Jens Seidel</td>
<td>Peter dot Grotrian at pdv-FS dot de<br/>jensseidel at users dot sf dot net</td>
- <td>up-to-date</td>
+ <td>1.8.04</td>
</tr>
<tr bgcolor="#ffffff">
<td>Greek</td>
<td>Paul Gessos</td>
<td>gessos dot paul at yahoo dot gr</td>
- <td>up-to-date</td>
+ <td>1.8.04</td>
</tr>
<tr bgcolor="#ffffff">
<td>Hungarian</td>
@@ -266,7 +266,7 @@ when the translator was updated.
<td>Slovak</td>
<td>Kali+Laco Švec<br/>Petr Přikryl</td>
<td><span style="color: brown">[the Slovak language advisors]</span><br/>prikryl at atlas dot cz</td>
- <td>up-to-date</td>
+ <td>1.8.04</td>
</tr>
<tr bgcolor="#ffffff">
<td>Slovene</td>
@@ -278,7 +278,7 @@ when the translator was updated.
<td>Spanish</td>
<td>Bartomeu<br/>Francisco Oltra Thennet<br/>David Vaquero</td>
<td>bartomeu at loteria3cornella dot com<br/><span style="color: brown">[unreachable]</span><br/>david at grupoikusnet dot com</td>
- <td>up-to-date</td>
+ <td>1.8.04</td>
</tr>
<tr bgcolor="#ffffff">
<td>Swedish</td>
@@ -296,7 +296,7 @@ when the translator was updated.
<td>Ukrainian</td>
<td>Olexij Tkatchenko<br/>Petro Yermolenko</td>
<td><span style="color: brown">[resigned]</span><br/>python at i dot ua</td>
- <td>up-to-date</td>
+ <td>1.8.04</td>
</tr>
<tr bgcolor="#ffffff">
<td>Vietnamese</td>
@@ -341,26 +341,26 @@ when the translator was updated.
\hline
Croatian & Boris Bralo & {\tt\tiny boris dot bralo at gmail dot com} & 1.8.2 \\
\hline
- Czech & Petr Přikryl & {\tt\tiny prikryl at atlas dot cz} & up-to-date \\
+ Czech & Petr Přikryl & {\tt\tiny prikryl at atlas dot cz} & 1.8.04 \\
\hline
Danish & Poul-Erik Hansen & {\tt\tiny pouhan at gnotometrics dot dk} & 1.8.0 \\
~ & Erik Søe Sørensen & {\tt\tiny eriksoe+doxygen at daimi dot au dot dk} & ~ \\
\hline
- Dutch & Dimitri van Heesch & {\tt\tiny dimitri at stack dot nl} & up-to-date \\
+ Dutch & Dimitri van Heesch & {\tt\tiny dimitri at stack dot nl} & 1.8.04 \\
\hline
English & Dimitri van Heesch & {\tt\tiny dimitri at stack dot nl} & up-to-date \\
\hline
- Esperanto & Ander Martínez & {\tt\tiny ander dot basaundi at gmail dot com} & up-to-date \\
+ Esperanto & Ander Martínez & {\tt\tiny ander dot basaundi at gmail dot com} & 1.8.04 \\
\hline
Finnish & Antti Laine & {\tt\tiny antti dot a dot laine at tut dot fi} & 1.6.0 \\
\hline
French & David Martinet & {\tt\tiny contact at e-concept-applications dot fr} & 1.8.0 \\
~ & Xavier Outhier & {\tt\tiny xouthier at yahoo dot fr} & ~ \\
\hline
- German & Peter Grotrian & {\tt\tiny Peter dot Grotrian at pdv-FS dot de} & up-to-date \\
+ German & Peter Grotrian & {\tt\tiny Peter dot Grotrian at pdv-FS dot de} & 1.8.04 \\
~ & Jens Seidel & {\tt\tiny jensseidel at users dot sf dot net} & ~ \\
\hline
- Greek & Paul Gessos & {\tt\tiny gessos dot paul at yahoo dot gr} & up-to-date \\
+ Greek & Paul Gessos & {\tt\tiny gessos dot paul at yahoo dot gr} & 1.8.04 \\
\hline
Hungarian & Ákos Kiss & {\tt\tiny akiss at users dot sourceforge dot net} & 1.4.6 \\
~ & Földvári György & {\tt\tiny [unreachable] foldvari lost at cyberspace} & ~ \\
@@ -412,12 +412,12 @@ when the translator was updated.
\hline
SerbianCyrilic & Nedeljko Stefanovic & {\tt\tiny stenedjo at yahoo dot com} & 1.6.0 \\
\hline
- Slovak & Kali+Laco Švec & {\tt\tiny [the Slovak language advisors]} & up-to-date \\
+ Slovak & Kali+Laco Švec & {\tt\tiny [the Slovak language advisors]} & 1.8.04 \\
~ & Petr Přikryl & {\tt\tiny prikryl at atlas dot cz} & ~ \\
\hline
Slovene & Matjaž Ostroveršnik & {\tt\tiny matjaz dot ostroversnik at ostri dot org} & 1.4.6 \\
\hline
- Spanish & Bartomeu & {\tt\tiny bartomeu at loteria3cornella dot com} & up-to-date \\
+ Spanish & Bartomeu & {\tt\tiny bartomeu at loteria3cornella dot com} & 1.8.04 \\
~ & Francisco Oltra Thennet & {\tt\tiny [unreachable] foltra at puc dot cl} & ~ \\
~ & David Vaquero & {\tt\tiny david at grupoikusnet dot com} & ~ \\
\hline
@@ -425,7 +425,7 @@ when the translator was updated.
\hline
Turkish & Emin Ilker Cetinbas & {\tt\tiny niw3 at yahoo dot com} & 1.7.5 \\
\hline
- Ukrainian & Olexij Tkatchenko & {\tt\tiny [resigned] olexij at tkatchenko dot com} & up-to-date \\
+ Ukrainian & Olexij Tkatchenko & {\tt\tiny [resigned] olexij at tkatchenko dot com} & 1.8.04 \\
~ & Petro Yermolenko & {\tt\tiny python at i dot ua} & ~ \\
\hline
Vietnamese & Dang Minh Tuan & {\tt\tiny tuanvietkey at gmail dot com} & 1.6.0 \\
@@ -651,8 +651,8 @@ for the supported languages, the \c translator.py Python
script was developed (located in \c doxygen/doc directory).
It extracts the important information about obsolete and
new methods from the source files for each of the languages.
-The information is stored in the <em>translator report</em> ASCII file
-(translator_report.txt).
+The information is stored in the translator report ASCII file
+(\c translator_report.txt).
\htmlonly If you compiled this documentation
from sources and if you have also doxygen sources available the
@@ -751,5 +751,10 @@ used if possible. On the other hand, implementation of adapters for
really obsolete translators brings too much maintenance and
run-time overhead.
+\htmlonly
+Go to the <a href="perlmod.html">next</a> section or return to the
+ <a href="index.html">index</a>.
+\endhtmlonly
+
*/
diff --git a/doc/language.tpl b/doc/language.tpl
index 7ec6621..661e67b 100644
--- a/doc/language.tpl
+++ b/doc/language.tpl
@@ -254,8 +254,8 @@ for the supported languages, the \c translator.py Python
script was developed (located in \c doxygen/doc directory).
It extracts the important information about obsolete and
new methods from the source files for each of the languages.
-The information is stored in the <em>translator report</em> ASCII file
-(%(translatorReportFileName)s).
+The information is stored in the translator report ASCII file
+(\c %(translatorReportFileName)s).
\htmlonly If you compiled this documentation
from sources and if you have also doxygen sources available the
@@ -353,5 +353,10 @@ used if possible. On the other hand, implementation of adapters for
really obsolete translators brings too much maintenance and
run-time overhead.
+\htmlonly
+Go to the <a href="perlmod.html">next</a> section or return to the
+ <a href="index.html">index</a>.
+\endhtmlonly
+
*/
diff --git a/doc/markdown.doc b/doc/markdown.doc
index bd4a3aa..b32cca4 100644
--- a/doc/markdown.doc
+++ b/doc/markdown.doc
@@ -520,7 +520,7 @@ stars, so the following will appear as-is:
a_nice_identifier
-Futhermore, a `*` or `_` only starts an emphasis if
+Furthermore, a `*` or `_` only starts an emphasis if
- it is followed by an alphanumberical character, and
- it is preceded by a space, newline, or one the following characters `<{([,:;`
diff --git a/doc/output.doc b/doc/output.doc
index 752123b..face02a 100644
--- a/doc/output.doc
+++ b/doc/output.doc
@@ -21,37 +21,39 @@
The following output formats are \e directly supported by doxygen:
<dl>
<dt><b>HTML</b>
-<dd>Generated if \c GENERATE_HTML is set to \c YES in the configuration file.
+<dd>Generated if \ref cfg_generate_html "GENERATE_HTML" is set to \c YES in the configuration file.
<dt>\f$\mbox{\LaTeX}\f$
-<dd>Generated if \c GENERATE_LATEX is set to \c YES in the configuration file.
+<dd>Generated if \ref cfg_generate_latex "GENERATE_LATEX" is set to \c YES in the configuration file.
<dt><b>Man pages</b>
-<dd>Generated if \c GENERATE_MAN is set to \c YES in the configuration file.
+<dd>Generated if \ref cfg_generate_man "GENERATE_MAN" is set to \c YES in the configuration file.
<dt><b>RTF</b>
-<dd>Generated if \c GENERATE_RTF is set to \c YES in the configuration file.<p>
+<dd>Generated if \ref cfg_generate_rtf "GENERATE_RTF" is set to \c YES in the configuration file.<p>
Note that the RTF output probably only looks nice with Microsoft's
Word. If you have success with other programs, please let me know.
<dt><b>XML</b>
-<dd>Generated if \c GENERATE_XML is set to \c YES in the configuration file.<p>
+<dd>Generated if \ref cfg_generate_xml "GENERATE_XML" is set to \c YES in the configuration file.<p>
+<dt><b>Docbook</b>
+<dd>Generated if \ref cfg_generate_docbook "GENERATE_DOCBOOOK" is set to \c YES in the configuration file.<p>
</dl>
The following output formats are \e indirectly supported by doxygen:
<dl>
<dt><b>Compiled HTML Help</b> (a.k.a. Windows 98 help)
<dd>Generated by Microsoft's HTML Help workshop from the HTML output if
- \c GENERATE_HTMLHELP is set to \c YES.
+ \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP" is set to \c YES.
<dt><b>Qt Compressed Help (.qch)</b>
<dd>Generated by Qt's qhelpgenerator tool from the HTML output if
- \c GENERATE_QHP is set to \c YES.
+ \ref cfg_generate_qhp "GENERATE_QHP" is set to \c YES.
<dt><b>Eclipse Help</b>
<dd>Generated from HTML with a special index file that is generated when
- \c GENERATE_ECLIPSEHELP is set to \c YES.
+ \ref cfg_generate_eclipsehelp "GENERATE_ECLIPSEHELP" is set to \c YES.
<dt><b>XCode DocSets</b>
<dd>Compiled from HTML with a special index file that is generated when
- \c GENERATE_DOCSET is set to \c YES.
+ \ref cfg_generate_docset "GENERATE_DOCSET" is set to \c YES.
<dt><b>PostScript</b>
<dd>Generated from the \f$\mbox{\LaTeX}\f$ output by
running <code>make ps</code> in the output directory.
- For the best results \c PDF_HYPERLINKS should be set to \c NO.
+ For the best results \ref cfg_pdf_hyperlinks "PDF_HYPERLINKS" should be set to \c NO.
<dt><b>PDF</b>\htmlonly &nbsp;&nbsp;&nbsp;\endhtmlonly
<dd>Generated from the \f$\mbox{\LaTeX}\f$ output by
running <code>make pdf</code> in the output directory.
diff --git a/doc/perlmod.doc b/doc/perlmod.doc
index 00bff63..6a04434 100644
--- a/doc/perlmod.doc
+++ b/doc/perlmod.doc
@@ -23,27 +23,27 @@ doxygen-develop mailing list. Suggestions are welcome as well.
\section using_perlmod_fmt Usage
-<p>When the <b>GENERATE_PERLMOD</b> tag is enabled in the Doxyfile,
-running Doxygen generates a number of files in the <b>perlmod/</b>
+<p>When the \ref cfg_generate_perlmod "GENERATE_PERLMOD" tag is enabled in the Doxyfile,
+running Doxygen generates a number of files in the `perlmod/`
subdirectory of your output directory. These files are the following:
<ul>
-<li><b>DoxyDocs.pm</b>. This is the Perl module that actually
+<li>`DoxyDocs.pm`: This is the Perl module that actually
contains the documentation, in the Perl Module format described
\ref doxydocs_format "below".
-<li><b>DoxyModel.pm</b>. This Perl module describes the structure of
-<b>DoxyDocs.pm</b>, independently of the actual documentation. See
+<li>`DoxyModel.pm`: This Perl module describes the structure of
+`DoxyDocs.pm`, independently of the actual documentation. See
\ref doxymodel_format "below" for details.
-<li><b>doxyrules.make</b>. This file contains the make rules to build
+<li>`doxyrules.make`: This file contains the make rules to build
and clean the files that are generated from the Doxyfile. Also
contains the paths to those files and other relevant information. This
file is intended to be included by your own Makefile.
-<li><b>Makefile</b>. This is a simple Makefile including
-<b>doxyrules.make</b>.
+<li>`Makefile`: This is a simple Makefile including
+`doxyrules.make`.
</ul>
@@ -65,70 +65,71 @@ within files and classes and can be customized quite a lot by
redefining TeX macros. However, there is still no documentation on
how to do this.
-<p>Setting the <b>PERLMOD_LATEX</b> tag to <b>YES</b> in the Doxyfile
-enables the creation of some additional files in the <b>perlmod/</b>
+<p>Setting the \ref cfg_perlmod_latex "PERLMOD_LATEX" tag to \c YES in the
+\c Doxyfile enables the creation of some additional files in the `perlmod/`
subdirectory of your output directory. These files contain the Perl
scripts and LaTeX code necessary to generate PDF and DVI output from
-the Perl Module output, using PDFLaTeX and LaTeX respectively. Rules
+the Perl Module output, using `pdflatex` and `latex` respectively. Rules
to automate the use of these files are also added to
-<b>doxyrules.make</b> and the <b>Makefile</b>.
+`doxyrules.make` and the `Makefile`.
<p>The additional generated files are the following:
<ul>
-<li><b>doxylatex.pl</b>. This Perl script uses DoxyDocs.pm and
-DoxyModel.pm to generate <b>doxydocs.tex</b>, a TeX file containing
+<li>`doxylatex.pl`: This Perl script uses `DoxyDocs.pm` and
+DoxyModel.pm to generate `doxydocs.tex`, a TeX file containing
the documentation in a format that can be accessed by LaTeX code. This
file is not directly LaTeXable.
-<li><b>doxyformat.tex</b>. This file contains the LaTeX code that
+<li>`doxyformat.tex`: This file contains the \f$\mbox{\LaTeX}\f$ code that
transforms the documentation from doxydocs.tex into LaTeX text
-suitable to be LaTeX'ed and presented to the user.
+suitable to be \f$\mbox{\LaTeX}\f$'ed and presented to the user.
-<li><b>doxylatex-template.pl</b>. This Perl script uses DoxyModel.pm
-to generate <b>doxytemplate.tex</b>, a TeX file defining default
+<li>`doxylatex-template.pl`: This Perl script uses `DoxyModel.pm`
+to generate `doxytemplate.tex`, a \f$\mbox{\TeX}\f$ file defining default
values for some macros. doxytemplate.tex is included by
doxyformat.tex to avoid the need of explicitly defining some macros.
-<li><b>doxylatex.tex</b>. This is a very simple LaTeX document that
+<li>`doxylatex.tex`: This is a very simple \f$\mbox{\LaTeX}\f$ document that
loads some packages and includes doxyformat.tex and doxydocs.tex. This
-document is LaTeX'ed to produce the PDF and DVI documentation by the
-rules added to <b>doxyrules.make</b>.
+document is \f$\mbox{\LaTeX}\f$'ed to produce the PDF and DVI documentation by the
+rules added to `doxyrules.make`.
</ul>
\subsection pm_pdf_gen Creation of PDF and DVI output
<p>To try this you need to have installed LaTeX, PDFLaTeX and the
-packages used by <b>doxylatex.tex</b>.
+packages used by `doxylatex.tex`.
<ol>
-<li>Update your Doxyfile to the latest version using:
+<li>Update your `Doxyfile` to the latest version using:
<pre>doxygen -u Doxyfile</pre>
-<li>Set both <b>GENERATE_PERLMOD</b> and <b>PERLMOD_LATEX</b> tags to
-YES in your Doxyfile.
+<li>Set both \ref cfg_generate_perlmod "GENERATE_PERLMOD" and
+\ref cfg_perlmod_latex "PERLMOD_LATEX" tags to
+\c YES in your Doxyfile.
<li>Run Doxygen on your Doxyfile:
<pre>doxygen Doxyfile</pre>
-<li>A <b>perlmod/</b> subdirectory should have appeared in your output
-directory. Enter the <b>perlmod/</b> subdirectory and run:
+<li>A `perlmod/` subdirectory should have appeared in your output
+directory. Enter the `perlmod/` subdirectory and run:
<pre>make pdf</pre>
-<p>This should generate a <b>doxylatex.pdf</b> with the documentation
+<p>This should generate a `doxylatex.pdf` with the documentation
in PDF format.
<li>Run:
<pre>make dvi</pre>
-<p>This should generate a <b>doxylatex.dvi</b> with the documentation
+<p>This should generate a `doxylatex.dvi` with the documentation
in DVI format.
</ol>
@@ -136,29 +137,29 @@ in DVI format.
\section doxydocs_format Documentation format.
<p>The Perl Module documentation generated by Doxygen is stored in
-<b>DoxyDocs.pm</b>. This is a very simple Perl module that contains
-only two statements: an assignment to the variable <b>$doxydocs</b> and
-the customary <b>1;</b> statement which usually ends Perl modules.
-The documentation is stored in the variable <b>$doxydocs</b>, which
-can then be accessed by a Perl script using <b>DoxyDocs.pm</b>.
+`DoxyDocs.pm`. This is a very simple Perl module that contains
+only two statements: an assignment to the variable `$doxydocs` and
+the customary `1;` statement which usually ends Perl modules.
+The documentation is stored in the variable `$doxydocs`, which
+can then be accessed by a Perl script using `DoxyDocs.pm`.
-<p><b>$doxydocs</b> contains a tree-like structure composed of three
+<p>`$doxydocs` contains a tree-like structure composed of three
types of nodes: strings, hashes and lists.
<ul>
-<li><b>Strings</b>. These are normal Perl strings. They can be of
+<li>`Strings`: These are normal Perl strings. They can be of
any length can contain any character. Their semantics depends on
their location within the tree. This type of node has no children.
-<li><b>Hashes</b>. These are references to anonymous Perl hashes. A
+<li>`Hashes`: These are references to anonymous Perl hashes. A
hash can have multiple fields, each with a different key. The value
of a hash field can be a string, a hash or a list, and its semantics
depends on the key of the hash field and the location of the hash
within the tree. The values of the hash fields are the children of
the node.
-<li><b>Lists</b>. These are references to anonymous Perl lists. A
+<li>`Lists`: These are references to anonymous Perl lists. A
list has an undefined number of elements, which are the children of
the node. Each element has the same type (string, hash or list) and
the same semantics, depending on the location of the list within the
@@ -166,12 +167,12 @@ tree.
</ul>
-<p>As you can see, the documentation contained in <b>$doxydocs</b>
+<p>As you can see, the documentation contained in `$doxydocs`
does not present any special impediment to be processed by a simple
Perl script.
<!--
To be able to generate meaningful output using the
-documentation contained in <b>$doxydocs</b> you'll probably need to
+documentation contained in `$doxydocs` you'll probably need to
know the semantics of the nodes of the documentation tree, which we
present in \ref perlmod_tree "this page".
-->
@@ -179,16 +180,16 @@ present in \ref perlmod_tree "this page".
\section doxymodel_format Data structure
<p>You might be interested in processing the documentation contained
-in <b>DoxyDocs.pm</b> without needing to take into account the
+in `DoxyDocs.pm` without needing to take into account the
semantics of each node of the documentation tree. For this purpose,
-Doxygen generates a <b>DoxyModel.pm</b> file which contains a data
+Doxygen generates a `DoxyModel.pm` file which contains a data
structure describing the type and children of each node in the
documentation tree.
<p>The rest of this section is to be written yet, but in the meantime
you can look at the Perl scripts generated by Doxygen (such as
-<b>doxylatex.pl</b> or <b>doxytemplate-latex.pl</b>) to get an idea on
-how to use <b>DoxyModel.pm</b>.
+`doxylatex.pl` or `doxytemplate-latex.pl`) to get an idea on
+how to use `DoxyModel.pm`.
\htmlonly
diff --git a/doc/searching.doc b/doc/searching.doc
index 9d3261e..5a9c39e 100644
--- a/doc/searching.doc
+++ b/doc/searching.doc
@@ -59,7 +59,7 @@ has its own advantages and disadvantages:
Advantages over the client side search engine are that it provides full
text search and it scales well to medium side projects.
- Disadvantages are that it does not work locally (i.e. using a file:// URL)
+ Disadvantages are that it does not work locally (i.e. using a "file://" URL)
and that it does not provide live search capabilities.
@note In the future this option will probably be replaced by the next
@@ -80,7 +80,7 @@ has its own advantages and disadvantages:
\ref cfg_server_based_search "SERVER_BASED_SEARCH" and
\ref cfg_external_search "EXTERNAL_SEARCH" all to \c YES.
- See \ref extsearch for configuration details.
+ See \subpage extsearch for configuration details.
Advantages over option 2 are that this method (potentially) scales to
very large projects. It is also possible to combine multiple doxygen
@@ -126,7 +126,7 @@ has its own advantages and disadvantages:
options you may want to set. After doxygen has finished you will find
a Makefile in the HTML output directory. Running "make install" on this
Makefile will compile and install the doc set.
- See <a href="http://developer.apple.com/tools/creatingdocsetswithdoxygen.html">this
+ See <a href="https://developer.apple.com/library/mac/#featuredarticles/DoxygenXcode/_index.html">this
article</a> for more info.
Advantage of this method is that it nicely integrates with the Xcode
@@ -139,7 +139,7 @@ has its own advantages and disadvantages:
<h2>6. Qt Compressed Help</h2>
If you develop for or want to install the Qt application framework,
you will get an application
- called <a href="http://doc.trolltech.com/4.6/assistant-manual.html">Qt assistant</a>.
+ called <a href="http://qt-project.org/doc/qt-4.8/assistant-manual.html">Qt assistant</a>.
This is a help viewer for Qt Compressed Help files (.qch).
To enable this feature set \ref cfg_generate_qhp "GENERATE_QHP" to \c YES.
@@ -147,7 +147,7 @@ has its own advantages and disadvantages:
\ref cfg_qhp_namespace "QHP_NAMESPACE",
\ref cfg_qhg_location "QHG_LOCATION",
\ref cfg_qhp_virtual_folder "QHP_VIRTUAL_FOLDER".
- See <a href="http://doc.trolltech.com/qq/qq28-qthelp.html#htmlfilesandhelpprojects">this article</a>
+ See <a href="http://doc.qt.digia.com/qq/qq28-qthelp.html#htmlfilesandhelpprojects">this article</a>
for more info.
Feature wise the Qt compressed help feature is comparable with the CHM
diff --git a/doc/translator.py b/doc/translator.py
index 816482b..3550fc7 100644
--- a/doc/translator.py
+++ b/doc/translator.py
@@ -1714,7 +1714,7 @@ class TrManager:
in the Translator class but their identifiers do not appear
in source files. The situation should be checked. The .cpp
files and .h files excluding the '*translator*' files
- in doxygen/src directory were simply searched for occurence
+ in doxygen/src directory were simply searched for occurrence
of the method identifiers:'''
f.write('\n' + '=' * 70 + '\n')
f.write(fill(s) + '\n\n')
diff --git a/doc/translator_report.txt b/doc/translator_report.txt
index b7fa558..0bba380 100644
--- a/doc/translator_report.txt
+++ b/doc/translator_report.txt
@@ -10,25 +10,17 @@ Macedonian, Norwegian, Persian, Polish, Portuguese, Romanian, Russian,
Serbian, SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish,
Ukrainian, and Vietnamese.
-Of them, 10 translators are up-to-date, 30 translators are based on
+Of them, 2 translators are up-to-date, 38 translators are based on
some adapter class, and 2 are English based.
----------------------------------------------------------------------
The following translator classes are up-to-date (sorted
alphabetically). This means that they derive from the Translator class
-and they implement all 242 of the required methods. Anyway, there
+and they implement all 250 of the required methods. Anyway, there
still may be some details listed even for them:
- TranslatorCzech
- TranslatorDutch
TranslatorEnglish
- TranslatorEsperanto
- TranslatorGerman
- TranslatorGreek
TranslatorLatvian -- Reimplementation using UTF-8 suggested.
- TranslatorSlovak
- TranslatorSpanish
- TranslatorUkrainian
----------------------------------------------------------------------
The following translator classes need some maintenance (the most
@@ -36,66 +28,90 @@ 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:
- TranslatorPolish 1.8.2 7 methods to implement (2 %)
- TranslatorKorean 1.8.02 7 methods to implement (2 %)
+ TranslatorUkrainian 1.8.04 8 methods to implement (3 %)
+ Note: Change the base class to TranslatorAdapter_1_8_4.
+
+ TranslatorSpanish 1.8.04 8 methods to implement (3 %)
+ Note: Change the base class to TranslatorAdapter_1_8_4.
+
+ TranslatorSlovak 1.8.04 8 methods to implement (3 %)
+ Note: Change the base class to TranslatorAdapter_1_8_4.
+
+ TranslatorGreek 1.8.04 8 methods to implement (3 %)
+ Note: Change the base class to TranslatorAdapter_1_8_4.
+
+ TranslatorGerman 1.8.04 8 methods to implement (3 %)
+ Note: Change the base class to TranslatorAdapter_1_8_4.
+
+ TranslatorEsperanto 1.8.04 8 methods to implement (3 %)
+ Note: Change the base class to TranslatorAdapter_1_8_4.
+
+ TranslatorDutch 1.8.04 8 methods to implement (3 %)
+ Note: Change the base class to TranslatorAdapter_1_8_4.
+
+ TranslatorCzech 1.8.04 8 methods to implement (3 %)
+ Note: Change the base class to TranslatorAdapter_1_8_4.
+
+ TranslatorPolish 1.8.2 14 methods to implement (5 %)
+ TranslatorKorean 1.8.02 15 methods to implement (6 %)
Note: Change the base class to TranslatorAdapter_1_8_2.
- TranslatorItalian 1.8.2 7 methods to implement (2 %)
- TranslatorCroatian 1.8.2 7 methods to implement (2 %)
- TranslatorChinese 1.8.2 7 methods to implement (2 %)
- TranslatorPortuguese 1.8.0 14 methods to implement (5 %)
- TranslatorIndonesian 1.8.0 14 methods to implement (5 %)
+ TranslatorItalian 1.8.2 15 methods to implement (6 %)
+ TranslatorCroatian 1.8.2 15 methods to implement (6 %)
+ TranslatorChinese 1.8.2 15 methods to implement (6 %)
+ TranslatorPortuguese 1.8.0 22 methods to implement (8 %)
+ TranslatorIndonesian 1.8.0 22 methods to implement (8 %)
Note: Reimplementation using UTF-8 suggested.
- TranslatorFrench 1.8.0 14 methods to implement (5 %)
+ TranslatorFrench 1.8.0 22 methods to implement (8 %)
Note: Reimplementation using UTF-8 suggested.
- TranslatorDanish 1.8.0 14 methods to implement (5 %)
+ TranslatorDanish 1.8.0 22 methods to implement (8 %)
Note: Reimplementation using UTF-8 suggested.
- TranslatorChinesetraditional 1.8.0 14 methods to implement (5 %)
+ TranslatorChinesetraditional 1.8.0 22 methods to implement (8 %)
Note: Reimplementation using UTF-8 suggested.
- TranslatorCatalan 1.8.0 14 methods to implement (5 %)
- TranslatorBrazilian 1.8.0 14 methods to implement (5 %)
- TranslatorArmenian 1.8.0 14 methods to implement (5 %)
- TranslatorTurkish 1.7.5 17 methods to implement (7 %)
- TranslatorRussian 1.7.5 17 methods to implement (7 %)
+ TranslatorCatalan 1.8.0 22 methods to implement (8 %)
+ TranslatorBrazilian 1.8.0 22 methods to implement (8 %)
+ TranslatorArmenian 1.8.0 22 methods to implement (8 %)
+ TranslatorTurkish 1.7.5 25 methods to implement (10 %)
+ TranslatorRussian 1.7.5 25 methods to implement (10 %)
Note: Reimplementation using UTF-8 suggested.
- TranslatorPersian 1.7.5 17 methods to implement (7 %)
- TranslatorVietnamese 1.6.0 26 methods to implement (10 %)
- TranslatorSwedish 1.6.0 26 methods to implement (10 %)
+ TranslatorPersian 1.7.5 25 methods to implement (10 %)
+ TranslatorVietnamese 1.6.0 34 methods to implement (13 %)
+ TranslatorSwedish 1.6.0 34 methods to implement (13 %)
Note: Reimplementation using UTF-8 suggested.
- TranslatorSerbian 1.6.0 26 methods to implement (10 %)
+ TranslatorSerbian 1.6.0 34 methods to implement (13 %)
Note: Reimplementation using UTF-8 suggested.
- TranslatorSerbianCyrilic 1.6.0 26 methods to implement (10 %)
- TranslatorRomanian 1.6.0 26 methods to implement (10 %)
+ TranslatorSerbianCyrilic 1.6.0 34 methods to implement (13 %)
+ TranslatorRomanian 1.6.0 34 methods to implement (13 %)
Note: Reimplementation using UTF-8 suggested.
- TranslatorMacedonian 1.6.0 26 methods to implement (10 %)
- TranslatorJapanese 1.6.0 26 methods to implement (10 %)
+ TranslatorMacedonian 1.6.0 34 methods to implement (13 %)
+ TranslatorJapanese 1.6.0 33 methods to implement (13 %)
Note: Reimplementation using UTF-8 suggested.
- TranslatorFinnish 1.6.0 26 methods to implement (10 %)
- TranslatorAfrikaans 1.6.0 26 methods to implement (10 %)
+ TranslatorFinnish 1.6.0 34 methods to implement (13 %)
+ TranslatorAfrikaans 1.6.0 34 methods to implement (13 %)
Note: Reimplementation using UTF-8 suggested.
- TranslatorSlovene 1.4.6 50 methods to implement (20 %)
+ TranslatorSlovene 1.4.6 58 methods to implement (23 %)
Note: Reimplementation using UTF-8 suggested.
- TranslatorNorwegian 1.4.6 49 methods to implement (20 %)
+ TranslatorNorwegian 1.4.6 56 methods to implement (22 %)
Note: Reimplementation using UTF-8 suggested.
- TranslatorLithuanian 1.4.6 50 methods to implement (20 %)
+ TranslatorLithuanian 1.4.6 58 methods to implement (23 %)
Note: Reimplementation using UTF-8 suggested.
- TranslatorHungarian 1.4.6 50 methods to implement (20 %)
+ TranslatorHungarian 1.4.6 58 methods to implement (23 %)
Note: Reimplementation using UTF-8 suggested.
- TranslatorArabic 1.4.6 49 methods to implement (20 %)
+ TranslatorArabic 1.4.6 56 methods to implement (22 %)
Note: Reimplementation using UTF-8 suggested.
@@ -113,7 +129,7 @@ WARNING: The following translator methods are declared in the
Translator class but their identifiers do not appear in source files.
The situation should be checked. The .cpp files and .h files excluding
the '*translator*' files in doxygen/src directory were simply searched
-for occurence of the method identifiers:
+for occurrence of the method identifiers:
QCString idLanguageCharset()
QCString trAlphabeticalList()
@@ -122,6 +138,7 @@ for occurence of the method identifiers:
QCString trFuncProtos()
QCString trFunctionPrototypeDocumentation()
QCString trSearchForIndex()
+ QCString trWrittenBy()
======================================================================
@@ -129,10 +146,10 @@ Details for translators (classes sorted alphabetically):
-TranslatorAfrikaans (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
+TranslatorAfrikaans (TranslatorAdapter_1_6_0) 34 methods to implement (13 %)
-------------------
- Implements 216 of the required methods (89 %).
+ Implements 216 of the required methods (86 %).
Missing methods (should be implemented):
@@ -142,12 +159,16 @@ TranslatorAfrikaans (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trNoMatches()
virtual QCString trLoading()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
+ virtual QCString trServices()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
virtual QCString trGlobalNamespace()
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trDirDepGraph(const char * name)
virtual QCString trDirRelation(const char * name)
virtual QCString trMethodDocumentation()
@@ -156,18 +177,22 @@ TranslatorAfrikaans (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
virtual QCString trDirDependency(const char * name)
+ virtual QCString trInterfaces()
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorArabic (TranslatorAdapter_1_4_6) 49 methods to implement (20 %)
+TranslatorArabic (TranslatorAdapter_1_4_6) 56 methods to implement (22 %)
----------------
- Implements 193 of the required methods (79 %).
+ Implements 194 of the required methods (77 %).
Missing methods (should be implemented):
@@ -180,18 +205,22 @@ TranslatorArabic (TranslatorAdapter_1_4_6) 49 methods to implement (20 %)
virtual QCString trLoading()
virtual QCString trSubprograms()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
+ virtual QCString trServices()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
virtual QCString trGlobalNamespace()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trTypeDocumentation()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
@@ -208,9 +237,11 @@ TranslatorArabic (TranslatorAdapter_1_4_6) 49 methods to implement (20 %)
virtual QCString trDirDependency(const char * name)
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trCallerGraph()
virtual QCString trExtendsClass()
@@ -219,6 +250,7 @@ TranslatorArabic (TranslatorAdapter_1_4_6) 49 methods to implement (20 %)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
Obsolete methods (should be removed, never used):
@@ -228,163 +260,269 @@ TranslatorArabic (TranslatorAdapter_1_4_6) 49 methods to implement (20 %)
virtual QCString trPackageDocumentation()
virtual QCString trSources()
virtual QCString trReimplementedForInternalReasons()
- virtual QCString trInterfaces()
virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations()
virtual QCString trNoDescriptionAvailable()
-TranslatorArmenian (TranslatorAdapter_1_8_0) 14 methods to implement (5 %)
+TranslatorArmenian (TranslatorAdapter_1_8_0) 22 methods to implement (8 %)
------------------
- Implements 228 of the required methods (94 %).
+ Implements 228 of the required methods (91 %).
Missing methods (should be implemented):
virtual QCString trDetailLevel()
virtual QCString trTemplateParameters()
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trMethodDocumentation()
virtual QCString trEnumReference(const char * name)
virtual QCString trInheritedFrom(const char * members, const char * what)
virtual QCString trAdditionalInheritedMembers()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorBrazilian (TranslatorAdapter_1_8_0) 14 methods to implement (5 %)
+TranslatorBrazilian (TranslatorAdapter_1_8_0) 22 methods to implement (8 %)
-------------------
- Implements 228 of the required methods (94 %).
+ Implements 228 of the required methods (91 %).
Missing methods (should be implemented):
virtual QCString trDetailLevel()
virtual QCString trTemplateParameters()
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trMethodDocumentation()
virtual QCString trEnumReference(const char * name)
virtual QCString trInheritedFrom(const char * members, const char * what)
virtual QCString trAdditionalInheritedMembers()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorCatalan (TranslatorAdapter_1_8_0) 14 methods to implement (5 %)
+TranslatorCatalan (TranslatorAdapter_1_8_0) 22 methods to implement (8 %)
-----------------
- Implements 228 of the required methods (94 %).
+ Implements 228 of the required methods (91 %).
Missing methods (should be implemented):
virtual QCString trDetailLevel()
virtual QCString trTemplateParameters()
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trMethodDocumentation()
virtual QCString trEnumReference(const char * name)
virtual QCString trInheritedFrom(const char * members, const char * what)
virtual QCString trAdditionalInheritedMembers()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorChinese (TranslatorAdapter_1_8_2) 7 methods to implement (2 %)
+TranslatorChinese (TranslatorAdapter_1_8_2) 15 methods to implement (6 %)
-----------------
- Implements 235 of the required methods (97 %).
+ Implements 235 of the required methods (94 %).
Missing methods (should be implemented):
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
+ virtual QCString trConstantGroups()
virtual QCString trMethodDocumentation()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorChinesetraditional (TranslatorAdapter_1_8_0) 14 methods to implement (5 %)
+TranslatorChinesetraditional (TranslatorAdapter_1_8_0) 22 methods to implement (8 %)
----------------------------
- Implements 228 of the required methods (94 %).
+ Implements 228 of the required methods (91 %).
Missing methods (should be implemented):
virtual QCString trDetailLevel()
virtual QCString trTemplateParameters()
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trMethodDocumentation()
virtual QCString trEnumReference(const char * name)
virtual QCString trInheritedFrom(const char * members, const char * what)
virtual QCString trAdditionalInheritedMembers()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorCroatian (TranslatorAdapter_1_8_2) 7 methods to implement (2 %)
+TranslatorCroatian (TranslatorAdapter_1_8_2) 15 methods to implement (6 %)
------------------
- Implements 235 of the required methods (97 %).
+ Implements 235 of the required methods (94 %).
Missing methods (should be implemented):
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
+ virtual QCString trConstantGroups()
virtual QCString trMethodDocumentation()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorDanish (TranslatorAdapter_1_8_0) 14 methods to implement (5 %)
+TranslatorCzech (TranslatorAdapter_1_8_2) 8 methods to implement (3 %)
+---------------
+
+ Implements 242 of the required methods (96 %).
+
+ Missing methods (should be implemented):
+
+ virtual QCString trServices()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
+ virtual QCString trConstantGroups()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
+ virtual QCString trSingletonReference(const char * sName)
+
+
+TranslatorDanish (TranslatorAdapter_1_8_0) 22 methods to implement (8 %)
----------------
- Implements 228 of the required methods (94 %).
+ Implements 228 of the required methods (91 %).
Missing methods (should be implemented):
virtual QCString trDetailLevel()
virtual QCString trTemplateParameters()
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trMethodDocumentation()
virtual QCString trEnumReference(const char * name)
virtual QCString trInheritedFrom(const char * members, const char * what)
virtual QCString trAdditionalInheritedMembers()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorFinnish (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
+TranslatorDutch (TranslatorAdapter_1_8_2) 8 methods to implement (3 %)
+---------------
+
+ Implements 242 of the required methods (96 %).
+
+ Missing methods (should be implemented):
+
+ virtual QCString trServices()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
+ virtual QCString trConstantGroups()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
+ virtual QCString trSingletonReference(const char * sName)
+
+
+TranslatorEsperanto (TranslatorAdapter_1_8_2) 8 methods to implement (3 %)
+-------------------
+
+ Implements 242 of the required methods (96 %).
+
+ Missing methods (should be implemented):
+
+ virtual QCString trServices()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
+ virtual QCString trConstantGroups()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
+ virtual QCString trSingletonReference(const char * sName)
+
+
+TranslatorFinnish (TranslatorAdapter_1_6_0) 34 methods to implement (13 %)
-----------------
- Implements 216 of the required methods (89 %).
+ Implements 216 of the required methods (86 %).
Missing methods (should be implemented):
@@ -394,12 +532,16 @@ TranslatorFinnish (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trNoMatches()
virtual QCString trLoading()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
+ virtual QCString trServices()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
virtual QCString trGlobalNamespace()
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trDirDepGraph(const char * name)
virtual QCString trDirRelation(const char * name)
virtual QCString trMethodDocumentation()
@@ -408,41 +550,87 @@ TranslatorFinnish (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
virtual QCString trDirDependency(const char * name)
+ virtual QCString trInterfaces()
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorFrench (TranslatorAdapter_1_8_0) 14 methods to implement (5 %)
+TranslatorFrench (TranslatorAdapter_1_8_0) 22 methods to implement (8 %)
----------------
- Implements 228 of the required methods (94 %).
+ Implements 228 of the required methods (91 %).
Missing methods (should be implemented):
virtual QCString trDetailLevel()
virtual QCString trTemplateParameters()
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trMethodDocumentation()
virtual QCString trEnumReference(const char * name)
virtual QCString trInheritedFrom(const char * members, const char * what)
virtual QCString trAdditionalInheritedMembers()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorHungarian (TranslatorAdapter_1_4_6) 50 methods to implement (20 %)
+TranslatorGerman (TranslatorAdapter_1_8_2) 8 methods to implement (3 %)
+----------------
+
+ Implements 242 of the required methods (96 %).
+
+ Missing methods (should be implemented):
+
+ virtual QCString trServices()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
+ virtual QCString trConstantGroups()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
+ virtual QCString trSingletonReference(const char * sName)
+
+
+TranslatorGreek (TranslatorAdapter_1_8_2) 8 methods to implement (3 %)
+---------------
+
+ Implements 242 of the required methods (96 %).
+
+ Missing methods (should be implemented):
+
+ virtual QCString trServices()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
+ virtual QCString trConstantGroups()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
+ virtual QCString trSingletonReference(const char * sName)
+
+
+TranslatorHungarian (TranslatorAdapter_1_4_6) 58 methods to implement (23 %)
-------------------
- Implements 192 of the required methods (79 %).
+ Implements 192 of the required methods (76 %).
Missing methods (should be implemented):
@@ -455,18 +643,22 @@ TranslatorHungarian (TranslatorAdapter_1_4_6) 50 methods to implement (20 %)
virtual QCString trLoading()
virtual QCString trSubprograms()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
+ virtual QCString trServices()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
virtual QCString trGlobalNamespace()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trTypeDocumentation()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
@@ -481,11 +673,14 @@ TranslatorHungarian (TranslatorAdapter_1_4_6) 50 methods to implement (20 %)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
virtual QCString trDirDependency(const char * name)
+ virtual QCString trInterfaces()
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trCallerGraph()
virtual QCString trExtendsClass()
@@ -495,52 +690,69 @@ TranslatorHungarian (TranslatorAdapter_1_4_6) 50 methods to implement (20 %)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorIndonesian (TranslatorAdapter_1_8_0) 14 methods to implement (5 %)
+TranslatorIndonesian (TranslatorAdapter_1_8_0) 22 methods to implement (8 %)
--------------------
- Implements 228 of the required methods (94 %).
+ Implements 228 of the required methods (91 %).
Missing methods (should be implemented):
virtual QCString trDetailLevel()
virtual QCString trTemplateParameters()
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trMethodDocumentation()
virtual QCString trEnumReference(const char * name)
virtual QCString trInheritedFrom(const char * members, const char * what)
virtual QCString trAdditionalInheritedMembers()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorItalian (TranslatorAdapter_1_8_2) 7 methods to implement (2 %)
+TranslatorItalian (TranslatorAdapter_1_8_2) 15 methods to implement (6 %)
-----------------
- Implements 235 of the required methods (97 %).
+ Implements 235 of the required methods (94 %).
Missing methods (should be implemented):
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
+ virtual QCString trConstantGroups()
virtual QCString trMethodDocumentation()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorJapanese (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
+TranslatorJapanese (TranslatorAdapter_1_6_0) 33 methods to implement (13 %)
------------------
- Implements 216 of the required methods (89 %).
+ Implements 217 of the required methods (86 %).
Missing methods (should be implemented):
@@ -550,12 +762,16 @@ TranslatorJapanese (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trNoMatches()
virtual QCString trLoading()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
+ virtual QCString trServices()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
virtual QCString trGlobalNamespace()
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trDirDepGraph(const char * name)
virtual QCString trDirRelation(const char * name)
virtual QCString trMethodDocumentation()
@@ -566,9 +782,12 @@ TranslatorJapanese (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trDirDependency(const char * name)
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
Obsolete methods (should be removed, never used):
@@ -578,13 +797,12 @@ TranslatorJapanese (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trPackageDocumentation()
virtual QCString trSources()
virtual QCString trReimplementedForInternalReasons()
- virtual QCString trInterfaces()
virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations()
virtual QCString trNoDescriptionAvailable()
-TranslatorJapaneseEn (TranslatorEnglish) 237 methods to implement (97 %)
+TranslatorJapaneseEn (TranslatorEnglish) 245 methods to implement (98 %)
--------------------
Implements 5 of the required methods (2 %).
@@ -598,23 +816,31 @@ TranslatorJapaneseEn (TranslatorEnglish) 237 methods to implement (97 %)
virtual QCString latexLanguageSupportCommand()
-TranslatorKorean (TranslatorAdapter_1_7_5) 7 methods to implement (2 %)
+TranslatorKorean (TranslatorAdapter_1_7_5) 15 methods to implement (6 %)
----------------
- Implements 235 of the required methods (97 %).
+ Implements 235 of the required methods (94 %).
Missing methods (should be implemented):
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
+ virtual QCString trConstantGroups()
virtual QCString trMethodDocumentation()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorKoreanEn (TranslatorEnglish) 237 methods to implement (97 %)
+TranslatorKoreanEn (TranslatorEnglish) 245 methods to implement (98 %)
------------------
Implements 5 of the required methods (2 %).
@@ -628,16 +854,27 @@ TranslatorKoreanEn (TranslatorEnglish) 237 methods to implement (97 %)
virtual QCString latexLanguageSupportCommand()
-TranslatorLatvian (Translator)
+TranslatorLatvian (Translator) 8 methods to implement (3 %)
-----------------
- Implements 242 of the required methods (100 %).
+ Implements 242 of the required methods (96 %).
+
+ Missing methods (should be implemented):
+
+ virtual QCString trServices()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
+ virtual QCString trConstantGroups()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
+ virtual QCString trSingletonReference(const char * sName)
-TranslatorLithuanian (TranslatorAdapter_1_4_6) 50 methods to implement (20 %)
+TranslatorLithuanian (TranslatorAdapter_1_4_6) 58 methods to implement (23 %)
--------------------
- Implements 192 of the required methods (79 %).
+ Implements 192 of the required methods (76 %).
Missing methods (should be implemented):
@@ -650,18 +887,22 @@ TranslatorLithuanian (TranslatorAdapter_1_4_6) 50 methods to implement (20 %)
virtual QCString trLoading()
virtual QCString trSubprograms()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
+ virtual QCString trServices()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
virtual QCString trGlobalNamespace()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trTypeDocumentation()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
@@ -676,11 +917,14 @@ TranslatorLithuanian (TranslatorAdapter_1_4_6) 50 methods to implement (20 %)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
virtual QCString trDirDependency(const char * name)
+ virtual QCString trInterfaces()
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trCallerGraph()
virtual QCString trExtendsClass()
@@ -690,13 +934,14 @@ TranslatorLithuanian (TranslatorAdapter_1_4_6) 50 methods to implement (20 %)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorMacedonian (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
+TranslatorMacedonian (TranslatorAdapter_1_6_0) 34 methods to implement (13 %)
--------------------
- Implements 216 of the required methods (89 %).
+ Implements 216 of the required methods (86 %).
Missing methods (should be implemented):
@@ -706,12 +951,16 @@ TranslatorMacedonian (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trNoMatches()
virtual QCString trLoading()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
+ virtual QCString trServices()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
virtual QCString trGlobalNamespace()
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trDirDepGraph(const char * name)
virtual QCString trDirRelation(const char * name)
virtual QCString trMethodDocumentation()
@@ -720,18 +969,22 @@ TranslatorMacedonian (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
virtual QCString trDirDependency(const char * name)
+ virtual QCString trInterfaces()
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorNorwegian (TranslatorAdapter_1_4_6) 49 methods to implement (20 %)
+TranslatorNorwegian (TranslatorAdapter_1_4_6) 56 methods to implement (22 %)
-------------------
- Implements 193 of the required methods (79 %).
+ Implements 194 of the required methods (77 %).
Missing methods (should be implemented):
@@ -744,18 +997,22 @@ TranslatorNorwegian (TranslatorAdapter_1_4_6) 49 methods to implement (20 %)
virtual QCString trLoading()
virtual QCString trSubprograms()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
+ virtual QCString trServices()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
virtual QCString trGlobalNamespace()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trTypeDocumentation()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
@@ -772,9 +1029,11 @@ TranslatorNorwegian (TranslatorAdapter_1_4_6) 49 methods to implement (20 %)
virtual QCString trDirDependency(const char * name)
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trCallerGraph()
virtual QCString trExtendsClass()
@@ -783,6 +1042,7 @@ TranslatorNorwegian (TranslatorAdapter_1_4_6) 49 methods to implement (20 %)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
Obsolete methods (should be removed, never used):
@@ -792,51 +1052,65 @@ TranslatorNorwegian (TranslatorAdapter_1_4_6) 49 methods to implement (20 %)
virtual QCString trPackageDocumentation()
virtual QCString trSources()
virtual QCString trReimplementedForInternalReasons()
- virtual QCString trInterfaces()
virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations()
virtual QCString trNoDescriptionAvailable()
-TranslatorPersian (TranslatorAdapter_1_7_5) 17 methods to implement (7 %)
+TranslatorPersian (TranslatorAdapter_1_7_5) 25 methods to implement (10 %)
-----------------
- Implements 225 of the required methods (92 %).
+ Implements 225 of the required methods (90 %).
Missing methods (should be implemented):
virtual QCString trDetailLevel()
virtual QCString trTemplateParameters()
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trDirDepGraph(const char * name)
virtual QCString trMethodDocumentation()
virtual QCString trEnumReference(const char * name)
virtual QCString trInheritedFrom(const char * members, const char * what)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
+ virtual QCString trInterfaces()
virtual QCString trCopyright()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorPolish (TranslatorAdapter_1_8_2) 7 methods to implement (2 %)
+TranslatorPolish (TranslatorAdapter_1_8_2) 14 methods to implement (5 %)
----------------
- Implements 235 of the required methods (97 %).
+ Implements 236 of the required methods (94 %).
Missing methods (should be implemented):
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
+ virtual QCString trConstantGroups()
virtual QCString trMethodDocumentation()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
Obsolete methods (should be removed, never used):
@@ -846,39 +1120,46 @@ TranslatorPolish (TranslatorAdapter_1_8_2) 7 methods to implement (2 %)
virtual QCString trPackageDocumentation()
QCString trSources()
QCString trReimplementedForInternalReasons()
- virtual QCString trInterfaces()
QCString trHeaderFiles()
QCString trBugsAndLimitations()
QCString trNoDescriptionAvailable()
-TranslatorPortuguese (TranslatorAdapter_1_8_0) 14 methods to implement (5 %)
+TranslatorPortuguese (TranslatorAdapter_1_8_0) 22 methods to implement (8 %)
--------------------
- Implements 228 of the required methods (94 %).
+ Implements 228 of the required methods (91 %).
Missing methods (should be implemented):
virtual QCString trDetailLevel()
virtual QCString trTemplateParameters()
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trMethodDocumentation()
virtual QCString trEnumReference(const char * name)
virtual QCString trInheritedFrom(const char * members, const char * what)
virtual QCString trAdditionalInheritedMembers()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorRomanian (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
+TranslatorRomanian (TranslatorAdapter_1_6_0) 34 methods to implement (13 %)
------------------
- Implements 216 of the required methods (89 %).
+ Implements 216 of the required methods (86 %).
Missing methods (should be implemented):
@@ -888,12 +1169,16 @@ TranslatorRomanian (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trNoMatches()
virtual QCString trLoading()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
+ virtual QCString trServices()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
virtual QCString trGlobalNamespace()
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trDirDepGraph(const char * name)
virtual QCString trDirRelation(const char * name)
virtual QCString trMethodDocumentation()
@@ -902,44 +1187,56 @@ TranslatorRomanian (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
virtual QCString trDirDependency(const char * name)
+ virtual QCString trInterfaces()
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorRussian (TranslatorAdapter_1_7_5) 17 methods to implement (7 %)
+TranslatorRussian (TranslatorAdapter_1_7_5) 25 methods to implement (10 %)
-----------------
- Implements 225 of the required methods (92 %).
+ Implements 225 of the required methods (90 %).
Missing methods (should be implemented):
virtual QCString trDetailLevel()
virtual QCString trTemplateParameters()
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trDirDepGraph(const char * name)
virtual QCString trMethodDocumentation()
virtual QCString trEnumReference(const char * name)
virtual QCString trInheritedFrom(const char * members, const char * what)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
+ virtual QCString trInterfaces()
virtual QCString trCopyright()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorSerbian (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
+TranslatorSerbian (TranslatorAdapter_1_6_0) 34 methods to implement (13 %)
-----------------
- Implements 216 of the required methods (89 %).
+ Implements 216 of the required methods (86 %).
Missing methods (should be implemented):
@@ -949,12 +1246,16 @@ TranslatorSerbian (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trNoMatches()
virtual QCString trLoading()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
+ virtual QCString trServices()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
virtual QCString trGlobalNamespace()
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trDirDepGraph(const char * name)
virtual QCString trDirRelation(const char * name)
virtual QCString trMethodDocumentation()
@@ -963,18 +1264,22 @@ TranslatorSerbian (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
virtual QCString trDirDependency(const char * name)
+ virtual QCString trInterfaces()
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorSerbianCyrilic (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
+TranslatorSerbianCyrilic (TranslatorAdapter_1_6_0) 34 methods to implement (13 %)
------------------------
- Implements 216 of the required methods (89 %).
+ Implements 216 of the required methods (86 %).
Missing methods (should be implemented):
@@ -984,12 +1289,16 @@ TranslatorSerbianCyrilic (TranslatorAdapter_1_6_0) 26 methods to implement (1
virtual QCString trNoMatches()
virtual QCString trLoading()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
+ virtual QCString trServices()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
virtual QCString trGlobalNamespace()
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trDirDepGraph(const char * name)
virtual QCString trDirRelation(const char * name)
virtual QCString trMethodDocumentation()
@@ -998,18 +1307,39 @@ TranslatorSerbianCyrilic (TranslatorAdapter_1_6_0) 26 methods to implement (1
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
virtual QCString trDirDependency(const char * name)
+ virtual QCString trInterfaces()
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorSlovene (TranslatorAdapter_1_4_6) 50 methods to implement (20 %)
+TranslatorSlovak (TranslatorAdapter_1_8_2) 8 methods to implement (3 %)
+----------------
+
+ Implements 242 of the required methods (96 %).
+
+ Missing methods (should be implemented):
+
+ virtual QCString trServices()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
+ virtual QCString trConstantGroups()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
+ virtual QCString trSingletonReference(const char * sName)
+
+
+TranslatorSlovene (TranslatorAdapter_1_4_6) 58 methods to implement (23 %)
-----------------
- Implements 192 of the required methods (79 %).
+ Implements 192 of the required methods (76 %).
Missing methods (should be implemented):
@@ -1022,18 +1352,22 @@ TranslatorSlovene (TranslatorAdapter_1_4_6) 50 methods to implement (20 %)
virtual QCString trLoading()
virtual QCString trSubprograms()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
+ virtual QCString trServices()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
virtual QCString trGlobalNamespace()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trTypeDocumentation()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
@@ -1048,11 +1382,14 @@ TranslatorSlovene (TranslatorAdapter_1_4_6) 50 methods to implement (20 %)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
virtual QCString trDirDependency(const char * name)
+ virtual QCString trInterfaces()
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trCallerGraph()
virtual QCString trExtendsClass()
@@ -1062,13 +1399,31 @@ TranslatorSlovene (TranslatorAdapter_1_4_6) 50 methods to implement (20 %)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorSwedish (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
+TranslatorSpanish (TranslatorAdapter_1_8_2) 8 methods to implement (3 %)
-----------------
- Implements 216 of the required methods (89 %).
+ Implements 242 of the required methods (96 %).
+
+ Missing methods (should be implemented):
+
+ virtual QCString trServices()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
+ virtual QCString trConstantGroups()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
+ virtual QCString trSingletonReference(const char * sName)
+
+
+TranslatorSwedish (TranslatorAdapter_1_6_0) 34 methods to implement (13 %)
+-----------------
+
+ Implements 216 of the required methods (86 %).
Missing methods (should be implemented):
@@ -1078,12 +1433,16 @@ TranslatorSwedish (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trNoMatches()
virtual QCString trLoading()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
+ virtual QCString trServices()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
virtual QCString trGlobalNamespace()
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trDirDepGraph(const char * name)
virtual QCString trDirRelation(const char * name)
virtual QCString trMethodDocumentation()
@@ -1092,44 +1451,73 @@ TranslatorSwedish (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
virtual QCString trDirDependency(const char * name)
+ virtual QCString trInterfaces()
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorTurkish (TranslatorAdapter_1_7_5) 17 methods to implement (7 %)
+TranslatorTurkish (TranslatorAdapter_1_7_5) 25 methods to implement (10 %)
-----------------
- Implements 225 of the required methods (92 %).
+ Implements 225 of the required methods (90 %).
Missing methods (should be implemented):
virtual QCString trDetailLevel()
virtual QCString trTemplateParameters()
+ virtual QCString trServices()
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trDirDepGraph(const char * name)
virtual QCString trMethodDocumentation()
virtual QCString trEnumReference(const char * name)
virtual QCString trInheritedFrom(const char * members, const char * what)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
+ virtual QCString trInterfaces()
virtual QCString trCopyright()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods()
-TranslatorVietnamese (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
+TranslatorUkrainian (TranslatorAdapter_1_8_2) 8 methods to implement (3 %)
+-------------------
+
+ Implements 242 of the required methods (96 %).
+
+ Missing methods (should be implemented):
+
+ virtual QCString trServices()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ virtual QCString trServiceReference(const char * sName)
+ virtual QCString trConstantGroups()
+ virtual QCString trInterfaces()
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
+ virtual QCString trSingletonReference(const char * sName)
+
+
+TranslatorVietnamese (TranslatorAdapter_1_6_0) 34 methods to implement (13 %)
--------------------
- Implements 216 of the required methods (89 %).
+ Implements 216 of the required methods (86 %).
Missing methods (should be implemented):
@@ -1139,12 +1527,16 @@ TranslatorVietnamese (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trNoMatches()
virtual QCString trLoading()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
+ virtual QCString trServices()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
virtual QCString trGlobalNamespace()
+ virtual QCString trServiceReference(const char * sName)
virtual QCString trDesignOverview()
virtual QCString trAndMore(const QCString & number)
+ virtual QCString trConstantGroups()
virtual QCString trDirDepGraph(const char * name)
virtual QCString trDirRelation(const char * name)
virtual QCString trMethodDocumentation()
@@ -1153,9 +1545,13 @@ TranslatorVietnamese (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
virtual QCString trDirDependency(const char * name)
+ virtual QCString trInterfaces()
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
+ virtual QCString trServiceGeneratedFromFiles(bool single)
virtual QCString trEnumGeneratedFromFiles(bool single)
+ virtual QCString trConstantGroupReference(const char * namespaceName)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trExtendsClass()
+ virtual QCString trSingletonReference(const char * sName)
virtual QCString trInstanceMethods() \ No newline at end of file
diff --git a/doc/trouble.doc b/doc/trouble.doc
index 81604a2..133ccaf 100644
--- a/doc/trouble.doc
+++ b/doc/trouble.doc
@@ -51,7 +51,7 @@
\endverbatim
then doxygen will remove the braces and correctly parse the result.
<li>Not all names in code fragments that are included in the documentation
- are replaced by links (for instance when using \c SOURCE_BROWSER = \c YES)
+ are replaced by links (for instance when using \ref cfg_source_browser "SOURCE_BROWSER" = `YES`)
and links to overloaded members may point to the wrong member.
This also holds for the "Referenced by" list that is generated for
each function.
@@ -62,7 +62,8 @@
documentation, because of possible ambiguities or lack of
information about the context in which the code fragment is found.
<li>It is not possible to insert a non-member function f in a class A
- using the \\relates or \\relatesalso command, if class A already
+ using the \ref cmdrelates "\\relates" or \ref cmdrelatesalso "\\relatesalso"
+ command, if class A already
has a member with name f and the same argument list.
<li>There is only very limited support for member specialization at the
moment. It only works if there is a specialized template class as
diff --git a/qtools/Doxyfile b/qtools/Doxyfile
index 9c31af8..e194967 100644
--- a/qtools/Doxyfile
+++ b/qtools/Doxyfile
@@ -128,6 +128,7 @@ REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
CLANG_ASSISTED_PARSING = YES
+CLANG_OPTIONS =
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
@@ -184,6 +185,7 @@ USE_MATHJAX = NO
MATHJAX_FORMAT = HTML-CSS
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
MATHJAX_EXTENSIONS =
+MATHJAX_CODEFILE =
SEARCHENGINE = YES
SERVER_BASED_SEARCH = NO
EXTERNAL_SEARCH = NO
diff --git a/src/.gitignore b/src/.gitignore
new file mode 100644
index 0000000..3eae438
--- /dev/null
+++ b/src/.gitignore
@@ -0,0 +1,47 @@
+*~
+.*sw?
+\#*
+.DS_Store
+
+*.rej
+*.orig
+
+Makefile
+*.pro
+/.makeconfig
+/.tmakeconfig
+/VERSION
+/src/libdoxycfg.t
+/src/libdoxygen.t
+/packages/rpm/doxygen.spec
+/libmd5/Makefile.libmd5
+/qtools/Makefile.qtools
+/src/Makefile.doxygen
+/src/Makefile.libdoxycfg
+/src/Makefile.libdoxygen
+
+/bin
+/lib
+/objects
+/src/ce_lex.cpp
+/src/ce_parse.cpp
+/src/ce_parse.h
+/src/code.cpp
+/src/commentcnv.cpp
+/src/commentscan.cpp
+/src/config.cpp
+/src/declinfo.cpp
+/src/defargs.cpp
+/src/doctokenizer.cpp
+/src/fortrancode.cpp
+/src/fortranscanner.cpp
+/src/pre.cpp
+/src/pycode.cpp
+/src/pyscanner.cpp
+/src/scanner.cpp
+/src/tclscanner.cpp
+/src/version.cpp
+/src/vhdlcode.cpp
+/src/vhdlparser.cpp
+/src/vhdlparser.h
+/src/vhdlscanner.cpp
diff --git a/src/clangparser.cpp b/src/clangparser.cpp
index c9e192f..08ad05d 100644
--- a/src/clangparser.cpp
+++ b/src/clangparser.cpp
@@ -122,6 +122,19 @@ static QStrList getClangOptions()
return options;
}
+#if 0
+static void inclusionVisitor(CXFile includedFile,
+ CXSourceLocation* inclusionStack,
+ unsigned includeLen,
+ CXClientData clientData)
+{
+ const char *fileName = (const char *)clientData;
+ CXString incFileName = clang_getFileName(includedFile);
+ printf("--- file %s includes %s\n",fileName,clang_getCString(incFileName));
+ clang_disposeString(incFileName);
+}
+#endif
+
void ClangParser::start(const char *fileName)
{
static bool clangAssistedParsing = Config_getBool("CLANG_ASSISTED_PARSING");
@@ -177,6 +190,10 @@ void ClangParser::start(const char *fileName)
if (p->tu)
{
+ //clang_getInclusions(p->tu,
+ // inclusionVisitor,
+ // (CXClientData)fileName
+ // );
for (uint i=0, n=clang_getNumDiagnostics(p->tu); i!=n; ++i)
{
CXDiagnostic diag = clang_getDiagnostic(p->tu, i);
@@ -610,7 +627,7 @@ void ClangParser::writeSources(OutputList &ol,FileDef *fd)
char const *s = clang_getCString(tokenString);
CXCursorKind cursorKind = clang_getCursorKind(p->cursors[i]);
CXTokenKind tokenKind = clang_getTokenKind(p->tokens[i]);
- printf("%d:%d %s cursorKind=%d tokenKind=%d\n",line,column,s,cursorKind,tokenKind);
+ //printf("%d:%d %s cursorKind=%d tokenKind=%d\n",line,column,s,cursorKind,tokenKind);
switch (tokenKind)
{
case CXToken_Keyword:
diff --git a/src/classdef.cpp b/src/classdef.cpp
index bb29882..dd32918 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -187,7 +187,7 @@ class ClassDefImpl
bool isGeneric;
- int spec;
+ uint64 spec;
};
void ClassDefImpl::init(const char *defFileName, const char *name,
@@ -435,6 +435,12 @@ void ClassDef::internalInsertMember(MemberDef *md,
{
switch (md->memberType())
{
+ case MemberType_Service: // UNO IDL
+ addMemberToList(MemberListType_services,md,TRUE);
+ break;
+ case MemberType_Interface: // UNO IDL
+ addMemberToList(MemberListType_interfaces,md,TRUE);
+ break;
case MemberType_Signal: // Qt specific
addMemberToList(MemberListType_signals,md,TRUE);
break;
@@ -581,6 +587,12 @@ void ClassDef::internalInsertMember(MemberDef *md,
{
switch (md->memberType())
{
+ case MemberType_Service: // UNO IDL
+ addMemberToList(MemberListType_serviceMembers,md,FALSE);
+ break;
+ case MemberType_Interface: // UNO IDL
+ addMemberToList(MemberListType_interfaceMembers,md,FALSE);
+ break;
case MemberType_Property:
addMemberToList(MemberListType_propertyMembers,md,FALSE);
break;
@@ -1035,6 +1047,14 @@ void ClassDef::showUsedFiles(OutputList &ol)
{
ol.parseText(theTranslator->trEnumGeneratedFromFiles(m_impl->files.count()==1));
}
+ else if (m_impl->compType==Service)
+ {
+ ol.parseText(theTranslator->trServiceGeneratedFromFiles(m_impl->files.count()==1));
+ }
+ else if (m_impl->compType==Singleton)
+ {
+ ol.parseText(theTranslator->trSingletonGeneratedFromFiles(m_impl->files.count()==1));
+ }
else
{
ol.parseText(theTranslator->trGeneratedFromFiles(
@@ -1811,6 +1831,7 @@ void ClassDef::addClassAttributes(OutputList &ol)
if (isFinal()) sl.append("final");
if (isSealed()) sl.append("sealed");
if (isAbstract()) sl.append("abstract");
+ if (getLanguage()==SrcLangExt_IDL && isPublished()) sl.append("published");
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
@@ -1923,10 +1944,12 @@ void ClassDef::writeDocumentationContents(OutputList &ol,const QCString & /*page
writeAuthorSection(ol);
break;
case LayoutDocEntry::NamespaceNestedNamespaces:
+ case LayoutDocEntry::NamespaceNestedConstantGroups:
case LayoutDocEntry::NamespaceClasses:
case LayoutDocEntry::NamespaceInlineClasses:
case LayoutDocEntry::FileClasses:
case LayoutDocEntry::FileNamespaces:
+ case LayoutDocEntry::FileConstantGroups:
case LayoutDocEntry::FileIncludes:
case LayoutDocEntry::FileIncludeGraph:
case LayoutDocEntry::FileIncludedByGraph:
@@ -1980,6 +2003,14 @@ void ClassDef::writeDocumentation(OutputList &ol)
{
pageTitle = theTranslator->trEnumReference(displayName());
}
+ else if (m_impl->compType==Service)
+ {
+ pageTitle = theTranslator->trServiceReference(displayName());
+ }
+ else if (m_impl->compType==Singleton)
+ {
+ pageTitle = theTranslator->trSingletonReference(displayName());
+ }
else
{
pageTitle = theTranslator->trCompoundReference(displayName(),
@@ -2288,6 +2319,8 @@ void ClassDef::writeMemberList(OutputList &ol)
md->isFriend() || md->isRelated() || md->isExplicit() ||
md->isMutable() || (md->isInline() && Config_getBool("INLINE_INFO")) ||
md->isSignal() || md->isSlot() ||
+ (getLanguage()==SrcLangExt_IDL &&
+ (md->isOptional() || md->isAttribute() || md->isUNOProperty())) ||
md->isStatic() || lang==SrcLangExt_VHDL
)
&& memberWritten)
@@ -2315,6 +2348,18 @@ void ClassDef::writeMemberList(OutputList &ol)
if (md->isStatic()) sl.append("static");
if (md->isSignal()) sl.append("signal");
if (md->isSlot()) sl.append("slot");
+// this is the extra member page
+ if (md->isOptional()) sl.append("optional");
+ if (md->isAttribute()) sl.append("attribute");
+ if (md->isUNOProperty()) sl.append("property");
+ if (md->isReadonly()) sl.append("readonly");
+ if (md->isBound()) sl.append("bound");
+ if (md->isRemovable()) sl.append("removable");
+ if (md->isConstrained()) sl.append("constrained");
+ if (md->isTransient()) sl.append("transient");
+ if (md->isMaybeVoid()) sl.append("maybevoid");
+ if (md->isMaybeDefault()) sl.append("maybedefault");
+ if (md->isMaybeAmbiguous())sl.append("maybeambiguous");
}
const char *s=sl.first();
while (s)
@@ -3159,7 +3204,7 @@ void ClassDef::determineImplUsageRelation()
cd=getResolvedClass(getNamespaceDef()->name()+"::"+usedClassName,0,&templSpec);
}
if (cd==0) cd=getResolvedClass(name()+"::"+usedClassName,0,&templSpec);
- if (cd==0) cd=getResolvedClass(usedClassName,0,&templSpec); // TODO: also try inbetween scopes!
+ if (cd==0) cd=getResolvedClass(usedClassName,0,&templSpec); // TODO: also try in-between scopes!
//printf("Search for class %s result=%p\n",usedClassName.data(),cd);
if (cd) // class exists
{
@@ -3221,7 +3266,7 @@ void ClassDef::addUsedInterfaceClasses(MemberDef *md,const char *typeStr)
while ((i=re.match(type,p,&l))!=-1) // for each class name in the type
{
ClassDef *cd=getClass(name()+"::"+type.mid(i,l));
- if (cd==0) cd=getClass(type.mid(i,l)); // TODO: also try inbetween scopes!
+ if (cd==0) cd=getClass(type.mid(i,l)); // TODO: also try in-between scopes!
if (cd && cd!=this && !isBaseClass(cd))
{
if (m_impl->usesIntfClassDict==0)
@@ -3317,6 +3362,8 @@ QCString ClassDef::compoundTypeString() const
case Protocol: return "protocol";
case Category: return "category";
case Exception: return "exception";
+ case Service: return "service";
+ case Singleton: return "singleton";
default: return "unknown";
}
}
@@ -4337,6 +4384,11 @@ bool ClassDef::isSealed() const
return m_impl->spec&Entry::Sealed;
}
+bool ClassDef::isPublished() const
+{
+ return m_impl->spec&Entry::Published;
+}
+
bool ClassDef::isObjectiveC() const
{
return getLanguage()==SrcLangExt_ObjC;
@@ -4537,7 +4589,7 @@ bool ClassDef::isGeneric() const
return m_impl->isGeneric;
}
-void ClassDef::setClassSpecifier(int spec)
+void ClassDef::setClassSpecifier(uint64 spec)
{
m_impl->spec = spec;
}
diff --git a/src/classdef.h b/src/classdef.h
index 9db5cae..f4d5962 100644
--- a/src/classdef.h
+++ b/src/classdef.h
@@ -48,7 +48,8 @@ class ArgumentList;
/** A class representing of a compound symbol.
*
- * A compound can be a class, struct, union, interface, or exception.
+ * A compound can be a class, struct, union, interface, service, singleton,
+ * or exception.
* \note This class should be renamed to CompoundDef
*/
class ClassDef : public Definition
@@ -61,7 +62,9 @@ class ClassDef : public Definition
Interface, //=Entry::INTERFACE_SEC,
Protocol, //=Entry::PROTOCOL_SEC,
Category, //=Entry::CATEGORY_SEC,
- Exception //=Entry::EXCEPTION_SEC
+ Exception, //=Entry::EXCEPTION_SEC
+ Service, //=Entry::CLASS_SEC
+ Singleton, //=Entry::CLASS_SEC
};
/** Creates a new compound definition.
@@ -256,6 +259,9 @@ class ClassDef : public Definition
/** Returns TRUE if this class is marked as sealed */
bool isSealed() const;
+ /** Returns TRUE if this class is marked as published */
+ bool isPublished() const;
+
/** Returns TRUE if this class represents an Objective-C 2.0 extension (nameless category) */
bool isExtension() const;
@@ -320,7 +326,7 @@ class ClassDef : public Definition
void setIsStatic(bool b);
void setCompoundType(CompoundType t);
void setClassName(const char *name);
- void setClassSpecifier(int spec);
+ void setClassSpecifier(uint64 spec);
void setTemplateArguments(ArgumentList *al);
void setTemplateBaseClassNames(QDict<int> *templateNames);
diff --git a/src/commentcnv.l b/src/commentcnv.l
index 97f5194..6e7fa30 100644
--- a/src/commentcnv.l
+++ b/src/commentcnv.l
@@ -43,12 +43,6 @@
#define ADDCHAR(c) g_outBuf->addChar(c)
#define ADDARRAY(a,s) g_outBuf->addArray(a,s)
-enum GuardType
-{
- Guard_Cond,
- Guard_CondNot
-};
-
struct CondCtx
{
CondCtx(int line,QCString id,bool b)
@@ -85,8 +79,6 @@ static bool g_lastEscaped;
static int g_lastBlockContext;
static bool g_pythonDocString;
-static GuardType guardType; // kind of guard for conditional section
-
static SrcLangExt g_lang;
static bool isFixedForm; // For Fortran
@@ -181,22 +173,13 @@ static inline void copyToOutput(const char *s,int len)
static void startCondSection(const char *sectId)
{
+ //printf("startCondSection: skip=%d stack=%d\n",g_skip,g_condStack.count());
CondParser prs;
bool expResult = prs.parse(g_fileName,g_lineNr,sectId);
g_condStack.push(new CondCtx(g_lineNr,sectId,g_skip));
- if (guardType == Guard_Cond) // found @cond
+ if (!expResult) // not enabled
{
- if (!expResult) // not enabled
- {
- g_skip=TRUE;
- }
- }
- else if (guardType == Guard_CondNot) // found @notcond
- {
- if (expResult) // enabled
- {
- g_skip=TRUE;
- }
+ g_skip=TRUE;
}
}
@@ -212,6 +195,7 @@ static void endCondSection()
CondCtx *ctx = g_condStack.pop();
g_skip=ctx->skip;
}
+ //printf("endCondSection: skip=%d stack=%d\n",g_skip,g_condStack.count());
}
/** copies string \a s with length \a len to the output, while
@@ -721,7 +705,6 @@ void replaceComment(int offset);
}
<CComment,ReadLine>[\\@]"cond"[ \t]+ { // conditional section
g_condCtx = YY_START;
- guardType = Guard_Cond;
BEGIN(CondLine);
}
<CComment,ReadLine>[\\@]"endcond"/[^a-z_A-Z0-9] { // end of conditional section
@@ -769,7 +752,6 @@ void replaceComment(int offset);
<CondLine>[ \t]*
<CComment,ReadLine>[\\@]"cond"[ \t\r]*/\n |
<CondLine>. { // forgot section id?
- guardType = Guard_Cond;
if (YY_START!=CondLine) g_condCtx=YY_START;
bool oldSkip=g_skip;
startCondSection(" "); // fake section id causing the section to be hidden unconditionally
diff --git a/src/commentscan.l b/src/commentscan.l
index 9b2994a..4ac850e 100644
--- a/src/commentscan.l
+++ b/src/commentscan.l
@@ -665,7 +665,7 @@ static void stripTrailingWhiteSpace(QCString &s)
while (i>=0 && ((c = s.at(i))==' ' || c=='\t' || c=='\r')) i--;
if (i!=(int)len-1)
{
- s.resize(i+2); // string upto and including char at pos i and \0 terminator
+ s.resize(i+2); // string up to and including char at pos i and \0 terminator
}
}
@@ -877,7 +877,7 @@ LABELID [a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF\-]*
CITEID [a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF\-:/]*
SCOPEID {ID}({ID}*{BN}*"::"{BN}*)*({ID}?)
SCOPENAME "$"?(({ID}?{BN}*("::"|"."){BN}*)*)((~{BN}*)?{ID})
-MAILADR [a-z_A-Z0-9.+\-]+"@"[a-z_A-Z0-9\-]+("."[a-z_A-Z0-9\-]+)+[a-z_A-Z0-9\-]+
+MAILADDR [a-z_A-Z0-9.+\-]+"@"[a-z_A-Z0-9\-]+("."[a-z_A-Z0-9\-]+)+[a-z_A-Z0-9\-]+
RCSTAG "$"{ID}":"[^\n$]+"$"
%option noyywrap
@@ -939,7 +939,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
* words and whitespace and other characters (#,?!, etc).
* grouping commands (e.g. @{ and @})
* language switch (e.g. \~english or \~).
- * mail adress (e.g. dimitri@stack.nl).
+ * mail address (e.g. dimitri@stack.nl).
* quoted text, such as "foo@bar"
* XML commands, <summary></summary><remarks></remarks>
*/
@@ -950,7 +950,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
<Comment>{CMD}{CMD}"~"[a-z_A-Z]* { // escaped command
addOutput(yytext);
}
-<Comment>{MAILADR} { // mail adress
+<Comment>{MAILADDR} { // mail address
addOutput(yytext);
}
<Comment>"\""[^"\n]*"\"" { // quoted text
diff --git a/src/compound.xsd b/src/compound.xsd
index fd24fc9..d623c5f 100644
--- a/src/compound.xsd
+++ b/src/compound.xsd
@@ -172,6 +172,18 @@
<xsd:attribute name="required" type="DoxBool" use="optional"/>
<!-- Objective-C 2.0 property accessor -->
<xsd:attribute name="accessor" type="DoxAccessor" use="optional"/>
+ <!-- UNO IDL -->
+ <xsd:attribute name="attribute" type="DoxBool" use="optional"/>
+ <xsd:attribute name="property" type="DoxBool" use="optional"/>
+ <xsd:attribute name="readonly" type="DoxBool" use="optional"/>
+ <xsd:attribute name="bound" type="DoxBool" use="optional"/>
+ <xsd:attribute name="removable" type="DoxBool" use="optional"/>
+ <xsd:attribute name="contrained" type="DoxBool" use="optional"/>
+ <xsd:attribute name="transient" type="DoxBool" use="optional"/>
+ <xsd:attribute name="maybevoid" type="DoxBool" use="optional"/>
+ <xsd:attribute name="maybedefault" type="DoxBool" use="optional"/>
+ <xsd:attribute name="maybeambiguous" type="DoxBool" use="optional"/>
+
</xsd:complexType>
<xsd:complexType name="descriptionType" mixed="true">
@@ -742,6 +754,8 @@
<xsd:enumeration value="friend" />
<xsd:enumeration value="dcop" />
<xsd:enumeration value="slot" />
+ <xsd:enumeration value="interface" />
+ <xsd:enumeration value="service" />
</xsd:restriction>
</xsd:simpleType>
@@ -771,6 +785,10 @@
<xsd:enumeration value="protocol" />
<xsd:enumeration value="category" />
<xsd:enumeration value="exception" />
+ <xsd:enumeration value="service" />
+ <xsd:enumeration value="singleton" />
+ <xsd:enumeration value="module" />
+ <xsd:enumeration value="type" />
<xsd:enumeration value="file" />
<xsd:enumeration value="namespace" />
<xsd:enumeration value="group" />
diff --git a/src/compound_xsd.h b/src/compound_xsd.h
index 7a726ae..8ec3633 100644
--- a/src/compound_xsd.h
+++ b/src/compound_xsd.h
@@ -172,6 +172,18 @@
" <xsd:attribute name=\"required\" type=\"DoxBool\" use=\"optional\"/>\n"
" <!-- Objective-C 2.0 property accessor -->\n"
" <xsd:attribute name=\"accessor\" type=\"DoxAccessor\" use=\"optional\"/>\n"
+" <!-- UNO IDL -->\n"
+" <xsd:attribute name=\"attribute\" type=\"DoxBool\" use=\"optional\"/>\n"
+" <xsd:attribute name=\"property\" type=\"DoxBool\" use=\"optional\"/>\n"
+" <xsd:attribute name=\"readonly\" type=\"DoxBool\" use=\"optional\"/>\n"
+" <xsd:attribute name=\"bound\" type=\"DoxBool\" use=\"optional\"/>\n"
+" <xsd:attribute name=\"removable\" type=\"DoxBool\" use=\"optional\"/>\n"
+" <xsd:attribute name=\"contrained\" type=\"DoxBool\" use=\"optional\"/>\n"
+" <xsd:attribute name=\"transient\" type=\"DoxBool\" use=\"optional\"/>\n"
+" <xsd:attribute name=\"maybevoid\" type=\"DoxBool\" use=\"optional\"/>\n"
+" <xsd:attribute name=\"maybedefault\" type=\"DoxBool\" use=\"optional\"/>\n"
+" <xsd:attribute name=\"maybeambiguous\" type=\"DoxBool\" use=\"optional\"/>\n"
+"\n"
" </xsd:complexType>\n"
"\n"
" <xsd:complexType name=\"descriptionType\" mixed=\"true\">\n"
@@ -742,6 +754,8 @@
" <xsd:enumeration value=\"friend\" />\n"
" <xsd:enumeration value=\"dcop\" />\n"
" <xsd:enumeration value=\"slot\" />\n"
+" <xsd:enumeration value=\"interface\" />\n"
+" <xsd:enumeration value=\"service\" />\n"
" </xsd:restriction>\n"
" </xsd:simpleType>\n"
"\n"
@@ -771,6 +785,10 @@
" <xsd:enumeration value=\"protocol\" />\n"
" <xsd:enumeration value=\"category\" />\n"
" <xsd:enumeration value=\"exception\" />\n"
+" <xsd:enumeration value=\"service\" />\n"
+" <xsd:enumeration value=\"singleton\" />\n"
+" <xsd:enumeration value=\"module\" />\n"
+" <xsd:enumeration value=\"type\" />\n"
" <xsd:enumeration value=\"file\" />\n"
" <xsd:enumeration value=\"namespace\" />\n"
" <xsd:enumeration value=\"group\" />\n"
diff --git a/src/config.h b/src/config.h
index a33909c..47bef4c 100644
--- a/src/config.h
+++ b/src/config.h
@@ -67,6 +67,7 @@ class ConfigOption
QCString dependsOn() const { return m_dependency; }
void addDependency(const char *dep) { m_dependency = dep; }
void setEncoding(const QCString &e) { m_encoding = e; }
+ void setUserComment(const QCString &u) { m_userComment = u; }
protected:
virtual void writeTemplate(FTextStream &t,bool sl,bool upd) = 0;
@@ -75,7 +76,7 @@ class ConfigOption
virtual void writeXML(FTextStream&) {}
virtual void init() {}
- QCString convertToComment(const QCString &s);
+ QCString convertToComment(const QCString &s, const QCString &u);
void writeBoolValue(FTextStream &t,bool v);
void writeIntValue(FTextStream &t,int i);
void writeStringValue(FTextStream &t,QCString &s);
@@ -86,6 +87,7 @@ class ConfigOption
QCString m_doc;
QCString m_dependency;
QCString m_encoding;
+ QCString m_userComment;
OptionType m_kind;
};
@@ -135,9 +137,13 @@ class ConfigList : public ConfigOption
if (!sl)
{
t << endl;
- t << convertToComment(m_doc);
+ t << convertToComment(m_doc, m_userComment);
t << endl;
}
+ else if (!m_userComment.isEmpty())
+ {
+ t << convertToComment("", m_userComment);
+ }
t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
writeStringList(t,m_value);
t << "\n";
@@ -175,9 +181,13 @@ class ConfigEnum : public ConfigOption
if (!sl)
{
t << endl;
- t << convertToComment(m_doc);
+ t << convertToComment(m_doc, m_userComment);
t << endl;
}
+ else if (!m_userComment.isEmpty())
+ {
+ t << convertToComment("", m_userComment);
+ }
t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
writeStringValue(t,m_value);
t << "\n";
@@ -216,9 +226,13 @@ class ConfigString : public ConfigOption
if (!sl)
{
t << endl;
- t << convertToComment(m_doc);
+ t << convertToComment(m_doc, m_userComment);
t << endl;
}
+ else if (!m_userComment.isEmpty())
+ {
+ t << convertToComment("", m_userComment);
+ }
t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
writeStringValue(t,m_value);
t << "\n";
@@ -259,9 +273,13 @@ class ConfigInt : public ConfigOption
if (!sl)
{
t << endl;
- t << convertToComment(m_doc);
+ t << convertToComment(m_doc, m_userComment);
t << endl;
}
+ else if (!m_userComment.isEmpty())
+ {
+ t << convertToComment("", m_userComment);
+ }
t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
if (upd && !m_valueString.isEmpty())
{
@@ -306,9 +324,13 @@ class ConfigBool : public ConfigOption
if (!sl)
{
t << endl;
- t << convertToComment(m_doc);
+ t << convertToComment(m_doc, m_userComment);
t << endl;
}
+ else if (!m_userComment.isEmpty())
+ {
+ t << convertToComment("", m_userComment);
+ }
t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "=";
if (upd && !m_valueString.isEmpty())
{
@@ -570,6 +592,22 @@ class Config
*/
void create();
+ /*! Append user comment
+ */
+ void appendUserComment(const QCString &u)
+ {
+ m_userComment += u;
+ }
+ /*! Take the user comment and reset it internally
+ * \returns user comment
+ */
+ QCString takeUserComment()
+ {
+ QCString result=m_userComment;
+ m_userComment.resize(0);
+ return result;
+ }
+
protected:
Config()
@@ -594,6 +632,7 @@ class Config
QList<ConfigOption> *m_obsolete;
QDict<ConfigOption> *m_dict;
static Config *m_instance;
+ QCString m_userComment;
bool m_initialized;
};
diff --git a/src/config.l b/src/config.l
index b32fd76..0c2bcbf 100644
--- a/src/config.l
+++ b/src/config.l
@@ -77,11 +77,11 @@ static QCString configStringRecode(
/* -----------------------------------------------------------------
*/
-QCString ConfigOption::convertToComment(const QCString &s)
+QCString ConfigOption::convertToComment(const QCString &s, const QCString &u)
{
+ //printf("convertToComment(%s)=%s\n",s.data(),u.data());
QCString result;
- if (s.isEmpty()) return result;
- else
+ if (!s.isEmpty())
{
QCString tmp=s.stripWhiteSpace();
char *p=tmp.data();
@@ -101,6 +101,11 @@ QCString ConfigOption::convertToComment(const QCString &s)
}
result+='\n';
}
+ if (!u.isEmpty())
+ {
+ if (!result.isEmpty()) result+='\n';
+ result+= u;
+ }
return result;
}
@@ -589,7 +594,8 @@ static void readIncludeFile(const char *incName)
%%
<*>\0x0d
-<Start,GetString,GetStrList,GetBool,SkipInvalid>"#" { BEGIN(SkipComment); }
+<Start,GetString,GetStrList,GetBool,SkipInvalid>"##".*"\n" { config->appendUserComment(yytext);}
+<Start,GetString,GetStrList,GetBool,SkipInvalid>"#" { BEGIN(SkipComment); }
<Start>[a-z_A-Z][a-z_A-Z0-9]*[ \t]*"=" { QCString cmd=yytext;
cmd=cmd.left(cmd.length()-1).stripWhiteSpace();
ConfigOption *option = config->get(cmd);
@@ -601,6 +607,7 @@ static void readIncludeFile(const char *incName)
}
else // known tag
{
+ option->setUserComment(config->takeUserComment());
option->setEncoding(encoding);
switch(option->kind())
{
@@ -654,6 +661,7 @@ static void readIncludeFile(const char *incName)
}
else // known tag
{
+ option->setUserComment(config->takeUserComment());
switch(option->kind())
{
case ConfigOption::O_Info:
@@ -798,6 +806,8 @@ void Config::writeTemplate(FTextStream &t,bool sl,bool upd)
t << "# This file describes the settings to be used by the documentation system\n";
t << "# doxygen (www.doxygen.org) for a project.\n";
t << "#\n";
+ t << "# All text after a double hash (##) is considered a comment and is placed\n";
+ t << "# in front of the TAG it is preceding .\n";
t << "# All text after a hash (#) is considered a comment and will be ignored.\n";
t << "# The format is:\n";
t << "# TAG = value [value, ...]\n";
@@ -811,6 +821,12 @@ void Config::writeTemplate(FTextStream &t,bool sl,bool upd)
option->writeTemplate(t,sl,upd);
option = m_options->next();
}
+ /* print last lines of user comment that were at the end of the file */
+ if (m_userComment)
+ {
+ t << "\n";
+ t << m_userComment;
+ }
}
void Config::writeXML(FTextStream &t)
@@ -1130,6 +1146,21 @@ void Config::check()
exit(1);
}
}
+ // Test to see if MathJax code file is valid
+ if (Config_getBool("USE_MATHJAX"))
+ {
+ QCString &MathJaxCodefile = Config_getString("MATHJAX_CODEFILE");
+ if (!MathJaxCodefile.isEmpty())
+ {
+ QFileInfo fi(MathJaxCodefile);
+ if (!fi.exists())
+ {
+ config_err("error: tag MATHJAX_CODEFILE file `%s' "
+ "does not exist\n",MathJaxCodefile.data());
+ exit(1);
+ }
+ }
+ }
// Test to see if LaTeX header is valid
QCString &latexHeaderFile = Config_getString("LATEX_HEADER");
if (!latexHeaderFile.isEmpty())
@@ -1506,6 +1537,24 @@ void Config::init()
option->init();
option = m_options->next();
}
+
+ // sanity check if all depends relations are valid
+ option = m_options->first();
+ while (option)
+ {
+ QCString depName = option->dependsOn();
+ if (!depName.isEmpty())
+ {
+ ConfigOption * opt = Config::instance()->get(depName);
+ if (opt==0)
+ {
+ config_err("Config option '%s' has invalid depends relation on unknown option '%s'\n",
+ option->name().data(),depName.data());
+ exit(1);
+ }
+ }
+ option = m_options->next();
+ }
}
void Config::create()
diff --git a/src/config.xml b/src/config.xml
index 53e47da..db51172 100644
--- a/src/config.xml
+++ b/src/config.xml
@@ -819,7 +819,7 @@ for better parsing at the cost of reduced performance. This can be particularly
helpful with template rich C++ code for which doxygen&apos;s built-in
parser lacks the necessairy type information.
' defval='0'/>
- <option type='string' id='CLANG_OPTIONS' settings='USE_LIBCLANG' docs='
+ <option type='string' id='CLANG_OPTIONS' setting='USE_LIBCLANG' docs='
If clang assisted parsing is enabled you can provide the compiler with command
line options that you would normally use when invoking the compiler. Note that
the include paths will be set by doxygen based on the files and directory
@@ -923,7 +923,7 @@ the luminance component of the colors in the HTML output. Values below
the output darker. The value divided by 100 is the actual gamma applied,
so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
and 100 does not change the gamma.
-' minval='40' maxval='240' defval='80'/>
+' minval='40' maxval='240' defval='80' depends='GENERATE_HTML'/>
<option type='bool' id='HTML_TIMESTAMP' docs='
If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
page will contain the date and time when the page was generated. Setting
@@ -943,7 +943,7 @@ visible (unless a fully collapsed tree already exceeds this amount).
So setting the number of entries 1 will produce a full collapsed tree by
default. 0 is a special value representing an infinite number of entries
and will result in a full expanded tree by default.
-' minval='0' maxval='9999' defval='100'/>
+' minval='0' maxval='9999' defval='100' depends='GENERATE_HTML'/>
<option type='bool' id='GENERATE_DOCSET' docs='
If the GENERATE_DOCSET tag is set to YES, additional index files
will be generated that can be used as input for Apple&apos;s Xcode 3
@@ -1130,7 +1130,7 @@ configure the path to it using the MATHJAX_RELPATH option.
' defval='0'/>
<option type='enum' id='MATHJAX_FORMAT' defval='HTML-CSS' docs='
When MathJax is enabled you can set the default output format to be used for
-thA MathJax output. Supported types are HTML-CSS, NativeMML (i.e. MathML) and
+the MathJax output. Supported types are HTML-CSS, NativeMML (i.e. MathML) and
SVG. The default value is HTML-CSS, which is slower, but has the best
compatibility.
'>
@@ -1153,6 +1153,11 @@ The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
names that should be enabled during MathJax rendering.
' depends='USE_MATHJAX'>
</option>
+ <option type='string' id='MATHJAX_CODEFILE' format='string' docs='
+The MATHJAX_CODEFILE tag can be used to specify a file with javascript
+pieces of code that will be used on startup of the MathJax code.
+' depends='USE_MATHJAX'>
+ </option>
<option type='bool' id='SEARCHENGINE' docs='
When the SEARCHENGINE tag is enabled doxygen will generate a search box
for the HTML output. The underlying search engine uses javascript
@@ -1300,7 +1305,7 @@ such as SOURCE_BROWSER.
The LATEX_BIB_STYLE tag can be used to specify the style to use for the
bibliography, e.g. plainnat, or ieeetr. The default style is &quot;plain&quot;. See
http://en.wikipedia.org/wiki/BibTeX for more info.
-' defval='plain'/>
+' defval='plain' depends='GENERATE_LATEX'/>
</group>
<group name='RTF' docs='configuration options related to the RTF output'>
<option type='bool' id='GENERATE_RTF' docs='
@@ -1575,7 +1580,7 @@ allowed to run in parallel. When set to 0 (the default) doxygen will
base this on the number of processors available in the system. You can set it
explicitly to a value larger than 0 to get control over the balance
between CPU load and processing speed.
-' defval='0' minval='0' maxval='32'/>
+' defval='0' minval='0' maxval='32' dependes='HAVE_DOT'/>
<option type='string' id='DOT_FONTNAME' format='string' docs='
By default doxygen will use the Helvetica font for all dot files that
doxygen generates. When you want a differently looking font you can specify
@@ -1619,7 +1624,7 @@ If the UML_LOOK tag is enabled, the fields and methods are shown inside
the class node. If there are many fields or methods and many nodes the
graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS
threshold limits the number of items for each type to make the size more
-managable. Set this to 0 for no limit. Note that the threshold may be
+manageable. Set this to 0 for no limit. Note that the threshold may be
exceeded by 50% before the limit is enforced.
' defval='10' minval='0' maxval='100' depends='HAVE_DOT'/>
<option type='bool' id='TEMPLATE_RELATIONS' docs='
diff --git a/src/configoptions.cpp b/src/configoptions.cpp
index e4eb361..327c883 100644
--- a/src/configoptions.cpp
+++ b/src/configoptions.cpp
@@ -1162,6 +1162,7 @@ void addConfigOptions(Config *cfg)
FALSE
);
#endif
+#if USE_LIBCLANG
//----
cs = cfg->addString(
"CLANG_OPTIONS",
@@ -1171,6 +1172,7 @@ void addConfigOptions(Config *cfg)
"specified at INPUT and INCLUDE_PATH."
);
cs->addDependency("CLANG_ASSISTED_PARSING");
+#endif
//---------------------------------------------------------------------------
cfg->addInfo("Index","configuration options related to the alphabetical class index");
//---------------------------------------------------------------------------
@@ -1324,6 +1326,7 @@ void addConfigOptions(Config *cfg)
"and 100 does not change the gamma.",
40,240,80
);
+ ci->addDependency("GENERATE_HTML");
//----
cb = cfg->addBool(
"HTML_TIMESTAMP",
@@ -1355,6 +1358,7 @@ void addConfigOptions(Config *cfg)
"and will result in a full expanded tree by default.",
0,9999,100
);
+ ci->addDependency("GENERATE_HTML");
//----
cb = cfg->addBool(
"GENERATE_DOCSET",
@@ -1658,7 +1662,7 @@ void addConfigOptions(Config *cfg)
ce = cfg->addEnum(
"MATHJAX_FORMAT",
"When MathJax is enabled you can set the default output format to be used for\n"
- "thA MathJax output. Supported types are HTML-CSS, NativeMML (i.e. MathML) and\n"
+ "the MathJax output. Supported types are HTML-CSS, NativeMML (i.e. MathML) and\n"
"SVG. The default value is HTML-CSS, which is slower, but has the best\n"
"compatibility.",
"HTML-CSS"
@@ -1688,6 +1692,13 @@ void addConfigOptions(Config *cfg)
);
cl->addDependency("USE_MATHJAX");
//----
+ cs = cfg->addString(
+ "MATHJAX_CODEFILE",
+ "The MATHJAX_CODEFILE tag can be used to specify a file with javascript\n"
+ "pieces of code that will be used on startup of the MathJax code."
+ );
+ cs->addDependency("USE_MATHJAX");
+ //----
cb = cfg->addBool(
"SEARCHENGINE",
"When the SEARCHENGINE tag is enabled doxygen will generate a search box\n"
@@ -1924,6 +1935,7 @@ void addConfigOptions(Config *cfg)
"http://en.wikipedia.org/wiki/BibTeX for more info."
);
cs->setDefaultValue("plain");
+ cs->addDependency("GENERATE_LATEX");
//---------------------------------------------------------------------------
cfg->addInfo("RTF","configuration options related to the RTF output");
//---------------------------------------------------------------------------
@@ -2424,7 +2436,7 @@ void addConfigOptions(Config *cfg)
"the class node. If there are many fields or methods and many nodes the\n"
"graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS\n"
"threshold limits the number of items for each type to make the size more\n"
- "managable. Set this to 0 for no limit. Note that the threshold may be\n"
+ "manageable. Set this to 0 for no limit. Note that the threshold may be\n"
"exceeded by 50% before the limit is enforced.",
0,100,10
);
diff --git a/src/defgen.cpp b/src/defgen.cpp
index 52f91c7..62a22e2 100644
--- a/src/defgen.cpp
+++ b/src/defgen.cpp
@@ -96,6 +96,8 @@ void generateDEFForMember(MemberDef *md,
case MemberType_Variable: memType="variable"; break;
case MemberType_Typedef: memType="typedef"; break;
case MemberType_Enumeration: memType="enum"; break;
+ case MemberType_Interface: memType="interface"; break;
+ case MemberType_Service: memType="service"; break;
case MemberType_Function: memType="function"; isFunc=TRUE; break;
case MemberType_Signal: memType="signal"; isFunc=TRUE; break;
case MemberType_Friend: memType="friend"; isFunc=TRUE; break;
@@ -428,6 +430,8 @@ void generateDEFForClass(ClassDef *cd,FTextStream &t)
if (numMembers>0)
{
generateDEFClassSection(cd,t,cd->getMemberList(MemberListType_pubTypes),"public-type");
+ generateDEFClassSection(cd,t,cd->getMemberList(MemberListType_interfaces),"interfaces");
+ generateDEFClassSection(cd,t,cd->getMemberList(MemberListType_services),"services");
generateDEFClassSection(cd,t,cd->getMemberList(MemberListType_pubMethods),"public-func");
generateDEFClassSection(cd,t,cd->getMemberList(MemberListType_pubAttribs),"public-attrib");
generateDEFClassSection(cd,t,cd->getMemberList(MemberListType_pubSlots),"public-slot");
diff --git a/src/dirdef.cpp b/src/dirdef.cpp
index cf3d69e..a63de25 100644
--- a/src/dirdef.cpp
+++ b/src/dirdef.cpp
@@ -403,10 +403,12 @@ void DirDef::writeDocumentation(OutputList &ol)
case LayoutDocEntry::ClassAllMembersLink:
case LayoutDocEntry::ClassUsedFiles:
case LayoutDocEntry::NamespaceNestedNamespaces:
+ case LayoutDocEntry::NamespaceNestedConstantGroups:
case LayoutDocEntry::NamespaceClasses:
case LayoutDocEntry::NamespaceInlineClasses:
case LayoutDocEntry::FileClasses:
case LayoutDocEntry::FileNamespaces:
+ case LayoutDocEntry::FileConstantGroups:
case LayoutDocEntry::FileIncludes:
case LayoutDocEntry::FileIncludeGraph:
case LayoutDocEntry::FileIncludedByGraph:
diff --git a/src/docbookgen.cpp b/src/docbookgen.cpp
index 335c8dc..8cd1063 100644
--- a/src/docbookgen.cpp
+++ b/src/docbookgen.cpp
@@ -433,21 +433,22 @@ static void generateDocbookForMember(MemberDef *md,FTextStream &t,Definition *de
// group members are only visible in their group
//if (def->definitionType()!=Definition::TypeGroup && md->getGroupDef()) return;
QCString memType;
- bool isFunc=FALSE;
switch (md->memberType())
{
case MemberType_Define: memType="define"; break;
- case MemberType_EnumValue: ASSERT(0); break;
- case MemberType_Property: memType="property"; break;
- case MemberType_Event: memType="event"; break;
+ case MemberType_Function: memType="function"; break;
case MemberType_Variable: memType="variable"; break;
case MemberType_Typedef: memType="typedef"; break;
case MemberType_Enumeration: memType="enum"; break;
- case MemberType_Function: memType="function"; isFunc=TRUE; break;
- case MemberType_Signal: memType="signal"; isFunc=TRUE; break;
- case MemberType_Friend: memType="friend"; isFunc=TRUE; break;
- case MemberType_DCOP: memType="dcop"; isFunc=TRUE; break;
- case MemberType_Slot: memType="slot"; isFunc=TRUE; break;
+ case MemberType_EnumValue: ASSERT(0); break;
+ case MemberType_Signal: memType="signal"; break;
+ case MemberType_Slot: memType="slot"; break;
+ case MemberType_Friend: memType="friend"; break;
+ case MemberType_DCOP: memType="dcop"; break;
+ case MemberType_Property: memType="property"; break;
+ case MemberType_Event: memType="event"; break;
+ case MemberType_Interface: memType="interface"; break;
+ case MemberType_Service: memType="service"; break;
}
QCString scopeName;
if (md->getClassDef())
diff --git a/src/docsets.cpp b/src/docsets.cpp
index a6c06ac..2aa2918 100644
--- a/src/docsets.cpp
+++ b/src/docsets.cpp
@@ -396,6 +396,10 @@ void DocSets::addIndexItem(Definition *context,MemberDef *md,
break;
case MemberType_Event:
type="event"; break;
+ case MemberType_Interface:
+ type="ifc"; break;
+ case MemberType_Service:
+ type="svc"; break;
}
cd = md->getClassDef();
nd = md->getNamespaceDef();
diff --git a/src/doctokenizer.l b/src/doctokenizer.l
index cc8a944..a84b073 100644
--- a/src/doctokenizer.l
+++ b/src/doctokenizer.l
@@ -349,14 +349,14 @@ SPCMD3 {CMD}form#[0-9]+
SPCMD4 {CMD}"::"
INOUT "inout"|"in"|"out"|("in"{BLANK}*","{BLANK}*"out")|("out"{BLANK}*","{BLANK}*"in")
PARAMIO {CMD}param{BLANK}*"["{BLANK}*{INOUT}{BLANK}*"]"
-TEMPCHAR [a-z_A-Z0-9,: \t\*\&]
+TEMPCHAR [a-z_A-Z0-9.,: \t\*\&\(\)\[\]]
FUNCCHAR [a-z_A-Z0-9,:\<\> \t\^\*\&\[\]]
SCOPESEP "::"|"#"|"."
TEMPLPART "<"{TEMPCHAR}*">"
ANONNS "anonymous_namespace{"[^}]*"}"
SCOPEPRE (({ID}{TEMPLPART}?)|{ANONNS}){SCOPESEP}
SCOPEKEYS ":"({ID}":")*
-SCOPECPP {SCOPEPRE}*(~)?{ID}("<"{TEMPCHAR}*">")?
+SCOPECPP {SCOPEPRE}*(~)?{ID}{TEMPLPART}?
SCOPEOBJC {SCOPEPRE}?{ID}{SCOPEKEYS}?
SCOPEMASK {SCOPECPP}|{SCOPEOBJC}
FUNCARG "("{FUNCCHAR}*")"({BLANK}*("volatile"|"const"){BLANK})?
@@ -380,7 +380,7 @@ HTMLTAG "<"(("/")?){ID}({WS}+{ATTRIB})*{WS}*(("/")?)">"
HTMLKEYL "strong"|"center"|"table"|"caption"|"small"|"code"|"dfn"|"var"|"img"|"pre"|"sub"|"sup"|"tr"|"td"|"th"|"ol"|"ul"|"li"|"tt"|"kbd"|"em"|"hr"|"dl"|"dt"|"dd"|"br"|"i"|"a"|"b"|"p"
HTMLKEYU "STRONG"|"CENTER"|"TABLE"|"CAPTION"|"SMALL"|"CODE"|"DFN"|"VAR"|"IMG"|"PRE"|"SUB"|"SUP"|"TR"|"TD"|"TH"|"OL"|"UL"|"LI"|"TT"|"KBD"|"EM"|"HR"|"DL"|"DT"|"DD"|"BR"|"I"|"A"|"B"|"P"
HTMLKEYW {HTMLKEYL}|{HTMLKEYU}
-REFWORD2 ("#"|"::")?((({ID}{TEMPLPART}?)|{ANONNS})("."|"#"|"::"|"-"|"/"))*({ID}(":")?){FUNCARG}?
+REFWORD2 ("#"|"::")?((({ID}{TEMPLPART}?)|{ANONNS})("."|"#"|"::"|"-"|"/"))*({ID}{TEMPLPART}?(":")?){FUNCARG}?
REFWORD3 ({ID}":")*{ID}":"?
REFWORD {LABELID}|{REFWORD2}|{REFWORD3}
diff --git a/src/dot.cpp b/src/dot.cpp
index be0a32a..95c52fe 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -63,6 +63,18 @@
static const char svgZoomHeader[] =
"<svg id=\"main\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:space=\"preserve\" onload=\"init(evt)\">\n"
+"<style type=\"text/css\"><![CDATA[\n"
+".edge:hover path { stroke: red; }\n"
+".edge:hover polygon { stroke: red; fill: red; }\n"
+"]]></style>\n"
+"<script type=\"text/javascript\"><![CDATA[\n"
+"var edges = document.getElementsByTagName('g');\n"
+"for (var i=0;i<edges.length;i++) {\n"
+" if (edges[i].id.substr(0,4)=='edge') {\n"
+" edges[i].setAttribute('class','edge');\n"
+" }\n"
+"}\n"
+"]]></script>\n"
" <defs>\n"
" <circle id=\"rim\" cx=\"0\" cy=\"0\" r=\"7\"/>\n"
" <circle id=\"rim2\" cx=\"0\" cy=\"0\" r=\"3.5\"/>\n"
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 4adc4fc..4dd39e3 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -295,6 +295,24 @@ static void findMember(EntryNav *rootNav,
bool isFunc
);
+enum FindBaseClassRelation_Mode
+{
+ TemplateInstances,
+ DocumentedOnly,
+ Undocumented
+};
+
+static bool findClassRelation(
+ EntryNav *rootNav,
+ Definition *context,
+ ClassDef *cd,
+ BaseInfo *bi,
+ QDict<int> *templateNames,
+ /*bool insertUndocumented*/
+ FindBaseClassRelation_Mode mode,
+ bool isArtificial
+ );
+
/** A struct contained the data for an STL class */
struct STLInfo
{
@@ -1138,7 +1156,8 @@ ArgumentList *getTemplateArgumentsFromName(
return ali.current();
}
-static ClassDef::CompoundType convertToCompoundType(int section,int specifier)
+static
+ClassDef::CompoundType convertToCompoundType(int section,uint64 specifier)
{
ClassDef::CompoundType sec=ClassDef::Class;
if (specifier&Entry::Struct)
@@ -1153,6 +1172,10 @@ static ClassDef::CompoundType convertToCompoundType(int section,int specifier)
sec=ClassDef::Protocol;
else if (specifier&Entry::Exception)
sec=ClassDef::Exception;
+ else if (specifier&Entry::Service)
+ sec=ClassDef::Service;
+ else if (specifier&Entry::Singleton)
+ sec=ClassDef::Singleton;
switch(section)
{
@@ -1180,6 +1203,12 @@ static ClassDef::CompoundType convertToCompoundType(int section,int specifier)
case Entry::EXCEPTIONDOC_SEC:
sec=ClassDef::Exception;
break;
+ case Entry::SERVICEDOC_SEC:
+ sec=ClassDef::Service;
+ break;
+ case Entry::SINGLETONDOC_SEC:
+ sec=ClassDef::Singleton;
+ break;
}
return sec;
}
@@ -1716,7 +1745,7 @@ static void buildNamespaceList(EntryNav *rootNav)
tagFileName=rootNav->tagInfo()->fileName;
}
//printf("++ new namespace %s lang=%s\n",fullName.data(),langToString(root->lang).data());
- NamespaceDef *nd=new NamespaceDef(root->fileName,root->startLine,root->startColumn,fullName,tagName,tagFileName);
+ NamespaceDef *nd=new NamespaceDef(root->fileName,root->startLine,root->startColumn,fullName,tagName,tagFileName,root->type,root->spec&Entry::Published);
nd->setDocumentation(root->doc,root->docFile,root->docLine); // copy docs to definition
nd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
nd->addSectionsToDefinition(root->anchors);
@@ -2275,7 +2304,7 @@ static MemberDef *addVariableToClass(
// new member variable, typedef or enum value
MemberDef *md=new MemberDef(
root->fileName,root->startLine,root->startColumn,
- root->type,name,root->args,0,
+ root->type,name,root->args,root->exception,
prot,Normal,root->stat,related,
mtype,root->tArgLists ? root->tArgLists->last() : 0,0);
md->setTagInfo(rootNav->tagInfo());
@@ -3002,6 +3031,148 @@ static void buildVarList(EntryNav *rootNav)
}
//----------------------------------------------------------------------
+// Searches the Entry tree for Interface sections (UNO IDL only).
+// If found they are stored in their service or in the global list.
+//
+
+static void addInterfaceOrServiceToServiceOrSingleton(
+ EntryNav *const rootNav,
+ ClassDef *const cd,
+ QCString const& rname)
+{
+ Entry *const root = rootNav->entry();
+ FileDef *const fd = rootNav->fileDef();
+ enum MemberType const type = (rootNav->section()==Entry::EXPORTED_INTERFACE_SEC)
+ ? MemberType_Interface
+ : MemberType_Service;
+ MemberDef *const md = new MemberDef(
+ root->fileName, root->startLine, root->startColumn, root->type, rname,
+ "", "", root->protection, root->virt, root->stat, Member,
+ type, 0, root->argList);
+ md->setTagInfo(rootNav->tagInfo());
+ md->setMemberClass(cd);
+ md->setDocumentation(root->doc,root->docFile,root->docLine);
+ md->setDocsForDefinition(false);
+ md->setBriefDescription(root->brief,root->briefFile,root->briefLine);
+ md->setInbodyDocumentation(root->inbodyDocs,root->inbodyFile,root->inbodyLine);
+ md->setBodySegment(root->bodyLine,root->endBodyLine);
+ md->setMemberSpecifiers(root->spec);
+ md->setMemberGroupId(root->mGrpId);
+ md->setTypeConstraints(root->typeConstr);
+ md->setLanguage(root->lang);
+ md->setBodyDef(fd);
+ md->setFileDef(fd);
+ md->addSectionsToDefinition(root->anchors);
+ QCString const def = root->type + " " + rname;
+ md->setDefinition(def);
+ md->enableCallGraph(root->callGraph);
+ md->enableCallerGraph(root->callerGraph);
+
+ Debug::print(Debug::Functions,0,
+ " Interface Member:\n"
+ " `%s' `%s' proto=%d\n"
+ " def=`%s'\n",
+ root->type.data(),
+ rname.data(),
+ root->proto,
+ def.data()
+ );
+
+ // add member to the global list of all members
+ MemberName *mn;
+ if ((mn=Doxygen::memberNameSDict->find(rname)))
+ {
+ mn->append(md);
+ }
+ else
+ {
+ mn = new MemberName(rname);
+ mn->append(md);
+ Doxygen::memberNameSDict->append(rname,mn);
+ }
+
+ // add member to the class cd
+ cd->insertMember(md);
+ // also add the member as a "base" (to get nicer diagrams)
+ // hmm... should "optional" interface/service be handled differently?
+ BaseInfo base(rname,Public,Normal);
+ findClassRelation(rootNav,cd,cd,&base,0,DocumentedOnly,true)
+ || findClassRelation(rootNav,cd,cd,&base,0,Undocumented,true);
+ // add file to list of used files
+ cd->insertUsedFile(root->fileName);
+
+ addMemberToGroups(root,md);
+ rootNav->changeSection(Entry::EMPTY_SEC);
+ md->setRefItems(root->sli);
+}
+
+static void buildInterfaceAndServiceList(EntryNav *const rootNav)
+{
+ if (rootNav->section()==Entry::EXPORTED_INTERFACE_SEC ||
+ rootNav->section()==Entry::INCLUDED_SERVICE_SEC)
+ {
+ rootNav->loadEntry(g_storage);
+ Entry *const root = rootNav->entry();
+
+ Debug::print(Debug::Functions,0,
+ "EXPORTED_INTERFACE_SEC:\n"
+ " `%s' `%s'::`%s' `%s' relates=`%s' relatesType=`%d' file=`%s' line=`%d' bodyLine=`%d' #tArgLists=%d mGrpId=%d spec=%lld proto=%d docFile=%s\n",
+ root->type.data(),
+ rootNav->parent()->name().data(),
+ root->name.data(),
+ root->args.data(),
+ root->relates.data(),
+ root->relatesType,
+ root->fileName.data(),
+ root->startLine,
+ root->bodyLine,
+ root->tArgLists ? (int)root->tArgLists->count() : -1,
+ root->mGrpId,
+ root->spec,
+ root->proto,
+ root->docFile.data()
+ );
+
+ QCString const rname = removeRedundantWhiteSpace(root->name);
+
+ if (!rname.isEmpty())
+ {
+ QCString const scope = rootNav->parent()->name();
+ ClassDef *const cd = getClass(scope);
+ assert(cd);
+ if (cd && ((ClassDef::Interface == cd->compoundType()) ||
+ (ClassDef::Service == cd->compoundType()) ||
+ (ClassDef::Singleton == cd->compoundType())))
+ {
+ addInterfaceOrServiceToServiceOrSingleton(rootNav,cd,rname);
+ }
+ else
+ {
+ assert(false); // was checked by scanner.l
+ }
+ }
+ else if (rname.isEmpty())
+ {
+ warn(root->fileName,root->startLine,
+ "warning: Illegal member name found.");
+ }
+
+ rootNav->releaseEntry();
+ }
+ // can only have these in IDL anyway
+ switch (rootNav->lang())
+ {
+ case SrcLangExt_Unknown: // fall through (root node always is Unknown)
+ case SrcLangExt_IDL:
+ RECURSE_ENTRYTREE(buildInterfaceAndServiceList,rootNav);
+ break;
+ default:
+ return; // nothing to do here
+ }
+}
+
+
+//----------------------------------------------------------------------
// Searches the Entry tree for Function sections.
// If found they are stored in their class or in the global list.
@@ -3188,7 +3359,7 @@ static void buildFunctionList(EntryNav *rootNav)
Debug::print(Debug::Functions,0,
"FUNCTION_SEC:\n"
- " `%s' `%s'::`%s' `%s' relates=`%s' relatesType=`%d' file=`%s' line=`%d' bodyLine=`%d' #tArgLists=%d mGrpId=%d spec=%d proto=%d docFile=%s\n",
+ " `%s' `%s'::`%s' `%s' relates=`%s' relatesType=`%d' file=`%s' line=`%d' bodyLine=`%d' #tArgLists=%d mGrpId=%d spec=%lld proto=%d docFile=%s\n",
root->type.data(),
rootNav->parent()->name().data(),
root->name.data(),
@@ -3930,24 +4101,6 @@ static ClassDef *findClassWithinClassContext(Definition *context,ClassDef *cd,co
return result;
}
-enum FindBaseClassRelation_Mode
-{
- TemplateInstances,
- DocumentedOnly,
- Undocumented
-};
-
-static bool findClassRelation(
- EntryNav *rootNav,
- Definition *context,
- ClassDef *cd,
- BaseInfo *bi,
- QDict<int> *templateNames,
- /*bool insertUndocumented*/
- FindBaseClassRelation_Mode mode,
- bool isArtificial
- );
-
static void findUsedClassesForClass(EntryNav *rootNav,
Definition *context,
@@ -5528,7 +5681,7 @@ static void findMember(EntryNav *rootNav,
Debug::print(Debug::FindMembers,0,
"findMember(root=%p,funcDecl=`%s',related=`%s',overload=%d,"
"isFunc=%d mGrpId=%d tArgList=%p (#=%d) "
- "spec=%d lang=%x\n",
+ "spec=%lld lang=%x\n",
root,funcDecl.data(),root->relates.data(),overloaded,isFunc,root->mGrpId,
root->tArgLists,root->tArgLists ? root->tArgLists->count() : 0,
root->spec,root->lang
@@ -6563,7 +6716,7 @@ static void filterMemberDocumentation(EntryNav *rootNav)
Entry *root = rootNav->entry();
int i=-1,l;
Debug::print(Debug::FindMembers,0,
- "findMemberDocumentation(): root->type=`%s' root->inside=`%s' root->name=`%s' root->args=`%s' section=%x root->spec=%d root->mGrpId=%d\n",
+ "findMemberDocumentation(): root->type=`%s' root->inside=`%s' root->name=`%s' root->args=`%s' section=%x root->spec=%lld root->mGrpId=%d\n",
root->type.data(),root->inside.data(),root->name.data(),root->args.data(),root->section,root->spec,root->mGrpId
);
//printf("rootNav->parent()->name()=%s\n",rootNav->parent()->name().data());
@@ -6668,6 +6821,11 @@ static void filterMemberDocumentation(EntryNav *rootNav)
//if (!root->relates.isEmpty()) printf(" Relates %s\n",root->relates.data());
findMember(rootNav,root->name,FALSE,FALSE);
}
+ else if (root->section==Entry::EXPORTED_INTERFACE_SEC ||
+ root->section==Entry::INCLUDED_SERVICE_SEC)
+ {
+ findMember(rootNav,root->type + " " + root->name,FALSE,FALSE);
+ }
else
{
// skip section
@@ -6682,7 +6840,9 @@ static void findMemberDocumentation(EntryNav *rootNav)
rootNav->section()==Entry::FUNCTION_SEC ||
rootNav->section()==Entry::VARIABLE_SEC ||
rootNav->section()==Entry::VARIABLEDOC_SEC ||
- rootNav->section()==Entry::DEFINE_SEC
+ rootNav->section()==Entry::DEFINE_SEC ||
+ rootNav->section()==Entry::INCLUDED_SERVICE_SEC ||
+ rootNav->section()==Entry::EXPORTED_INTERFACE_SEC
)
{
rootNav->loadEntry(g_storage);
@@ -6824,6 +6984,7 @@ static void findEnums(EntryNav *rootNav)
if (!isGlobal) md->setMemberClass(cd); else md->setFileDef(fd);
md->setBodySegment(root->bodyLine,root->endBodyLine);
md->setBodyDef(rootNav->fileDef());
+ md->setMemberSpecifiers(root->spec); // UNO IDL "published"
md->setEnumBaseType(root->args);
//printf("Enum %s definition at line %d of %s: protection=%d\n",
// root->name.data(),root->bodyLine,root->fileName.data(),root->protection);
@@ -10504,6 +10665,9 @@ void parseInput()
buildVarList(rootNav);
g_s.end();
+ g_s.begin("Building interface member list...\n");
+ buildInterfaceAndServiceList(rootNav); // UNO IDL
+
g_s.begin("Building member list...\n"); // using class info only !
buildFunctionList(rootNav);
g_s.end();
diff --git a/src/doxygen.css b/src/doxygen.css
index 2781983..715935a 100644
--- a/src/doxygen.css
+++ b/src/doxygen.css
@@ -1,7 +1,7 @@
/* The standard CSS for doxygen $doxygenversion */
body, table, div, p, dl {
- font: 400 14px/19px Roboto,sans-serif;
+ font: 400 14px/22px Roboto,sans-serif;
}
/* @group Heading Levels */
@@ -687,6 +687,7 @@ div.directory {
.directory td.entry {
white-space: nowrap;
padding-right: 6px;
+ padding-top: 3px;
}
.directory td.entry a {
diff --git a/src/doxygen.md b/src/doxygen.md
index 0cf222e..7941149 100644
--- a/src/doxygen.md
+++ b/src/doxygen.md
@@ -6,7 +6,7 @@ Introduction
This page provides a high-level overview of the internals of doxygen, with
links to the relevant parts of the code. This document is intended for
-developers who want to work on doxygen. Users of doxygen are refered to the
+developers who want to work on doxygen. Users of doxygen are referred to the
[User Manual](http://www.doxygen.org/manual.html).
The generic starting point of the application is of cource the main() function.
diff --git a/src/doxygen.pro.in b/src/doxygen.pro.in
index baa53ae..15af1f5 100644
--- a/src/doxygen.pro.in
+++ b/src/doxygen.pro.in
@@ -20,7 +20,7 @@ HEADERS = doxygen.h
SOURCES = main.cpp
unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread %%SQLITE3_LIBS%% %%LIBCLANG_LIBS%%
win32:INCLUDEPATH += .
-win32-mingw:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread
+win32-mingw:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread %%SQLITE3_LIBS%% %%LIBCLANG_LIBS%%
win32-msvc:LIBS += qtools.lib md5.lib doxygen.lib doxycfg.lib shell32.lib iconv.lib
win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\lib
win32-borland:LIBS += qtools.lib md5.lib doxygen.lib doxycfg.lib shell32.lib iconv.lib
diff --git a/src/doxygen_css.h b/src/doxygen_css.h
index b5d492e..601b28f 100644
--- a/src/doxygen_css.h
+++ b/src/doxygen_css.h
@@ -1,7 +1,7 @@
"/* The standard CSS for doxygen $doxygenversion */\n"
"\n"
"body, table, div, p, dl {\n"
-" font: 400 14px/19px Roboto,sans-serif;\n"
+" font: 400 14px/22px Roboto,sans-serif;\n"
"}\n"
"\n"
"/* @group Heading Levels */\n"
@@ -687,6 +687,7 @@
".directory td.entry {\n"
" white-space: nowrap;\n"
" padding-right: 6px;\n"
+" padding-top: 3px;\n"
"}\n"
"\n"
".directory td.entry a {\n"
diff --git a/src/entry.h b/src/entry.h
index 1c8abac..cecd095 100644
--- a/src/entry.h
+++ b/src/entry.h
@@ -79,9 +79,11 @@ class Entry
INTERFACEDOC_SEC = 0x00010000,
PROTOCOLDOC_SEC = 0x00020000,
CATEGORYDOC_SEC = 0x00040000,
+ SERVICEDOC_SEC = 0x00080000,
+ SINGLETONDOC_SEC = 0x00100000,
COMPOUNDDOC_MASK = CLASSDOC_SEC | STRUCTDOC_SEC | UNIONDOC_SEC |
INTERFACEDOC_SEC | EXCEPTIONDOC_SEC | PROTOCOLDOC_SEC |
- CATEGORYDOC_SEC,
+ CATEGORYDOC_SEC | SERVICEDOC_SEC | SINGLETONDOC_SEC,
SOURCE_SEC = 0x00400000,
HEADER_SEC = 0x00800000,
@@ -111,56 +113,69 @@ class Entry
PACKAGEDOC_SEC = 0x16000000,
OBJCIMPL_SEC = 0x17000000,
DIRDOC_SEC = 0x18000000
+ ,EXPORTED_INTERFACE_SEC = 0x19000000
+ ,INCLUDED_SERVICE_SEC = 0x1A000000
};
- enum MemberSpecifier
- {
- Inline = 0x00000001,
- Explicit = 0x00000002,
- Mutable = 0x00000004,
- Settable = 0x00000008,
- Gettable = 0x00000010,
- Readable = 0x00000020,
- Writable = 0x00000040,
- Final = 0x00000080,
- Abstract = 0x00000100,
- Addable = 0x00000200,
- Removable = 0x00000400,
- Raisable = 0x00000800,
- Override = 0x00001000,
- New = 0x00002000,
- Sealed = 0x00004000,
- Initonly = 0x00008000,
- Optional = 0x00010000,
- Required = 0x00020000,
- NonAtomic = 0x00040000,
- Copy = 0x00080000,
- Retain = 0x00100000,
- Assign = 0x00200000,
- Strong = 0x00400000,
- Weak = 0x00800000,
- Unretained = 0x01000000,
- Alias = 0x02000000,
- ConstExp = 0x04000000,
- Default = 0x08000000,
- Delete = 0x10000000,
- NoExcept = 0x20000000
- };
- enum ClassSpecifier
- {
- Template = 0x0001,
- Generic = 0x0002,
- Ref = 0x0004,
- Value = 0x0008,
- Interface = 0x0010,
- Struct = 0x0020,
- Union = 0x0040,
- Exception = 0x0080,
- Protocol = 0x0100,
- Category = 0x0200,
- SealedClass = 0x0400,
- AbstractClass = 0x0800,
- Enum = 0x1000 // for Java-style enums
- };
+
+ // class specifiers (add new items to the end)
+ static const uint64 Template = (1ULL<<0);
+ static const uint64 Generic = (1ULL<<1);
+ static const uint64 Ref = (1ULL<<2);
+ static const uint64 Value = (1ULL<<3);
+ static const uint64 Interface = (1ULL<<4);
+ static const uint64 Struct = (1ULL<<5);
+ static const uint64 Union = (1ULL<<6);
+ static const uint64 Exception = (1ULL<<7);
+ static const uint64 Protocol = (1ULL<<8);
+ static const uint64 Category = (1ULL<<9);
+ static const uint64 SealedClass = (1ULL<<10);
+ static const uint64 AbstractClass = (1ULL<<11);
+ static const uint64 Enum = (1ULL<<12); // for Java-style enums
+ static const uint64 Service = (1ULL<<13); // UNO IDL
+ static const uint64 Singleton = (1ULL<<14); // UNO IDL
+
+ // member specifiers (add new items to the beginning)
+ static const uint64 Inline = (1ULL<<24);
+ static const uint64 Explicit = (1ULL<<25);
+ static const uint64 Mutable = (1ULL<<26);
+ static const uint64 Settable = (1ULL<<27);
+ static const uint64 Gettable = (1ULL<<28);
+ static const uint64 Readable = (1ULL<<29);
+ static const uint64 Writable = (1ULL<<30);
+ static const uint64 Final = (1ULL<<31);
+ static const uint64 Abstract = (1ULL<<32);
+ static const uint64 Addable = (1ULL<<33);
+ static const uint64 Removable = (1ULL<<34);
+ static const uint64 Raisable = (1ULL<<35);
+ static const uint64 Override = (1ULL<<36);
+ static const uint64 New = (1ULL<<37);
+ static const uint64 Sealed = (1ULL<<38);
+ static const uint64 Initonly = (1ULL<<39);
+ static const uint64 Optional = (1ULL<<40);
+ static const uint64 Required = (1ULL<<41);
+ static const uint64 NonAtomic = (1ULL<<42);
+ static const uint64 Copy = (1ULL<<43);
+ static const uint64 Retain = (1ULL<<44);
+ static const uint64 Assign = (1ULL<<45);
+ static const uint64 Strong = (1ULL<<46);
+ static const uint64 Weak = (1ULL<<47);
+ static const uint64 Unretained = (1ULL<<48);
+ static const uint64 Alias = (1ULL<<49);
+ static const uint64 ConstExp = (1ULL<<50);
+ static const uint64 Default = (1ULL<<51);
+ static const uint64 Delete = (1ULL<<52);
+ static const uint64 NoExcept = (1ULL<<53);
+ static const uint64 Attribute = (1ULL<<54); // UNO IDL attribute
+ static const uint64 Property = (1ULL<<55); // UNO IDL property
+ static const uint64 Readonly = (1ULL<<56); // on UNO IDL attribute or property
+ static const uint64 Bound = (1ULL<<57); // on UNO IDL attribute or property
+ static const uint64 Constrained = (1ULL<<58); // on UNO IDL property
+ static const uint64 Transient = (1ULL<<59); // on UNO IDL property
+ static const uint64 MaybeVoid = (1ULL<<60); // on UNO IDL property
+ static const uint64 MaybeDefault = (1ULL<<61); // on UNO IDL property
+ static const uint64 MaybeAmbiguous = (1ULL<<62); // on UNO IDL property
+ static const uint64 Published = (1ULL<<63); // UNO IDL keyword
+
enum GroupDocType
{
GROUPDOC_NORMAL, //!< defgroup
@@ -220,7 +235,7 @@ class Entry
// content
Protection protection; //!< class protection
MethodTypes mtype; //!< signal, slot, (dcop) method, or property?
- int spec; //!< class/member specifiers
+ uint64 spec; //!< class/member specifiers
int initLines; //!< define/variable initializer lines to show
bool stat; //!< static ?
bool explicitExternal; //!< explicitly defined as external?
diff --git a/src/filedef.cpp b/src/filedef.cpp
index 9c8e944..82db047 100644
--- a/src/filedef.cpp
+++ b/src/filedef.cpp
@@ -411,10 +411,11 @@ void FileDef::writeSourceLink(OutputList &ol)
}
}
-void FileDef::writeNamespaceDeclarations(OutputList &ol,const QCString &title)
+void FileDef::writeNamespaceDeclarations(OutputList &ol,const QCString &title,
+ bool const isConstantGroup)
{
// write list of namespaces
- if (namespaceSDict) namespaceSDict->writeDeclaration(ol,title);
+ if (namespaceSDict) namespaceSDict->writeDeclaration(ol,title,isConstantGroup);
}
void FileDef::writeClassDeclarations(OutputList &ol,const QCString &title)
@@ -646,9 +647,15 @@ void FileDef::writeDocumentation(OutputList &ol)
case LayoutDocEntry::FileNamespaces:
{
LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde;
- writeNamespaceDeclarations(ol,ls->title(lang));
+ writeNamespaceDeclarations(ol,ls->title(lang),false);
}
break;
+ case LayoutDocEntry::FileConstantGroups:
+ {
+ LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde;
+ writeNamespaceDeclarations(ol,ls->title(lang),true);
+ }
+ break;
case LayoutDocEntry::MemberGroups:
writeMemberGroups(ol);
break;
@@ -693,6 +700,7 @@ void FileDef::writeDocumentation(OutputList &ol)
case LayoutDocEntry::ClassUsedFiles:
case LayoutDocEntry::ClassInlineClasses:
case LayoutDocEntry::NamespaceNestedNamespaces:
+ case LayoutDocEntry::NamespaceNestedConstantGroups:
case LayoutDocEntry::NamespaceClasses:
case LayoutDocEntry::NamespaceInlineClasses:
case LayoutDocEntry::GroupClasses:
diff --git a/src/filedef.h b/src/filedef.h
index 1d037d5..7376861 100644
--- a/src/filedef.h
+++ b/src/filedef.h
@@ -190,7 +190,8 @@ class FileDef : public Definition
void writeMemberGroups(OutputList &ol);
void writeAuthorSection(OutputList &ol);
void writeSourceLink(OutputList &ol);
- void writeNamespaceDeclarations(OutputList &ol,const QCString &title);
+ void writeNamespaceDeclarations(OutputList &ol,const QCString &title,
+ bool isConstantGroup);
void writeClassDeclarations(OutputList &ol,const QCString &title);
void writeInlineClasses(OutputList &ol);
void startMemberDeclarations(OutputList &ol);
diff --git a/src/fortranscanner.l b/src/fortranscanner.l
index 8a2103d..83da1d0 100644
--- a/src/fortranscanner.l
+++ b/src/fortranscanner.l
@@ -78,7 +78,7 @@ enum InterfaceType { IF_NONE, IF_SPECIFIC, IF_GENERIC, IF_ABSTRACT };
// {{{ ----- Helper structs -----
//! Holds modifiers (ie attributes) for one symbol (variable, function, etc)
struct SymbolModifiers {
- enum Protection {NONE_P, PUBLIC, PRIVATE, PROTECTED};
+ enum Protection {NONE_P, PUBLIC, PRIVATE};
enum Direction {NONE_D, IN, OUT, INOUT};
//!< This is only used with function return value.
@@ -86,6 +86,7 @@ struct SymbolModifiers {
Protection protection;
Direction direction;
bool optional;
+ bool protect;
QCString dimension;
bool allocatable;
bool external;
@@ -101,7 +102,7 @@ struct SymbolModifiers {
QCString passVar;
SymbolModifiers() : type(), returnName(), protection(NONE_P), direction(NONE_D),
- optional(FALSE), dimension(), allocatable(FALSE),
+ optional(FALSE), protect(FALSE), dimension(), allocatable(FALSE),
external(FALSE), intrinsic(FALSE), parameter(FALSE),
pointer(FALSE), target(FALSE), save(FALSE), deferred(FALSE), nonoverridable(FALSE),
nopass(FALSE), pass(FALSE), passVar() {}
@@ -145,9 +146,9 @@ struct CommentInPrepass {
};
static QList<CommentInPrepass> comments;
-#define MAX_INCLUDE_DEPTH 10
-YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
+YY_BUFFER_STATE *include_stack = NULL;
int include_stack_ptr = 0;
+int include_stack_cnt = 0;
static QFile inputFile;
static QCString yyFileName;
@@ -257,7 +258,7 @@ TYPE_SPEC (({NUM_TYPE}({BS}"*"{BS}[0-9]+)?)|({NUM_TYPE}{KIND})|DOUBLE{BS_}COMPLE
INTENT_SPEC intent{BS}"("{BS}(in|out|in{BS}out){BS}")"
ATTR_SPEC (ALLOCATABLE|DIMENSION{ARGS}|EXTERNAL|{INTENT_SPEC}|INTRINSIC|OPTIONAL|PARAMETER|POINTER|PROTECTED|PRIVATE|PUBLIC|SAVE|TARGET|NOPASS|PASS{ARGS}?|DEFERRED|NON_OVERRIDABLE)
-ACCESS_SPEC (PROTECTED|PRIVATE|PUBLIC)
+ACCESS_SPEC (PRIVATE|PUBLIC)
LANGUAGE_BIND_SPEC BIND{BS}"("{BS}C{BS}(,{BS}NAME{BS}"="{BS}"\""(.*)"\""{BS})?")"
/* Assume that attribute statements are almost the same as attributes. */
ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC}
@@ -549,9 +550,6 @@ PREFIX (RECURSIVE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,2}(RECURSIVE|PURE|ELEMENTA
/*------- access specification --------------------------------------------------------------------------*/
-<ModuleBody>protected/{BS}(\n|"!") { defaultProtection = Protected;
- current->protection = defaultProtection ;
- }
<ModuleBody>private/{BS}(\n|"!") { defaultProtection = Private;
current->protection = defaultProtection ;
}
@@ -593,10 +591,6 @@ private {
current->protection = Private;
typeProtection = Private;
}
-protected {
- current->protection = Protected;
- typeProtection = Protected;
- }
{LANGUAGE_BIND_SPEC} {
/* ignored for now */
}
@@ -1406,10 +1400,10 @@ static const char* prepassFixedForm(const char* contents)
static void pushBuffer(QCString& buffer)
{
- if ( include_stack_ptr >= MAX_INCLUDE_DEPTH )
+ if (include_stack_cnt <= include_stack_ptr)
{
- fprintf( stderr, "Stack buffers nested too deeply" );
- exit( 1 );
+ include_stack_cnt++;
+ include_stack = (YY_BUFFER_STATE *)realloc(include_stack, include_stack_cnt * sizeof(YY_BUFFER_STATE));
}
include_stack[include_stack_ptr++] = YY_CURRENT_BUFFER;
yy_switch_to_buffer(yy_scan_string(buffer));
@@ -1501,6 +1495,7 @@ SymbolModifiers& SymbolModifiers::operator|=(const SymbolModifiers &mdfs)
allocatable |= mdfs.allocatable;
external |= mdfs.external;
intrinsic |= mdfs.intrinsic;
+ protect |= mdfs.protect;
parameter |= mdfs.parameter;
pointer |= mdfs.pointer;
target |= mdfs.target;
@@ -1542,7 +1537,7 @@ SymbolModifiers& SymbolModifiers::operator|=(QCString mdfString)
}
else if (mdfString=="protected")
{
- newMdf.protection = SymbolModifiers::PROTECTED;
+ newMdf.protect = TRUE;
}
else if (mdfString=="optional")
{
@@ -1734,7 +1729,7 @@ static QCString applyModifiers(QCString typeName, SymbolModifiers& mdfs)
if (!typeName.isEmpty()) typeName += ", ";
typeName += "private";
}
- else if (mdfs.protection == SymbolModifiers::PROTECTED)
+ if (mdfs.protect)
{
if (!typeName.isEmpty()) typeName += ", ";
typeName += "protected";
@@ -1760,8 +1755,6 @@ static void applyModifiers(Entry *ent, SymbolModifiers& mdfs)
ent->protection = Public;
else if (mdfs.protection == SymbolModifiers::PRIVATE)
ent->protection = Private;
- else if (mdfs.protection == SymbolModifiers::PROTECTED)
- ent->protection = Protected;
}
/*! Starts the new scope in fortran program. Consider using this function when
@@ -2107,6 +2100,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
static void subrHandleCommentBlock(const QCString &doc,bool brief)
{
+ QCString loc_doc;
Entry *tmp_entry = current;
current = subrCurrent.first(); // temporarily switch to the entry of the subroutine / function
if (docBlock.stripWhiteSpace().find("\\param") == 0)
@@ -2120,8 +2114,57 @@ static void subrHandleCommentBlock(const QCString &doc,bool brief)
else
{
int dir1 = modifiers[current_root][argName.lower()].direction;
- handleCommentBlock(QCString("\n\n@param ") + directionParam[dir1] + " " +
- argName + " " + doc,brief);
+ loc_doc = doc.stripWhiteSpace();
+ if (loc_doc.lower().find(directionParam[SymbolModifiers::IN]) == 0)
+ {
+ if ((directionParam[dir1] == directionParam[SymbolModifiers::NONE_D]) ||
+ (directionParam[dir1] == directionParam[SymbolModifiers::IN]))
+ {
+ handleCommentBlock(QCString("\n\n@param ") + directionParam[SymbolModifiers::IN] + " " +
+ argName + " " + loc_doc.right(loc_doc.length()-strlen(directionParam[SymbolModifiers::IN])),brief);
+ }
+ else
+ {
+ warn(yyFileName,yyLineNr, "warning: inconsistency between intent attribute and documenation for variable: "+argName);
+ handleCommentBlock(QCString("\n\n@param ") + directionParam[dir1] + " " +
+ argName + " " + doc,brief);
+ }
+ }
+ else if (loc_doc.lower().find(directionParam[SymbolModifiers::OUT]) == 0)
+ {
+ if ((directionParam[dir1] == directionParam[SymbolModifiers::NONE_D]) ||
+ (directionParam[dir1] == directionParam[SymbolModifiers::OUT]))
+ {
+ handleCommentBlock(QCString("\n\n@param ") + directionParam[SymbolModifiers::OUT] + " " +
+ argName + " " + loc_doc.right(loc_doc.length()-strlen(directionParam[SymbolModifiers::OUT])),brief);
+ }
+ else
+ {
+ warn(yyFileName,yyLineNr, "warning: inconsistency between intent attribute and documenation for variable: "+argName);
+ handleCommentBlock(QCString("\n\n@param ") + directionParam[dir1] + " " +
+ argName + " " + doc,brief);
+ }
+ }
+ else if (loc_doc.lower().find(directionParam[SymbolModifiers::INOUT]) == 0)
+ {
+ if ((directionParam[dir1] == directionParam[SymbolModifiers::NONE_D]) ||
+ (directionParam[dir1] == directionParam[SymbolModifiers::INOUT]))
+ {
+ handleCommentBlock(QCString("\n\n@param ") + directionParam[SymbolModifiers::INOUT] + " " +
+ argName + " " + loc_doc.right(loc_doc.length()-strlen(directionParam[SymbolModifiers::INOUT])),brief);
+ }
+ else
+ {
+ warn(yyFileName,yyLineNr, "warning: inconsistency between intent attribute and documenation for variable: "+argName);
+ handleCommentBlock(QCString("\n\n@param ") + directionParam[dir1] + " " +
+ argName + " " + doc,brief);
+ }
+ }
+ else
+ {
+ handleCommentBlock(QCString("\n\n@param ") + directionParam[dir1] + " " +
+ argName + " " + doc,brief);
+ }
}
current=tmp_entry;
}
diff --git a/src/groupdef.cpp b/src/groupdef.cpp
index 9938120..4d0707b 100644
--- a/src/groupdef.cpp
+++ b/src/groupdef.cpp
@@ -1059,10 +1059,12 @@ void GroupDef::writeDocumentation(OutputList &ol)
case LayoutDocEntry::ClassUsedFiles:
case LayoutDocEntry::ClassInlineClasses:
case LayoutDocEntry::NamespaceNestedNamespaces:
+ case LayoutDocEntry::NamespaceNestedConstantGroups:
case LayoutDocEntry::NamespaceClasses:
case LayoutDocEntry::NamespaceInlineClasses:
case LayoutDocEntry::FileClasses:
case LayoutDocEntry::FileNamespaces:
+ case LayoutDocEntry::FileConstantGroups:
case LayoutDocEntry::FileIncludes:
case LayoutDocEntry::FileIncludeGraph:
case LayoutDocEntry::FileIncludedByGraph:
diff --git a/src/growbuf.h b/src/growbuf.h
index f1bf315..bc8e4b5 100644
--- a/src/growbuf.h
+++ b/src/growbuf.h
@@ -4,6 +4,8 @@
#include <stdlib.h>
#include <string.h>
+#define GROW_AMOUNT 1024
+
/** Class representing a string buffer optimised for growing. */
class GrowBuf
{
@@ -11,21 +13,27 @@ class GrowBuf
GrowBuf() : str(0), pos(0), len(0) {}
~GrowBuf() { free(str); str=0; pos=0; len=0; }
void clear() { pos=0; }
- void addChar(char c) { if (pos>=len) { len+=1024; str = (char*)realloc(str,len); }
+ void addChar(char c) { if (pos>=len) { len+=GROW_AMOUNT; str = (char*)realloc(str,len); }
str[pos++]=c;
}
void addStr(const char *s) {
- int l=strlen(s);
- if (pos+l>=len) { len+=l+1024; str = (char*)realloc(str,len); }
- strcpy(&str[pos],s);
- pos+=l;
+ if (s)
+ {
+ int l=strlen(s);
+ if (pos+l>=len) { len+=l+GROW_AMOUNT; str = (char*)realloc(str,len); }
+ strcpy(&str[pos],s);
+ pos+=l;
+ }
}
void addStr(const char *s,int n) {
- int l=strlen(s);
- if (n<l) l=n;
- if (pos+l>=len) { len+=l+1024; str = (char*)realloc(str,len); }
- strncpy(&str[pos],s,n);
- pos+=l;
+ if (s)
+ {
+ int l=strlen(s);
+ if (n<l) l=n;
+ if (pos+l>=len) { len+=l+GROW_AMOUNT; str = (char*)realloc(str,len); }
+ strncpy(&str[pos],s,n);
+ pos+=l;
+ }
}
const char *get() { return str; }
int getPos() const { return pos; }
diff --git a/src/htags.cpp b/src/htags.cpp
index 896f304..27ad952 100644
--- a/src/htags.cpp
+++ b/src/htags.cpp
@@ -32,7 +32,7 @@ static QDict<QCString> g_symbolDict(10007);
/*! constructs command line of htags(1) and executes it.
* \retval TRUE success
- * \retval FALSE an error has occured.
+ * \retval FALSE an error has occurred.
*/
bool Htags::execute(const QCString &htmldir)
{
diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp
index c517776..d334e8f 100644
--- a/src/htmldocvisitor.cpp
+++ b/src/htmldocvisitor.cpp
@@ -1834,11 +1834,11 @@ void HtmlDocVisitor::filterQuotedCdataAttr(const char* str)
// it's enough to replace these two, provided that the declaration
// for the HTML version we generate (and as supported by the browser)
// specifies that all the other symbols used in rawVal are
- // within the right charachter class (i.e., they're not
- // some multinational weird charachters not in the BASESET).
+ // within the right character class (i.e., they're not
+ // some multinational weird characters not in the BASESET).
// We assume that 1) the browser will support whatever is remaining
// in the formula and 2) the TeX formulae are generally governed
- // by even stricter charachter restrictions so it should be enough.
+ // by even stricter character restrictions so it should be enough.
//
// On some incompliant browsers, additional translation of
// '>' and '<' into "&gt;" and "&lt;", respectively, might be needed;
diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp
index df95ede..b272177 100644
--- a/src/htmlgen.cpp
+++ b/src/htmlgen.cpp
@@ -104,6 +104,7 @@ static const char extsearch_script[]=
static QCString g_header;
static QCString g_footer;
+static QCString g_mathjax_code;
//------------------------- Pictures for the Tabs ------------------------
@@ -1176,8 +1177,13 @@ static QCString substituteHtmlKeywords(const QCString &s,
}
mathJaxJs += "],\n"
" jax: [\"input/TeX\",\"output/"+mathJaxFormat+"\"],\n"
- "});\n"
- "</script>";
+ "});\n";
+ if (!g_mathjax_code.isEmpty())
+ {
+ mathJaxJs += g_mathjax_code;
+ mathJaxJs += "\n";
+ }
+ mathJaxJs += "</script>";
mathJaxJs += "<script src=\"" + path + "MathJax.js\"></script>\n";
}
@@ -1445,6 +1451,15 @@ void HtmlGenerator::init()
{
g_footer = defaultHtmlFooter;
}
+
+ if (Config_getBool("USE_MATHJAX"))
+ {
+ if (!Config_getString("MATHJAX_CODEFILE").isEmpty())
+ {
+ g_mathjax_code=fileToString(Config_getString("MATHJAX_CODEFILE"));
+ //printf("g_mathjax_code='%s'\n",g_mathjax_code.data());
+ }
+ }
createSubDirs(d);
QCString fileName=dname+"/tabs.css";
@@ -2383,7 +2398,7 @@ void HtmlGenerator::endParameterName(bool last,bool emptyList,bool closeBracket)
{
if (emptyList)
{
- if (closeBracket) t << "</td><td>)";
+ if (closeBracket) t << ")</td><td>";
t << "</td>" << endl;
t << " <td>";
}
@@ -2413,6 +2428,22 @@ void HtmlGenerator::endParameterList()
t << " </tr>" << endl;
}
+void HtmlGenerator::exceptionEntry(const char* prefix,bool closeBracket)
+{
+ DBG_HTML(t << "<!-- exceptionEntry -->" << endl;)
+ t << "</td>" << endl;
+ t << " </tr>" << endl;
+ t << " <tr>" << endl;
+ t << " <td align=\"right\">";
+ // colspan 2 so it gets both parameter type and parameter name columns
+ if (prefix)
+ t << prefix << "</td><td>(</td><td colspan=\"2\">";
+ else if (closeBracket)
+ t << "</td><td>)</td><td></td><td>";
+ else
+ t << "</td><td></td><td colspan=\"2\">";
+}
+
void HtmlGenerator::endMemberDoc(bool hasArgs)
{
DBG_HTML(t << "<!-- endMemberDoc -->" << endl;)
diff --git a/src/htmlgen.h b/src/htmlgen.h
index 1968f38..34eb1e5 100644
--- a/src/htmlgen.h
+++ b/src/htmlgen.h
@@ -308,6 +308,7 @@ class HtmlGenerator : public OutputGenerator
void endParameterName(bool last,bool emptyList,bool closeBracket);
void startParameterList(bool);
void endParameterList();
+ virtual void exceptionEntry(const char*,bool);
void startConstraintList(const char *);
void startConstraintParam();
diff --git a/src/latexgen.cpp b/src/latexgen.cpp
index 593ca69..8f99b30 100644
--- a/src/latexgen.cpp
+++ b/src/latexgen.cpp
@@ -2387,6 +2387,14 @@ void LatexGenerator::endParameterName(bool last,bool /* emptyList */,bool closeB
}
}
+void LatexGenerator::exceptionEntry(const char* prefix,bool closeBracket)
+{
+ if (prefix)
+ t << " " << prefix;
+ else if (closeBracket)
+ t << ")";
+ t << " ";
+}
void LatexGenerator::writeDoc(DocNode *n,Definition *ctx,MemberDef *)
{
diff --git a/src/latexgen.h b/src/latexgen.h
index 54e926d..2712d31 100644
--- a/src/latexgen.h
+++ b/src/latexgen.h
@@ -240,6 +240,7 @@ class LatexGenerator : public OutputGenerator
void endParameterName(bool,bool,bool);
void startParameterList(bool);
void endParameterList();
+ void exceptionEntry(const char*,bool);
void startConstraintList(const char *);
void startConstraintParam();
diff --git a/src/layout.cpp b/src/layout.cpp
index 93194c8..acddbc0 100644
--- a/src/layout.cpp
+++ b/src/layout.cpp
@@ -313,6 +313,12 @@ class LayoutParser : public QXmlDefaultHandler
SrcLangExt_VHDL,VhdlDocGen::trVhdlType(VhdlDocGen::ENTITY,FALSE),
SrcLangExt_Fortran,theTranslator->trDataTypes()
)));
+ m_sHandler.insert("class/memberdecl/services",
+ new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
+ MemberListType_services,theTranslator->trServices()));
+ m_sHandler.insert("class/memberdecl/interfaces",
+ new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
+ MemberListType_interfaces,theTranslator->trInterfaces()));
m_sHandler.insert("class/memberdecl/publictypes",
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
MemberListType_pubTypes,theTranslator->trPublicTypes()));
@@ -422,6 +428,12 @@ class LayoutParser : public QXmlDefaultHandler
m_sHandler.insert("class/memberdef/enums",
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
MemberListType_enumMembers,theTranslator->trMemberEnumerationDocumentation()));
+ m_sHandler.insert("class/memberdef/services",
+ new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
+ MemberListType_serviceMembers,theTranslator->trInterfaces()));
+ m_sHandler.insert("class/memberdef/interfaces",
+ new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
+ MemberListType_interfaceMembers,theTranslator->trInterfaces()));
m_sHandler.insert("class/memberdef/constructors",
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
MemberListType_constructors,theTranslator->trConstructorDocumentation()));
@@ -465,12 +477,16 @@ class LayoutParser : public QXmlDefaultHandler
new StartElementHandler(this,&LayoutParser::startMemberDecl));
m_sHandler.insert("namespace/memberdecl/nestednamespaces",
new StartElementHandlerSection(this,LayoutDocEntry::NamespaceNestedNamespaces,&LayoutParser::startSectionEntry,
- COMPILE_FOR_3_OPTIONS(
+ COMPILE_FOR_4_OPTIONS(
theTranslator->trNamespaces(),
SrcLangExt_Java,theTranslator->trPackages(),
SrcLangExt_VHDL,theTranslator->trPackages(),
+ SrcLangExt_IDL,theTranslator->trModules(),
SrcLangExt_Fortran,theTranslator->trModules()
)));
+ m_sHandler.insert("namespace/memberdecl/constantgroups",
+ new StartElementHandlerSection(this,LayoutDocEntry::NamespaceNestedConstantGroups,&LayoutParser::startSectionEntry,
+ theTranslator->trConstantGroups()));
m_sHandler.insert("namespace/memberdecl/classes",
new StartElementHandlerSection(this,LayoutDocEntry::NamespaceClasses,&LayoutParser::startSectionEntry,
COMPILE_FOR_2_OPTIONS(
@@ -559,11 +575,15 @@ class LayoutParser : public QXmlDefaultHandler
)));
m_sHandler.insert("file/memberdecl/namespaces",
new StartElementHandlerSection(this,LayoutDocEntry::FileNamespaces,&LayoutParser::startSectionEntry,
- COMPILE_FOR_2_OPTIONS(
+ COMPILE_FOR_3_OPTIONS(
theTranslator->trNamespaces(),
SrcLangExt_Java,theTranslator->trPackages(),
+ SrcLangExt_IDL,theTranslator->trModules(),
SrcLangExt_Fortran,theTranslator->trModules()
)));
+ m_sHandler.insert("file/memberdecl/constantgroups",
+ new StartElementHandlerSection(this,LayoutDocEntry::FileNamespaces,&LayoutParser::startSectionEntry,
+ theTranslator->trConstantGroups()));
m_sHandler.insert("file/memberdecl/defines",
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
MemberListType_decDefineMembers,theTranslator->trDefines()));
diff --git a/src/layout.h b/src/layout.h
index a40d0b0..2506076 100644
--- a/src/layout.h
+++ b/src/layout.h
@@ -45,11 +45,11 @@ struct LayoutDocEntry
ClassUsedFiles,
// Namespace specific items
- NamespaceNestedNamespaces, NamespaceClasses,
- NamespaceInlineClasses,
+ NamespaceNestedNamespaces, NamespaceNestedConstantGroups,
+ NamespaceClasses, NamespaceInlineClasses,
// File specific items
- FileClasses, FileNamespaces,
+ FileClasses, FileNamespaces, FileConstantGroups,
FileIncludes, FileIncludeGraph,
FileIncludedByGraph, FileSourceLink,
FileInlineClasses,
diff --git a/src/layout_default.h b/src/layout_default.h
index d2dfce6..d775926 100644
--- a/src/layout_default.h
+++ b/src/layout_default.h
@@ -31,6 +31,8 @@
" <memberdecl>\n"
" <nestedclasses visible=\"yes\" title=\"\"/>\n"
" <publictypes title=\"\"/>\n"
+" <services title=\"\"/>\n"
+" <interfaces title=\"\"/>\n"
" <publicslots title=\"\"/>\n"
" <signals title=\"\"/>\n"
" <publicmethods title=\"\"/>\n"
@@ -65,6 +67,8 @@
" <inlineclasses title=\"\"/>\n"
" <typedefs title=\"\"/>\n"
" <enums title=\"\"/>\n"
+" <services title=\"\"/>\n"
+" <interfaces title=\"\"/>\n"
" <constructors title=\"\"/>\n"
" <functions title=\"\"/>\n"
" <related title=\"\"/>\n"
@@ -82,6 +86,7 @@
" <briefdescription visible=\"yes\"/>\n"
" <memberdecl>\n"
" <nestednamespaces visible=\"yes\" title=\"\"/>\n"
+" <constantgroups visible=\"yes\" title=\"\"/>\n"
" <classes visible=\"yes\" title=\"\"/>\n"
" <typedefs title=\"\"/>\n"
" <enums title=\"\"/>\n"
@@ -110,6 +115,7 @@
" <memberdecl>\n"
" <classes visible=\"yes\" title=\"\"/>\n"
" <namespaces visible=\"yes\" title=\"\"/>\n"
+" <constantgroups visible=\"yes\" title=\"\"/>\n"
" <defines title=\"\"/>\n"
" <typedefs title=\"\"/>\n"
" <enums title=\"\"/>\n"
diff --git a/src/layout_default.xml b/src/layout_default.xml
index b0bbec4..f087958 100644
--- a/src/layout_default.xml
+++ b/src/layout_default.xml
@@ -31,6 +31,8 @@
<memberdecl>
<nestedclasses visible="yes" title=""/>
<publictypes title=""/>
+ <services title=""/>
+ <interfaces title=""/>
<publicslots title=""/>
<signals title=""/>
<publicmethods title=""/>
@@ -65,6 +67,8 @@
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
+ <services title=""/>
+ <interfaces title=""/>
<constructors title=""/>
<functions title=""/>
<related title=""/>
@@ -82,6 +86,7 @@
<briefdescription visible="yes"/>
<memberdecl>
<nestednamespaces visible="yes" title=""/>
+ <constantgroups visible="yes" title=""/>
<classes visible="yes" title=""/>
<typedefs title=""/>
<enums title=""/>
@@ -110,6 +115,7 @@
<memberdecl>
<classes visible="yes" title=""/>
<namespaces visible="yes" title=""/>
+ <constantgroups visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
diff --git a/src/mandocvisitor.cpp b/src/mandocvisitor.cpp
index 9a6f029..e854bfc 100644
--- a/src/mandocvisitor.cpp
+++ b/src/mandocvisitor.cpp
@@ -32,7 +32,7 @@
ManDocVisitor::ManDocVisitor(FTextStream &t,CodeOutputInterface &ci,
const char *langExt)
- : DocVisitor(DocVisitor_Man), m_t(t), m_ci(ci), m_insidePre(FALSE), m_hide(FALSE), m_firstCol(TRUE),
+ : DocVisitor(DocVisitor_Man), m_t(t), m_ci(ci), m_insidePre(FALSE), m_hide(FALSE), m_firstCol(FALSE),
m_indent(0), m_langExt(langExt)
{
}
diff --git a/src/mangen.cpp b/src/mangen.cpp
index 32c7a7e..a50ee73 100644
--- a/src/mangen.cpp
+++ b/src/mangen.cpp
@@ -33,15 +33,33 @@
static QCString getExtension()
{
+ /*
+ * [.][nuber][rest]
+ * in case of . missing, just ignore it
+ * in case number missing, just place a 3 in front of it
+ */
QCString ext = Config_getString("MAN_EXTENSION");
- if( ext.length() >= 2 &&
- ext.data()[0] == '.')
+ if (ext.isEmpty())
{
- ext = ext.mid(1, ext.length()-1);
+ ext = "3";
}
else
{
- ext = "3";
+ if (ext.at(0)=='.')
+ {
+ if (ext.length()==1)
+ {
+ ext = "3";
+ }
+ else // strip .
+ {
+ ext = ext.mid(1);
+ }
+ }
+ if (ext.at(0)<='0' || ext.at(0)>='9')
+ {
+ ext.prepend("3");
+ }
}
return ext;
}
@@ -50,7 +68,7 @@ ManGenerator::ManGenerator() : OutputGenerator()
{
dir=Config_getString("MAN_OUTPUT")+"/man" + getExtension();
firstCol=TRUE;
- paragraph=FALSE;
+ paragraph=TRUE;
col=0;
upperCase=FALSE;
insideTabbing=FALSE;
@@ -129,8 +147,8 @@ static QCString buildFileName(const char *name)
}
}
- QCString &manExtension = Config_getString("MAN_EXTENSION");
- if (fileName.right(2)!=manExtension)
+ QCString manExtension = "." + getExtension();
+ if (fileName.right(manExtension.length())!=manExtension)
{
fileName+=manExtension;
}
@@ -798,4 +816,12 @@ void ManGenerator::endLabels()
{
}
+void ManGenerator::endHeaderSection()
+{
+ if (!firstCol)
+ {
+ t<< endl; firstCol=TRUE;
+ }
+}
+
diff --git a/src/mangen.h b/src/mangen.h
index 663f695..eda360e 100644
--- a/src/mangen.h
+++ b/src/mangen.h
@@ -95,7 +95,7 @@ class ManGenerator : public OutputGenerator
void startMemberSections() {}
void endMemberSections() {}
void startHeaderSection() {}
- void endHeaderSection() {}
+ void endHeaderSection();
void startMemberHeader(const char *);
void endMemberHeader();
void insertMemberAlign(bool) {}
@@ -229,6 +229,7 @@ class ManGenerator : public OutputGenerator
void endParameterName(bool,bool,bool) {}
void startParameterList(bool) {}
void endParameterList() {}
+ void exceptionEntry(const char*,bool) {}
void startFontClass(const char *) {}
void endFontClass() {}
diff --git a/src/markdown.cpp b/src/markdown.cpp
index 0a31bad..9411782 100644
--- a/src/markdown.cpp
+++ b/src/markdown.cpp
@@ -473,6 +473,25 @@ static int processNmdash(GrowBuf &out,const char *data,int,int size)
return 0;
}
+/** Process quoted section "...", can contain one embedded newline */
+static int processQuoted(GrowBuf &out,const char *data,int,int size)
+{
+ int i=1;
+ int nl=0;
+ while (i<size && data[i]!='"' && nl<2)
+ {
+ if (data[i]=='\n') nl++;
+ i++;
+ }
+ if (i<size && data[i]=='"' && nl<2)
+ {
+ out.addStr(data,i+1);
+ return i+1;
+ }
+ // not a quoted section
+ return 0;
+}
+
/** Process a HTML tag. Note that <pre>..</pre> are treated specially, in
* the sense that all code inside is written unprocessed
*/
@@ -2197,6 +2216,7 @@ QCString processMarkdown(const QCString &fileName,Entry *e,const QCString &input
g_actions[(unsigned int)'!']=processLink;
g_actions[(unsigned int)'<']=processHtmlTag;
g_actions[(unsigned int)'-']=processNmdash;
+ g_actions[(unsigned int)'"']=processQuoted;
init=TRUE;
}
diff --git a/src/marshal.cpp b/src/marshal.cpp
index da71843..a6b3e75 100644
--- a/src/marshal.cpp
+++ b/src/marshal.cpp
@@ -33,6 +33,12 @@ void marshalUInt(StorageIntf *s,uint v)
s->write((const char *)b,4);
}
+void marshalUInt64(StorageIntf *s,uint64 v)
+{
+ marshalUInt(s, uint(v>>32));
+ marshalUInt(s, uint(v&0xFFFFFFFF));
+}
+
void marshalBool(StorageIntf *s,bool b)
{
char c = b;
@@ -345,7 +351,7 @@ void marshalEntry(StorageIntf *s,Entry *e)
marshalInt(s,e->section);
marshalInt(s,(int)e->protection);
marshalInt(s,(int)e->mtype);
- marshalInt(s,e->spec);
+ marshalUInt64(s,e->spec);
marshalInt(s,e->initLines);
marshalBool(s,e->stat);
marshalBool(s,e->explicitExternal);
@@ -426,6 +432,13 @@ uint unmarshalUInt(StorageIntf *s)
return result;
}
+uint64 unmarshalUInt64(StorageIntf *s)
+{
+ uint64 result=uint64(unmarshalUInt(s))<<32;
+ result|=unmarshalUInt(s);
+ return result;
+}
+
bool unmarshalBool(StorageIntf *s)
{
char result;
@@ -719,7 +732,7 @@ Entry * unmarshalEntry(StorageIntf *s)
e->section = unmarshalInt(s);
e->protection = (Protection)unmarshalInt(s);
e->mtype = (MethodTypes)unmarshalInt(s);
- e->spec = unmarshalInt(s);
+ e->spec = unmarshalUInt64(s);
e->initLines = unmarshalInt(s);
e->stat = unmarshalBool(s);
e->explicitExternal = unmarshalBool(s);
diff --git a/src/marshal.h b/src/marshal.h
index 49d58e4..977a89b 100644
--- a/src/marshal.h
+++ b/src/marshal.h
@@ -44,6 +44,7 @@ class Entry;
void marshalInt(StorageIntf *s,int v);
void marshalUInt(StorageIntf *s,uint v);
+void marshalUInt64(StorageIntf *s,uint64 v);
void marshalBool(StorageIntf *s,bool b);
void marshalQCString(StorageIntf *s,const QCString &str);
void marshalQGString(StorageIntf *s,const QGString &str);
@@ -70,6 +71,7 @@ void marshalEntryTree(StorageIntf *s,Entry *e);
int unmarshalInt(StorageIntf *s);
uint unmarshalUInt(StorageIntf *s);
+uint64 unmarshalUInt64(StorageIntf *s);
bool unmarshalBool(StorageIntf *s);
QCString unmarshalQCString(StorageIntf *s);
QGString unmarshalQGString(StorageIntf *s);
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index e01ab6a..cdf5686 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -374,6 +374,68 @@ static bool writeDefArgumentList(OutputList &ol,ClassDef *cd,
return TRUE;
}
+static void writeExceptionListImpl(
+ OutputList &ol, ClassDef *cd, MemberDef *md, QCString const& exception)
+{
+ // this is ordinary exception spec - there must be a '('
+ int index = exception.find('(');
+ if (-1!=index)
+ {
+ ol.exceptionEntry(exception.left(index),false);
+ ++index; // paren in second column so skip it here
+ for (int comma = exception.find(',', index); -1!=comma; )
+ {
+ ++comma; // include comma
+ linkifyText(TextGeneratorOLImpl(ol),cd,md->getBodyDef(),md,
+ exception.mid(index,comma-index));
+ ol.exceptionEntry(0,false);
+ index=comma;
+ comma = exception.find(',', index);
+ }
+ int close = exception.find(')', index);
+ if (-1!=close)
+ {
+ QCString type=removeRedundantWhiteSpace(exception.mid(index,close-index));
+ linkifyText(TextGeneratorOLImpl(ol),cd,md->getBodyDef(),md,type);
+ ol.exceptionEntry(0,true);
+ }
+ else
+ warn(md->getDefFileName(),md->getDefLine(),
+ "missing ) in exception list on member %s",qPrint(md->name()));
+ }
+ else
+ {
+ // fallback - is it possible to get here?
+ warn(md->getDefFileName(),md->getDefLine(),
+ "missing ( in exception list on member %s",qPrint(md->name()));
+ ol.docify(" ");
+ linkifyText(TextGeneratorOLImpl(ol),cd,md->getBodyDef(),md,exception);
+ }
+}
+
+static void writeExceptionList(OutputList &ol, ClassDef *cd, MemberDef *md)
+{
+ QCString exception(QCString(md->excpString()).stripWhiteSpace());
+ if ('{'==exception.at(0))
+ {
+ // this is an UNO IDL attribute - need special handling
+ int index = exception.find(';');
+ int oldIndex = 1;
+ while (-1 != index) // there should be no more than 2 (set / get)
+ {
+ // omit '{' and ';' -> "set raises (...)"
+ writeExceptionListImpl(ol,cd,md,exception.mid(oldIndex,index-oldIndex));
+ oldIndex=index+1;
+ index = exception.find(';',oldIndex);
+ }
+ // the rest is now just '}' - omit that
+ }
+ else
+ {
+ writeExceptionListImpl(ol,cd,md,exception);
+ }
+}
+
static void writeTemplatePrefix(OutputList &ol,ArgumentList *al)
{
ol.docify("template<");
@@ -467,7 +529,7 @@ class MemberDefImpl
QCString enumBaseType; // base type of the enum (C++11)
int initLines; // number of lines in the initializer
- int memSpec; // The specifiers present for this member
+ uint64 memSpec; // The specifiers present for this member
MemberType mtype; // returns the kind of member
int maxInitLines; // when the initializer will be displayed
int userInitLines; // result of explicit \hideinitializer or \showinitializer
@@ -1828,6 +1890,8 @@ bool MemberDef::isDetailedSectionLinkable() const
(hasMultiLineInitializer() && !hideUndocMembers) ||
// has one or more documented arguments
(m_impl->defArgList!=0 && m_impl->defArgList->hasDocumentation()) ||
+ // is an attribute or property - need to display that tag
+ (m_impl->memSpec & (Entry::Attribute|Entry::Property)) ||
// has user comments
Doxygen::userComments
;
@@ -1917,7 +1981,7 @@ void MemberDef::_getLabels(QStrList &sl,Definition *container) const
if (isGettable()) sl.append("get");
if (isSettable()) sl.append("set");
if (isAddable()) sl.append("add");
- if (isRemovable()) sl.append("remove");
+ if (!isUNOProperty() && isRemovable()) sl.append("remove");
if (isRaisable()) sl.append("raise");
if (isReadable()) sl.append("read");
if (isWritable()) sl.append("write");
@@ -1954,6 +2018,17 @@ void MemberDef::_getLabels(QStrList &sl,Definition *container) const
if (isDefault()) sl.append("default");
if (isDelete()) sl.append("delete");
if (isNoExcept()) sl.append("noexcept");
+ if (isAttribute()) sl.append("attribute");
+ if (isUNOProperty()) sl.append("property");
+ if (isReadonly()) sl.append("readonly");
+ if (isBound()) sl.append("bound");
+ if (isUNOProperty() && isRemovable()) sl.append("removable");
+ if (isConstrained()) sl.append("constrained");
+ if (isTransient()) sl.append("transient");
+ if (isMaybeVoid()) sl.append("maybevoid");
+ if (isMaybeDefault()) sl.append("maybedefault");
+ if (isMaybeAmbiguous()) sl.append("maybeambiguous");
+ if (isPublished()) sl.append("published"); // enum
}
if (isObjCProperty() && isImplementation())
{
@@ -2595,8 +2670,8 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
}
if (excpString()) // add exception list
{
- ol.docify(" ");
- linkifyText(TextGeneratorOLImpl(ol),container,getBodyDef(),this,excpString());
+ writeExceptionList(ol,cd,this);
+ hasParameterList=true; // call endParameterList below
}
}
@@ -3001,6 +3076,8 @@ QCString MemberDef::memberTypeName() const
case MemberType_DCOP: return "dcop";
case MemberType_Property: return "property";
case MemberType_Event: return "event";
+ case MemberType_Interface: return "interface";
+ case MemberType_Service: return "service";
default: return "unknown";
}
}
@@ -3409,6 +3486,8 @@ void MemberDef::_writeTagData(const DefType compoundType)
case MemberType_Friend: Doxygen::tagFile << "friend"; break;
case MemberType_DCOP: Doxygen::tagFile << "dcop"; break;
case MemberType_Slot: Doxygen::tagFile << "slot"; break;
+ case MemberType_Interface: Doxygen::tagFile << "interface"; break;
+ case MemberType_Service: Doxygen::tagFile << "service"; break;
}
if (m_impl->prot!=Public)
{
@@ -3883,7 +3962,7 @@ int MemberDef::initializerLines() const
return m_impl->initLines;
}
-int MemberDef::getMemberSpecifiers() const
+uint64 MemberDef::getMemberSpecifiers() const
{
makeResident();
return m_impl->memSpec;
@@ -4231,6 +4310,65 @@ bool MemberDef::isNoExcept() const
return (m_impl->memSpec&Entry::NoExcept)!=0;
}
+bool MemberDef::isAttribute() const
+{
+ makeResident();
+ return (m_impl->memSpec&Entry::Attribute)!=0;
+}
+
+bool MemberDef::isUNOProperty() const
+{
+ makeResident();
+ return (m_impl->memSpec&Entry::Property)!=0;
+}
+
+bool MemberDef::isReadonly() const
+{
+ makeResident();
+ return (m_impl->memSpec&Entry::Readonly)!=0;
+}
+
+bool MemberDef::isBound() const
+{
+ makeResident();
+ return (m_impl->memSpec&Entry::Bound)!=0;
+}
+
+bool MemberDef::isConstrained() const
+{
+ makeResident();
+ return (m_impl->memSpec&Entry::Constrained)!=0;
+}
+
+bool MemberDef::isTransient() const
+{
+ makeResident();
+ return (m_impl->memSpec&Entry::Transient)!=0;
+}
+
+bool MemberDef::isMaybeVoid() const
+{
+ makeResident();
+ return (m_impl->memSpec&Entry::MaybeVoid)!=0;
+}
+
+bool MemberDef::isMaybeDefault() const
+{
+ makeResident();
+ return (m_impl->memSpec&Entry::MaybeDefault)!=0;
+}
+
+bool MemberDef::isMaybeAmbiguous() const
+{
+ makeResident();
+ return (m_impl->memSpec&Entry::MaybeAmbiguous)!=0;
+}
+
+bool MemberDef::isPublished() const
+{
+ makeResident();
+ return (m_impl->memSpec&Entry::Published)!=0;
+}
bool MemberDef::isImplementation() const
@@ -4461,13 +4599,13 @@ void MemberDef::setProtection(Protection p)
m_isLinkableCached = 0;
}
-void MemberDef::setMemberSpecifiers(int s)
+void MemberDef::setMemberSpecifiers(uint64 s)
{
makeResident();
m_impl->memSpec=s;
}
-void MemberDef::mergeMemberSpecifiers(int s)
+void MemberDef::mergeMemberSpecifiers(uint64 s)
{
makeResident();
m_impl->memSpec|=s;
@@ -4787,7 +4925,7 @@ void MemberDef::flushToDisk() const
marshalQCString (Doxygen::symbolStorage,m_impl->initializer);
marshalQCString (Doxygen::symbolStorage,m_impl->extraTypeChars);
marshalInt (Doxygen::symbolStorage,m_impl->initLines);
- marshalInt (Doxygen::symbolStorage,m_impl->memSpec);
+ marshalUInt64 (Doxygen::symbolStorage,m_impl->memSpec);
marshalInt (Doxygen::symbolStorage,(int)m_impl->mtype);
marshalInt (Doxygen::symbolStorage,m_impl->maxInitLines);
marshalInt (Doxygen::symbolStorage,m_impl->userInitLines);
@@ -4892,7 +5030,7 @@ void MemberDef::loadFromDisk() const
m_impl->initializer = unmarshalQCString (Doxygen::symbolStorage);
m_impl->extraTypeChars = unmarshalQCString (Doxygen::symbolStorage);
m_impl->initLines = unmarshalInt (Doxygen::symbolStorage);
- m_impl->memSpec = unmarshalInt (Doxygen::symbolStorage);
+ m_impl->memSpec = unmarshalUInt64 (Doxygen::symbolStorage);
m_impl->mtype = (MemberType)unmarshalInt (Doxygen::symbolStorage);
m_impl->maxInitLines = unmarshalInt (Doxygen::symbolStorage);
m_impl->userInitLines = unmarshalInt (Doxygen::symbolStorage);
@@ -5128,7 +5266,7 @@ void combineDeclarationAndDefinition(MemberDef *mdec,MemberDef *mdef)
}
if (!mdef->documentation().isEmpty())
{
- //printf("transfering docs mdef->mdec (%s->%s)\n",mdef->argsString(),mdec->argsString());
+ //printf("transferring docs mdef->mdec (%s->%s)\n",mdef->argsString(),mdec->argsString());
mdec->setDocumentation(mdef->documentation(),mdef->docFile(),mdef->docLine());
mdec->setDocsForDefinition(mdef->isDocsForDefinition());
if (mdefAl!=0)
@@ -5141,7 +5279,7 @@ void combineDeclarationAndDefinition(MemberDef *mdec,MemberDef *mdef)
}
else if (!mdec->documentation().isEmpty())
{
- //printf("transfering docs mdec->mdef (%s->%s)\n",mdec->argsString(),mdef->argsString());
+ //printf("transferring docs mdec->mdef (%s->%s)\n",mdec->argsString(),mdef->argsString());
mdef->setDocumentation(mdec->documentation(),mdec->docFile(),mdec->docLine());
mdef->setDocsForDefinition(mdec->isDocsForDefinition());
if (mdecAl!=0)
diff --git a/src/memberdef.h b/src/memberdef.h
index dba22e6..9ed4102 100644
--- a/src/memberdef.h
+++ b/src/memberdef.h
@@ -73,7 +73,7 @@ class MemberDef : public Definition
const char *extraTypeChars() const;
const QCString &initializer() const;
int initializerLines() const;
- int getMemberSpecifiers() const;
+ uint64 getMemberSpecifiers() const;
MemberList *getSectionList(Definition *d) const;
// scope query members
@@ -148,6 +148,16 @@ class MemberDef : public Definition
bool isDefault() const;
bool isDelete() const;
bool isNoExcept() const;
+ bool isAttribute() const; // UNO IDL attribute
+ bool isUNOProperty() const; // UNO IDL property
+ bool isReadonly() const;
+ bool isBound() const;
+ bool isConstrained() const;
+ bool isTransient() const;
+ bool isMaybeVoid() const;
+ bool isMaybeDefault() const;
+ bool isMaybeAmbiguous() const;
+ bool isPublished() const; // UNO IDL published
bool isTemplateSpecialization() const;
bool hasDocumentedParams() const;
bool hasDocumentedReturnType() const;
@@ -240,8 +250,8 @@ class MemberDef : public Definition
void setFileDef(FileDef *fd);
void setAnchor();
void setProtection(Protection p);
- void setMemberSpecifiers(int s);
- void mergeMemberSpecifiers(int s);
+ void setMemberSpecifiers(uint64 s);
+ void mergeMemberSpecifiers(uint64 s);
void setInitializer(const char *i);
void setBitfields(const char *s);
void setMaxInitLines(int lines);
diff --git a/src/memberlist.cpp b/src/memberlist.cpp
index 60c1291..c44bd81 100644
--- a/src/memberlist.cpp
+++ b/src/memberlist.cpp
@@ -136,6 +136,9 @@ void MemberList::countDecMembers(bool countEnumValues,GroupDef *gd)
case MemberType_Event: // fall through
case MemberType_Property: m_varCnt++,m_numDecMembers++;
break;
+// apparently necessary to get this to show up in declarations section?
+ case MemberType_Interface: // fall through
+ case MemberType_Service: // fall through
case MemberType_Function: // fall through
case MemberType_Signal: // fall through
case MemberType_DCOP: // fall through
@@ -250,6 +253,8 @@ bool MemberList::declVisible() const
case MemberType_Slot: // fall through
case MemberType_DCOP: // fall through
case MemberType_Property: // fall through
+ case MemberType_Interface: // fall through
+ case MemberType_Service: // fall through
case MemberType_Event:
return TRUE;
case MemberType_Enumeration:
@@ -334,6 +339,8 @@ void MemberList::writePlainDeclarations(OutputList &ol,
case MemberType_Slot: // fall through
case MemberType_DCOP: // fall through
case MemberType_Property: // fall through
+ case MemberType_Interface: // fall through
+ case MemberType_Service: // fall through
case MemberType_Event:
{
if (first) ol.startMemberList(),first=FALSE;
@@ -891,6 +898,8 @@ QCString MemberList::listTypeAsString() const
case MemberListType_dcopMethods: return "dcop-methods";
case MemberListType_properties: return "properties";
case MemberListType_events: return "events";
+ case MemberListType_interfaces: return "interfaces";
+ case MemberListType_services: return "services";
case MemberListType_decDefineMembers: return "define-members";
case MemberListType_decProtoMembers: return "proto-members";
case MemberListType_decTypedefMembers: return "typedef-members";
diff --git a/src/namespacedef.cpp b/src/namespacedef.cpp
index dc5214a..b95cec8 100644
--- a/src/namespacedef.cpp
+++ b/src/namespacedef.cpp
@@ -35,8 +35,10 @@
NamespaceDef::NamespaceDef(const char *df,int dl,int dc,
const char *name,const char *lref,
- const char *fName) :
+ const char *fName, const char*type,
+ bool isPublished) :
Definition(df,dl,dc,name)
+ ,m_isPublished(isPublished)
{
if (fName)
{
@@ -58,6 +60,18 @@ NamespaceDef::NamespaceDef(const char *df,int dl,int dc,
memberGroupSDict->setAutoDelete(TRUE);
visited=FALSE;
m_subGrouping=Config_getBool("SUBGROUPING");
+ if (type && !strcmp("module", type))
+ {
+ m_type = MODULE;
+ }
+ else if (type && !strcmp("constants", type))
+ {
+ m_type = CONSTANT_GROUP;
+ }
+ else
+ {
+ m_type = NAMESPACE;
+ }
}
NamespaceDef::~NamespaceDef()
@@ -347,9 +361,10 @@ void NamespaceDef::writeInlineClasses(OutputList &ol)
if (classSDict) classSDict->writeDocumentation(ol,this);
}
-void NamespaceDef::writeNamespaceDeclarations(OutputList &ol,const QCString &title)
+void NamespaceDef::writeNamespaceDeclarations(OutputList &ol,const QCString &title,
+ bool const isConstantGroup)
{
- if (namespaceSDict) namespaceSDict->writeDeclaration(ol,title,TRUE);
+ if (namespaceSDict) namespaceSDict->writeDeclaration(ol,title,isConstantGroup,TRUE);
}
void NamespaceDef::writeMemberGroups(OutputList &ol)
@@ -421,6 +436,20 @@ void NamespaceDef::writeSummaryLinks(OutputList &ol)
ol.popGeneratorState();
}
+void NamespaceDef::addNamespaceAttributes(OutputList &ol)
+{
+ // UNO IDL constant groups may be published
+ if (getLanguage()==SrcLangExt_IDL && isConstantGroup() && m_isPublished)
+ {
+ ol.pushGeneratorState();
+ ol.disableAllBut(OutputGenerator::Html);
+ ol.startLabels();
+ ol.writeLabel("published",false);
+ ol.endLabels();
+ ol.popGeneratorState();
+ }
+}
+
void NamespaceDef::writeDocumentation(OutputList &ol)
{
static bool generateTreeView = Config_getBool("GENERATE_TREEVIEW");
@@ -437,6 +466,12 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
{
pageTitle = theTranslator->trModuleReference(displayName());
}
+ else if (lang==SrcLangExt_IDL)
+ {
+ pageTitle = isConstantGroup()
+ ? theTranslator->trConstantGroupReference(displayName())
+ : theTranslator->trModuleReference(displayName());
+ }
else
{
pageTitle = theTranslator->trNamespaceReference(displayName());
@@ -455,6 +490,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
startTitle(ol,getOutputFileBase(),this);
ol.parseText(pageTitle);
addGroupListToTitle(ol,this);
+ addNamespaceAttributes(ol);
endTitle(ol,getOutputFileBase(),displayName());
ol.startContents();
@@ -498,9 +534,15 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
case LayoutDocEntry::NamespaceNestedNamespaces:
{
LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde;
- writeNamespaceDeclarations(ol,ls->title(lang));
+ writeNamespaceDeclarations(ol,ls->title(lang),false);
}
break;
+ case LayoutDocEntry::NamespaceNestedConstantGroups:
+ {
+ LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde;
+ writeNamespaceDeclarations(ol,ls->title(lang),true);
+ }
+ break;
case LayoutDocEntry::MemberGroups:
writeMemberGroups(ol);
break;
@@ -546,6 +588,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
case LayoutDocEntry::ClassInlineClasses:
case LayoutDocEntry::FileClasses:
case LayoutDocEntry::FileNamespaces:
+ case LayoutDocEntry::FileConstantGroups:
case LayoutDocEntry::FileIncludes:
case LayoutDocEntry::FileIncludeGraph:
case LayoutDocEntry::FileIncludedByGraph:
@@ -825,7 +868,8 @@ bool NamespaceSDict::declVisible() const
return FALSE;
}
-void NamespaceSDict::writeDeclaration(OutputList &ol,const char *title,bool localName)
+void NamespaceSDict::writeDeclaration(OutputList &ol,const char *title,
+ bool const isConstantGroup,bool localName)
{
@@ -839,7 +883,27 @@ void NamespaceSDict::writeDeclaration(OutputList &ol,const char *title,bool loca
bool found=FALSE;
for (ni.toFirst();(nd=ni.current()) && !found;++ni)
{
- if (nd->isLinkable()) found=TRUE;
+ if (nd->isLinkable())
+ {
+ SrcLangExt lang = nd->getLanguage();
+ if (SrcLangExt_IDL==lang)
+ {
+ if (isConstantGroup == nd->isConstantGroup())
+ {
+ found=TRUE;
+ break;
+ }
+ }
+ else if (!isConstantGroup) // ensure we only get extra section in IDL
+ {
+ if (nd->isConstantGroup())
+ {
+ err("Internal inconsistency: constant group but not IDL?");
+ }
+ found=TRUE;
+ break;
+ }
+ }
}
if (!found) return; // no linkable namespaces in the list
@@ -855,6 +919,8 @@ void NamespaceSDict::writeDeclaration(OutputList &ol,const char *title,bool loca
if (nd->isLinkable())
{
SrcLangExt lang = nd->getLanguage();
+ if (lang==SrcLangExt_IDL && (isConstantGroup != nd->isConstantGroup()))
+ continue; // will be output in another pass, see layout_default.xml
ol.startMemberDeclaration();
ol.startMemberItem(nd->getOutputFileBase(),0);
if (lang==SrcLangExt_Java || lang==SrcLangExt_CSharp)
@@ -865,9 +931,20 @@ void NamespaceSDict::writeDeclaration(OutputList &ol,const char *title,bool loca
{
ol.docify("module ");
}
- else
+ else if (lang==SrcLangExt_IDL)
{
- ol.docify("namespace ");
+ if (nd->isModule())
+ {
+ ol.docify("module ");
+ }
+ else if (nd->isConstantGroup())
+ {
+ ol.docify("constants");
+ }
+ else
+ {
+ err("Internal inconsistency: namespace in IDL not module or cg");
+ }
}
ol.insertMemberAlign();
QCString name;
diff --git a/src/namespacedef.h b/src/namespacedef.h
index dbc98d5..ff64107 100644
--- a/src/namespacedef.h
+++ b/src/namespacedef.h
@@ -39,7 +39,8 @@ class NamespaceDef : public Definition
public:
NamespaceDef(const char *defFileName,int defLine,int defColumn,
const char *name,const char *ref=0,
- const char *refFile=0);
+ const char *refFile=0,const char*type=0,
+ bool isPublished=false);
~NamespaceDef();
DefType definitionType() const { return TypeNamespace; }
QCString getOutputFileBase() const;
@@ -63,7 +64,10 @@ class NamespaceDef : public Definition
void combineUsingRelations();
QCString displayName(bool=TRUE) const;
QCString localName() const;
-
+
+ bool isConstantGroup() const { return CONSTANT_GROUP == m_type; }
+ bool isModule() const { return MODULE == m_type; }
+
bool isLinkableInProject() const;
bool isLinkable() const;
void addMembersToMemberGroup();
@@ -101,12 +105,14 @@ class NamespaceDef : public Definition
void endMemberDeclarations(OutputList &ol);
void writeClassDeclarations(OutputList &ol,const QCString &title);
void writeInlineClasses(OutputList &ol);
- void writeNamespaceDeclarations(OutputList &ol,const QCString &title);
+ void writeNamespaceDeclarations(OutputList &ol,const QCString &title,
+ bool isConstantGroup=false);
void writeMemberGroups(OutputList &ol);
void writeAuthorSection(OutputList &ol);
void startMemberDocumentation(OutputList &ol);
void endMemberDocumentation(OutputList &ol);
void writeSummaryLinks(OutputList &ol);
+ void addNamespaceAttributes(OutputList &ol);
QCString fileName;
QStrList files;
@@ -121,6 +127,8 @@ class NamespaceDef : public Definition
ClassSDict *classSDict;
NamespaceSDict *namespaceSDict;
bool m_subGrouping;
+ enum { NAMESPACE, MODULE, CONSTANT_GROUP } m_type;
+ bool m_isPublished;
};
/** A list of NamespaceDef objects. */
@@ -164,7 +172,8 @@ class NamespaceSDict : public SDict<NamespaceDef>
((NamespaceDef *)item2)->name()
);
}
- void writeDeclaration(OutputList &ol,const char *title,bool localName=FALSE);
+ void writeDeclaration(OutputList &ol,const char *title,
+ bool isConstantGroup=false, bool localName=FALSE);
bool declVisible() const;
};
diff --git a/src/outputgen.h b/src/outputgen.h
index 52189c2..719f2cd 100644
--- a/src/outputgen.h
+++ b/src/outputgen.h
@@ -404,6 +404,7 @@ class OutputGenerator : public BaseOutputDocInterface
virtual void endParameterName(bool,bool,bool) = 0;
virtual void startParameterList(bool) = 0;
virtual void endParameterList() = 0;
+ virtual void exceptionEntry(const char*,bool) = 0;
virtual void startConstraintList(const char *) = 0;
virtual void startConstraintParam() = 0;
diff --git a/src/outputlist.h b/src/outputlist.h
index 59b7f5f..71481ba 100644
--- a/src/outputlist.h
+++ b/src/outputlist.h
@@ -422,6 +422,8 @@ class OutputList : public OutputDocInterface
{ forall(&OutputGenerator::startParameterList,openBracket); }
void endParameterList()
{ forall(&OutputGenerator::endParameterList); }
+ void exceptionEntry(const char* prefix,bool closeBracket)
+ { forall(&OutputGenerator::exceptionEntry,prefix,closeBracket); }
void startConstraintList(const char *header)
{ forall(&OutputGenerator::startConstraintList,header); }
diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp
index bba416f..be8b1d9 100644
--- a/src/perlmodgen.cpp
+++ b/src/perlmodgen.cpp
@@ -1575,6 +1575,8 @@ void PerlModGenerator::generatePerlModForMember(MemberDef *md,Definition *)
case MemberType_DCOP: memType="dcop"; isFunc=TRUE; break;
case MemberType_Slot: memType="slot"; isFunc=TRUE; break;
case MemberType_Event: memType="event"; break;
+ case MemberType_Interface: memType="interface"; break;
+ case MemberType_Service: memType="service"; break;
}
m_output.openHash()
diff --git a/src/pre.l b/src/pre.l
index b437f5c..f11cae7 100644
--- a/src/pre.l
+++ b/src/pre.l
@@ -59,12 +59,6 @@
#define DBG_CTX(x) do { } while(0)
#define YY_NEVER_INTERACTIVE 1
-enum GuardType
-{
- Guard_Cond,
- Guard_CondNot
-};
-
struct FileState
{
FileState(int size) : fileBuf(size),
@@ -370,8 +364,8 @@ static bool g_isSource;
static bool g_lexInit = FALSE;
static int g_fenceSize = 0;
+static bool g_ccomment;
-static GuardType guardType; // kind of guard for conditional section
//DefineDict* getGlobalDefineDict()
//{
// return g_globalDefineDict;
@@ -1665,24 +1659,14 @@ static void readIncludeFile(const QCString &inc)
static void startCondSection(const char *sectId)
{
+ //printf("startCondSection: skip=%d stack=%d\n",g_skip,g_condStack.count());
CondParser prs;
bool expResult = prs.parse(g_yyFileName,g_yyLineNr,sectId);
g_condStack.push(new bool(g_skip));
- if (guardType == Guard_Cond)
+ if (!expResult)
{
- if (!expResult)
- {
- g_skip=TRUE;
- }
+ g_skip=TRUE;
}
- else if (guardType == Guard_CondNot)
- {
- if (expResult)
- {
- g_skip=TRUE;
- }
- }
- //printf("startCondSection(%s)=%d expResult=%d\n",sectId,g_skip,expResult);
}
static void endCondSection()
@@ -1696,6 +1680,7 @@ static void endCondSection()
bool *ctx = g_condStack.pop();
g_skip=*ctx;
}
+ //printf("endCondSection: skip=%d stack=%d\n",g_skip,g_condStack.count());
}
static void forceEndCondSection()
@@ -1796,7 +1781,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
%x IgnoreLine
%x FindDefineArgs
%x ReadString
-%x CondLine
+%x CondLineC
+%x CondLineCpp
%x SkipCond
%%
@@ -2519,17 +2505,28 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
BEGIN(SkipVerbatim);
}
-<SkipCComment,SkipCPPComment>[\\@]"cond"[ \t]+ { // conditional section
- guardType = Guard_Cond;
- g_condCtx = YY_START;
- outputArray(yytext,yyleng);
- BEGIN(CondLine);
+<SkipCPPComment>[\\@]"cond"[ \t]+ { // conditional section
+ g_ccomment=TRUE;
+ BEGIN(CondLineCpp);
+ }
+<SkipCComment>[\\@]"cond"[ \t]+ { // conditional section
+ g_ccomment=FALSE;
+ BEGIN(CondLineC);
}
-<CondLine>[!()&| \ta-z_A-Z0-9.\-]+ {
+<CondLineC,CondLineCpp>[!()&| \ta-z_A-Z0-9.\-]+ {
startCondSection(yytext);
- outputArray(yytext,(int)yyleng);
if (g_skip)
{
+ if (YY_START==CondLineC)
+ {
+ // end C comment
+ outputArray("*/",2);
+ g_ccomment=TRUE;
+ }
+ else
+ {
+ g_ccomment=FALSE;
+ }
BEGIN(SkipCond);
}
else
@@ -2537,16 +2534,21 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
BEGIN(g_condCtx);
}
}
-<SkipCComment,SkipCPPComment>[\\@]"cond"[ \t\r]*/\n {
- guardType = Guard_Cond;
- g_condCtx = YY_START;
- outputArray(yytext,(int)yyleng);
- }
-<CondLine>. {
+<CondLineC,CondLineCpp>. { // non-guard character
unput(*yytext);
startCondSection(" ");
if (g_skip)
{
+ if (YY_START==CondLineC)
+ {
+ // end C comment
+ outputArray("*/",2);
+ g_ccomment=TRUE;
+ }
+ else
+ {
+ g_ccomment=FALSE;
+ }
BEGIN(SkipCond);
}
else
@@ -2554,15 +2556,36 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
BEGIN(g_condCtx);
}
}
+<SkipCComment,SkipCPPComment>[\\@]"cond"[ \t\r]*/\n { // no guard
+ if (YY_START==SkipCComment)
+ {
+ g_ccomment=TRUE;
+ // end C comment
+ outputArray("*/",2);
+ }
+ else
+ {
+ g_ccomment=FALSE;
+ }
+ BEGIN(SkipCond);
+ }
<SkipCond>\n { g_yyLineNr++; outputChar('\n'); }
<SkipCond>. { }
<SkipCond>[^\/\!*\\@\n]+ { }
+<SkipCond>"//"[/!] { g_ccomment=FALSE; }
+<SkipCond>"/*"[*!] { g_ccomment=TRUE; }
<SkipCond>[\\@]"endcond"/[^a-z_A-Z0-9] {
- outputArray(yytext,(int)yyleng);
endCondSection();
+ if (!g_skip)
+ {
+ if (g_ccomment)
+ {
+ outputArray("/** ",4);
+ }
+ BEGIN(g_condCtx);
+ }
}
<SkipCComment,SkipCPPComment>[\\@]"endcond"/[^a-z_A-Z0-9] {
- outputArray(yytext,(int)yyleng);
endCondSection();
if (!g_skip)
{
@@ -2823,14 +2846,21 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
<*>"/*"/"*/" |
<*>"/*"[*]? {
- outputArray(yytext,(int)yyleng);
- g_lastCContext=YY_START;
- g_commentCount=1;
- if (yyleng==3) g_lastGuardName.resize(0); // reset guard in case the #define is documented!
- BEGIN(SkipCComment);
+ if (YY_START==SkipVerbatim || YY_START==SkipCond)
+ {
+ REJECT;
+ }
+ else
+ {
+ outputArray(yytext,(int)yyleng);
+ g_lastCContext=YY_START;
+ g_commentCount=1;
+ if (yyleng==3) g_lastGuardName.resize(0); // reset guard in case the #define is documented!
+ BEGIN(SkipCComment);
+ }
}
<*>"//"[/]? {
- if (YY_START==SkipVerbatim)
+ if (YY_START==SkipVerbatim || YY_START==SkipCond)
{
REJECT;
}
diff --git a/src/pycode.l b/src/pycode.l
index 19e1119..226c448 100644
--- a/src/pycode.l
+++ b/src/pycode.l
@@ -1173,7 +1173,7 @@ TARGET ({IDENTIFIER}|"("{TARGET_LIST}")"|"["{TARGET_LIST}"]"|{ATTRIBUT
codifyLines(yytext);
endFontClass();
- // No indentation necesary
+ // No indentation necessary
g_noSuiteFound = FALSE;
}
@@ -1182,7 +1182,7 @@ TARGET ({IDENTIFIER}|"("{TARGET_LIST}")"|"["{TARGET_LIST}"]"|{ATTRIBUT
codifyLines(yytext);
endFontClass();
- // No indentation necesary
+ // No indentation necessary
g_noSuiteFound = FALSE;
}
{IDENTIFIER} {
diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp
index 1bdeb55..c3b715c 100644
--- a/src/rtfgen.cpp
+++ b/src/rtfgen.cpp
@@ -2701,6 +2701,16 @@ void RTFGenerator::endParameterType()
t << " ";
}
+void RTFGenerator::exceptionEntry(const char* prefix,bool closeBracket)
+{
+ DBG_RTF(t << "{\\comment (exceptionEntry)}" << endl)
+ if (prefix)
+ t << " " << prefix;
+ else if (closeBracket)
+ t << ")";
+ t << " ";
+}
+
void RTFGenerator::writeDoc(DocNode *n,Definition *ctx,MemberDef *)
{
RTFDocVisitor *visitor = new RTFDocVisitor(t,*this,ctx?ctx->getDefFileExtension():QCString(""));
diff --git a/src/rtfgen.h b/src/rtfgen.h
index a580b79..6c3393f 100644
--- a/src/rtfgen.h
+++ b/src/rtfgen.h
@@ -230,6 +230,7 @@ class RTFGenerator : public OutputGenerator
void endParameterName(bool,bool,bool) {}
void startParameterList(bool) {}
void endParameterList() {}
+ void exceptionEntry(const char*,bool);
void startConstraintList(const char *);
void startConstraintParam();
diff --git a/src/scanner.l b/src/scanner.l
index 0423299..452632b 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -608,9 +608,6 @@ BN [ \t\n\r]
BL [ \t\r]*"\n"
B [ \t]
BS ^(({B}*"//")?)(({B}*"*"+)?){B}*
-FILESCHAR [a-z_A-Z0-9\x80-\xFF\\:\\\/\-\+]
-FILEECHAR [a-z_A-Z0-9\x80-\xFF\-\+]
-FILE ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|("\""[^\n\"]+"\"")
ID "$"?[a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]*
SCOPEID {ID}({ID}*{BN}*"::"{BN}*)*({ID}?)
SCOPENAME "$"?(({ID}?{BN}*"::"{BN}*)*)(((~|!){BN}*)?{ID})
@@ -713,6 +710,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\"
%x QtPropRead
%x QtPropWrite
%x ReadInitializer
+%x UNOIDLAttributeBlock
%x GetCallType
%x CppQuote
%x EndCppQuote
@@ -1332,6 +1330,17 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\"
current->virt = Virtual;
lineCount();
}
+<FindMembers>{B}*"published"{BN}+ { // UNO IDL published keyword
+ if (insideIDL)
+ {
+ lineCount();
+ current->spec |= Entry::Published;
+ }
+ else
+ {
+ REJECT;
+ }
+ }
<FindMembers>{B}*"abstract"{BN}+ {
if (!insidePHP)
{
@@ -1428,13 +1437,77 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\"
current->name = QCString(yytext).stripWhiteSpace();
}
}
-<FindMembers>{B}*((("disp")?"interface")|"valuetype"){BN}+ { // M$/Corba IDL/Java interface
+<FindMembers>{B}*"constants"{BN}+ { // UNO IDL constant group
+ lineCount();
+ if (insideIDL)
+ {
+ isTypedef=FALSE;
+ current->section = Entry::NAMESPACE_SEC;
+ current->type = "constants";
+ current->fileName = yyFileName;
+ current->startLine = yyLineNr;
+ current->startColumn = yyColNr;
+ current->bodyLine = yyLineNr;
+ BEGIN( CompoundName );
+ }
+ else
+ {
+ addType( current ) ;
+ current->name = QCString(yytext).stripWhiteSpace();
+ }
+ }
+<FindMembers>{BN}*("service"){BN}+ { // UNO IDL service
+ lineCount();
+ if (insideIDL)
+ {
+ isTypedef=FALSE;
+ current->section = Entry::CLASS_SEC;
+ current->spec = Entry::Service |
+ // preserve UNO IDL [optional] or published
+ (current->spec & (Entry::Optional|Entry::Published));
+ addType( current ) ;
+ current->type += " service " ;
+ current->fileName = yyFileName;
+ current->startLine = yyLineNr;
+ current->bodyLine = yyLineNr;
+ BEGIN( CompoundName );
+ }
+ else // TODO is addType right? just copy/pasted
+ {
+ addType( current ) ;
+ current->name = QCString(yytext).stripWhiteSpace();
+ }
+ }
+<FindMembers>{BN}*("singleton"){BN}+ { // UNO IDL singleton
+ lineCount();
+ if (insideIDL)
+ {
+ isTypedef=FALSE;
+ current->section = Entry::CLASS_SEC;
+ current->spec = Entry::Singleton |
+ (current->spec & Entry::Published); // preserve
+ addType( current ) ;
+ current->type += " singleton " ;
+ current->fileName = yyFileName;
+ current->startLine = yyLineNr;
+ current->bodyLine = yyLineNr;
+ BEGIN( CompoundName );
+ }
+ else // TODO is addType right? just copy/pasted
+ {
+ addType( current ) ;
+ current->name = QCString(yytext).stripWhiteSpace();
+ }
+ }
+<FindMembers>{BN}*((("disp")?"interface")|"valuetype"){BN}+ { // M$/Corba/UNO IDL/Java interface
lineCount();
if (insideIDL || insideJava || insideCS || insideD || insidePHP)
{
isTypedef=FALSE;
current->section = Entry::CLASS_SEC;
- current->spec = Entry::Interface;
+ current->spec = Entry::Interface |
+ // preserve UNO IDL [optional] or published
+ (current->spec & (Entry::Optional|Entry::Published));
addType( current ) ;
current->type += " interface" ;
current->fileName = yyFileName;
@@ -1501,7 +1574,8 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\"
<FindMembers>{B}*"exception"{BN}+ { // Corba IDL exception
isTypedef=FALSE;
current->section = Entry::CLASS_SEC;
- current->spec = Entry::Exception;
+ current->spec = Entry::Exception |
+ (current->spec & Entry::Published); // preserve UNO IDL
addType( current ) ;
current->type += " exception" ;
current->fileName = yyFileName;
@@ -1607,7 +1681,8 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\"
<FindMembers>{B}*{TYPEDEFPREFIX}"struct"/{BN}+ {
isTypedef=((QCString)yytext).find("typedef")!=-1;
current->section = Entry::CLASS_SEC ;
- current->spec = Entry::Struct;
+ current->spec = Entry::Struct |
+ (current->spec & Entry::Published); // preserve UNO IDL
// bug 582676: can be a struct nested in an interface so keep insideObjC state
//current->objc = insideObjC = FALSE;
addType( current ) ;
@@ -2640,6 +2715,15 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\"
initBracketCount=0;
BEGIN(ReadInitializer);
}
+<UNOIDLAttributeBlock>{BN}*[gs]"et"{BN}+"raises"{BN}*"("{BN}*{SCOPENAME}{BN}*(","{BN}*{SCOPENAME}{BN}*)*")"{BN}*";" {
+ lineCount();
+ current->exception += " ";
+ current->exception += removeRedundantWhiteSpace(yytext);
+ }
+<UNOIDLAttributeBlock>"}" {
+ current->exception += " }";
+ BEGIN(FindMembers);
+ }
/* Read initializer rules */
<ReadInitializer>"(" {
lastRoundContext=YY_START;
@@ -3248,6 +3332,39 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\"
}
current->spec |= Entry::Gettable;
}
+<IDLAttribute>"property" { // UNO IDL property
+ current->spec |= Entry::Property;
+ }
+<IDLAttribute>"attribute" { // UNO IDL attribute
+ current->spec |= Entry::Attribute;
+ }
+<IDLAttribute>"optional" { // on UNO IDL interface/service/attribute/property
+ current->spec |= Entry::Optional;
+ }
+<IDLAttribute>"readonly" { // on UNO IDL attribute or property
+ current->spec |= Entry::Readonly;
+ }
+<IDLAttribute>"bound" { // on UNO IDL attribute or property
+ current->spec |= Entry::Bound;
+ }
+<IDLAttribute>"removable" { // on UNO IDL property
+ current->spec |= Entry::Removable;
+ }
+<IDLAttribute>"constrained" { // on UNO IDL property
+ current->spec |= Entry::Constrained;
+ }
+<IDLAttribute>"transient" { // on UNO IDL property
+ current->spec |= Entry::Transient;
+ }
+<IDLAttribute>"maybevoid" { // on UNO IDL property
+ current->spec |= Entry::MaybeVoid;
+ }
+<IDLAttribute>"maybedefault" { // on UNO IDL property
+ current->spec |= Entry::MaybeDefault;
+ }
+<IDLAttribute>"maybeambiguous" { // on UNO IDL property
+ current->spec |= Entry::MaybeAmbiguous;
+ }
<IDLAttribute>. {
}
<IDLPropName>{BN}*{ID}{BN}* {
@@ -5044,6 +5161,28 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\"
current_root->addSubEntry(current);
current = new Entry;
}
+ else if (insideIDL &&
+ (((current_root->spec & (Entry::Interface |
+ Entry::Service)) &&
+ (current->spec & Entry::Interface)) ||
+ ((current_root->spec & (Entry::Service |
+ Entry::Singleton)) &&
+ (current->spec & Entry::Service))))
+ {
+ // interface inside of UNO IDL service or interface
+ // service inside of UNO IDL service or singleton
+ // there may be documentation on the member,
+ // so do not throw it away...
+ current->name = yytext;
+ current->name=current->name.left(current->name.length()-1).stripWhiteSpace();
+ current->section = (current->spec & Entry::Interface)
+ ? Entry::EXPORTED_INTERFACE_SEC
+ : Entry::INCLUDED_SERVICE_SEC;
+// current->section = Entry::MEMBERDOC_SEC;
+ current->spec &= ~(Entry::Interface|Entry::Service); // FIXME: horrible: Interface == Gettable, so need to clear it - actually we're mixing values from different enums in this case... granted only Optional and Interface are actually valid in this context but urgh...
+ current_root->addSubEntry(current);
+ current = new Entry;
+ }
unput(';');
current->reset();
@@ -5299,7 +5438,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\"
(current->spec & Entry::Struct) ||
(current->spec & Entry::Ref) ||
(current->spec & Entry::Value) ||
- insidePHP || insideCS || insideD || insideObjC
+ insidePHP || insideCS || insideD || insideObjC || insideIDL
)
baseProt=Public;
else
@@ -5583,7 +5722,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\"
}
if ((current->spec & (Entry::Interface|Entry::Struct)) ||
insideJava || insidePHP || insideCS ||
- insideD || insideObjC)
+ insideD || insideObjC || insideIDL)
{
baseProt=Public;
}
@@ -5784,6 +5923,13 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\"
curlyCount=0;
BEGIN( CSAccessorDecl );
}
+ else if (insideIDL && (current->spec & Entry::Attribute))
+ {
+ // UNO IDL: attributes may have setter and getter
+ // exception specifications
+ current->exception = " {";
+ BEGIN(UNOIDLAttributeBlock);
+ }
else
{
if ((insideJava || insideCS || insideD) &&
@@ -6330,7 +6476,7 @@ static void parseCompounds(Entry *rt)
// set default protection based on the compound type
if( ce->section==Entry::CLASS_SEC ) // class
{
- if (insidePHP || insideD || insideJS)
+ if (insidePHP || insideD || insideJS || insideIDL)
{
current->protection = protection = Public ;
}
diff --git a/src/translator.h b/src/translator.h
index 41d3461..4de5da7 100644
--- a/src/translator.h
+++ b/src/translator.h
@@ -582,6 +582,18 @@ class Translator
virtual QCString trMethodDocumentation() = 0;
virtual QCString trDesignOverview() = 0;
+//////////////////////////////////////////////////////////////////////////
+// new since 1.8.4
+//////////////////////////////////////////////////////////////////////////
+
+ virtual QCString trInterfaces() = 0;
+ virtual QCString trServices() = 0;
+ virtual QCString trConstantGroups() = 0;
+ virtual QCString trConstantGroupReference(const char *namespaceName) = 0;
+ virtual QCString trServiceReference(const char *sName) = 0;
+ virtual QCString trSingletonReference(const char *sName) = 0;
+ virtual QCString trServiceGeneratedFromFiles(bool single) = 0;
+ virtual QCString trSingletonGeneratedFromFiles(bool single) = 0;
};
#endif
diff --git a/src/translator_adapter.h b/src/translator_adapter.h
index 3073517..4a4db9d 100644
--- a/src/translator_adapter.h
+++ b/src/translator_adapter.h
@@ -41,7 +41,38 @@ class TranslatorAdapterBase : public Translator
};
-class TranslatorAdapter_1_8_2 : public TranslatorAdapterBase
+class TranslatorAdapter_1_8_4 : public TranslatorAdapterBase
+{
+ public:
+ virtual QCString updateNeededMessage()
+ { return createUpdateNeededMessage(idLanguage(),"release 1.8.4"); }
+
+ virtual QCString trInterfaces()
+ { return english.trInterfaces(); }
+
+ virtual QCString trServices()
+ { return english.trServices(); }
+
+ virtual QCString trConstantGroups()
+ { return english.trConstantGroups(); }
+
+ virtual QCString trConstantGroupReference(const char *namespaceName)
+ { return english.trConstantGroupReference(namespaceName); }
+
+ virtual QCString trServiceReference(const char *sName)
+ { return english.trServiceReference(sName); }
+
+ virtual QCString trSingletonReference(const char *sName)
+ { return english.trSingletonReference(sName); }
+
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ { return english.trServiceGeneratedFromFiles(single); }
+
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ { return english.trSingletonGeneratedFromFiles(single); }
+};
+
+class TranslatorAdapter_1_8_2 : public TranslatorAdapter_1_8_4
{
public:
virtual QCString updateNeededMessage()
@@ -70,7 +101,7 @@ class TranslatorAdapter_1_8_2 : public TranslatorAdapterBase
};
-/** Adapter class for languages that only contain translations upto
+/** Adapter class for languages that only contain translations up to
* version 1.8.0.
*/
class TranslatorAdapter_1_8_0 : public TranslatorAdapter_1_8_2
@@ -102,7 +133,7 @@ class TranslatorAdapter_1_8_0 : public TranslatorAdapter_1_8_2
};
-/** Adapter class for languages that only contain translations upto
+/** Adapter class for languages that only contain translations up to
* version 1.7.5.
*/
class TranslatorAdapter_1_7_5 : public TranslatorAdapter_1_8_0
@@ -121,7 +152,7 @@ class TranslatorAdapter_1_7_5 : public TranslatorAdapter_1_8_0
{ return english.trDirDepGraph(name); }
};
-/** Adapter class for languages that only contain translations upto
+/** Adapter class for languages that only contain translations up to
* version 1.6.3.
*/
class TranslatorAdapter_1_6_3 : public TranslatorAdapter_1_7_5
@@ -142,7 +173,7 @@ class TranslatorAdapter_1_6_3 : public TranslatorAdapter_1_7_5
{ return english.trDateTime(year,month,day,dayOfWeek,hour,minutes,seconds,includeTime); }
};
-/** Adapter class for languages that only contain translations upto
+/** Adapter class for languages that only contain translations up to
* version 1.6.0.
*/
class TranslatorAdapter_1_6_0 : public TranslatorAdapter_1_6_3
@@ -167,7 +198,7 @@ class TranslatorAdapter_1_6_0 : public TranslatorAdapter_1_6_3
{ return english.trNoMatches(); }
};
-/** Adapter class for languages that only contain translations upto
+/** Adapter class for languages that only contain translations up to
* version 1.5.4
*/
class TranslatorAdapter_1_5_4 : public TranslatorAdapter_1_6_0
@@ -246,7 +277,7 @@ class TranslatorAdapter_1_5_4 : public TranslatorAdapter_1_6_0
{ return english.trTypeConstraints(); }
};
-/** Adapter class for languages that only contain translations upto
+/** Adapter class for languages that only contain translations up to
* version 1.4.6
*/
class TranslatorAdapter_1_4_6 : public TranslatorAdapter_1_5_4
diff --git a/src/translator_am.h b/src/translator_am.h
index 5264a21..d8ab0fd 100644
--- a/src/translator_am.h
+++ b/src/translator_am.h
@@ -572,36 +572,38 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
ClassDef::CompoundType compType,
bool isTemplate)
{
- QCString result=(QCString)clName;
- if (isTemplate)
- {
- switch(compType)
- {
- case ClassDef::Class: result+=" Դասի"; break;
- case ClassDef::Struct: result+=" Կառուցվածքի"; break;
- case ClassDef::Union: result+=" Միավորման"; break;
- case ClassDef::Interface: result+=" Ինտերֆեյսի"; break;
- case ClassDef::Protocol: result+=" Արձանագրության"; break;
- case ClassDef::Category: result+=" Դասակարգման"; break;
- case ClassDef::Exception: result+=" Բացառության"; break;
- }
- result+=" Ձևանմուշներ";
- }
- else
- {
- switch(compType)
- {
- case ClassDef::Class: result+=" Դաս"; break;
- case ClassDef::Struct: result+=" Կառուցվածք"; break;
- case ClassDef::Union: result+=" Միավորում"; break;
- case ClassDef::Interface: result+=" Ինտերֆեյս"; break;
- case ClassDef::Protocol: result+=" Արձանագրություն"; break;
- case ClassDef::Category: result+=" Դասակարգում"; break;
- case ClassDef::Exception: result+=" Բացառություն"; break;
- }
- }
- return result;
- }
+ QCString result=(QCString)clName;
+ if (isTemplate)
+ {
+ switch(compType)
+ {
+ case ClassDef::Class: result+=" Դասի"; break;
+ case ClassDef::Struct: result+=" Կառուցվածքի"; break;
+ case ClassDef::Union: result+=" Միավորման"; break;
+ case ClassDef::Interface: result+=" Ինտերֆեյսի"; break;
+ case ClassDef::Protocol: result+=" Արձանագրության"; break;
+ case ClassDef::Category: result+=" Դասակարգման"; break;
+ case ClassDef::Exception: result+=" Բացառության"; break;
+ default: break;
+ }
+ result+=" Ձևանմուշներ";
+ }
+ else
+ {
+ switch(compType)
+ {
+ case ClassDef::Class: result+=" Դաս"; break;
+ case ClassDef::Struct: result+=" Կառուցվածք"; break;
+ case ClassDef::Union: result+=" Միավորում"; break;
+ case ClassDef::Interface: result+=" Ինտերֆեյս"; break;
+ case ClassDef::Protocol: result+=" Արձանագրություն"; break;
+ case ClassDef::Category: result+=" Դասակարգում"; break;
+ case ClassDef::Exception: result+=" Բացառություն"; break;
+ default: break;
+ }
+ }
+ return result;
+ }
/*! used as the title of the HTML page of a file */
virtual QCString trFileReference(const char *fileName)
@@ -755,6 +757,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="արձանագրության"; break;
case ClassDef::Category: result+="դասակարգման"; break;
case ClassDef::Exception: result+="բացառության"; break;
+ default: break;
}
result+=" փաստագրությունը ստեղծվել է հետևյալ ֆայլ";
if (single) result+="ից."; else result+="երից.";
@@ -1623,30 +1626,32 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
QCString result=(QCString)clName;
if (!isTemplate)
{
- switch(compType)
- {
- case ClassDef::Class: result+=" Մոդուլ"; break;
- case ClassDef::Struct: result+=" Տիպ"; break;
- case ClassDef::Union: result+=" Միավորում"; break;
- case ClassDef::Interface: result+=" Ինտերֆեյս"; break;
- case ClassDef::Protocol: result+=" Արձանագրություն"; break;
- case ClassDef::Category: result+=" Դասակարգում"; break;
- case ClassDef::Exception: result+=" Բացառություն"; break;
- }
+ switch(compType)
+ {
+ case ClassDef::Class: result+=" Մոդուլ"; break;
+ case ClassDef::Struct: result+=" Տիպ"; break;
+ case ClassDef::Union: result+=" Միավորում"; break;
+ case ClassDef::Interface: result+=" Ինտերֆեյս"; break;
+ case ClassDef::Protocol: result+=" Արձանագրություն"; break;
+ case ClassDef::Category: result+=" Դասակարգում"; break;
+ case ClassDef::Exception: result+=" Բացառություն"; break;
+ default: break;
+ }
}
else
{
- switch(compType)
- {
- case ClassDef::Class: result+=" Մոդուլի"; break;
- case ClassDef::Struct: result+=" Տիպի"; break;
- case ClassDef::Union: result+=" Միավորման"; break;
- case ClassDef::Interface: result+=" Ինտերֆեյսի"; break;
- case ClassDef::Protocol: result+=" Արձանագրության"; break;
- case ClassDef::Category: result+=" Դասակարգման"; break;
- case ClassDef::Exception: result+=" Բացառության"; break;
- }
- result+=" Ձևանմուշ";
+ switch(compType)
+ {
+ case ClassDef::Class: result+=" Մոդուլի"; break;
+ case ClassDef::Struct: result+=" Տիպի"; break;
+ case ClassDef::Union: result+=" Միավորման"; break;
+ case ClassDef::Interface: result+=" Ինտերֆեյսի"; break;
+ case ClassDef::Protocol: result+=" Արձանագրության"; break;
+ case ClassDef::Category: result+=" Դասակարգման"; break;
+ case ClassDef::Exception: result+=" Բացառության"; break;
+ default: break;
+ }
+ result+=" Ձևանմուշ";
}
return result;
}
@@ -1710,6 +1715,7 @@ class TranslatorArmenian : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="արձանագրության"; break;
case ClassDef::Category: result+="դասակարգման"; break;
case ClassDef::Exception: result+="բացառության"; break;
+ default: break;
}
result+=" փաստագրությունը ստեղծվել է հետևալ ֆայլ";
if (single) result+="ից."; else result+="երից.";
diff --git a/src/translator_ar.h b/src/translator_ar.h
index 818cef8..8b6b2e0 100644
--- a/src/translator_ar.h
+++ b/src/translator_ar.h
@@ -644,6 +644,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
case ClassDef::Protocol: result+=" Protocol"; break;
case ClassDef::Category: result+=" Category"; break;
case ClassDef::Exception: result+=" Exception"; break;
+ default: break;
}
if (isTemplate) result+=" Template";
result+=" Reference";
@@ -803,6 +804,7 @@ class TranslatorArabic : public TranslatorAdapter_1_4_6
case ClassDef::Protocol: result+=" "; break;
case ClassDef::Category: result+=" "; break;
case ClassDef::Exception: result+=" "; break;
+ default: break;
}
result+=" ";
if (single) result+=" :"; else result+=" :";
diff --git a/src/translator_br.h b/src/translator_br.h
index f4c0c20..e67ad9f 100644
--- a/src/translator_br.h
+++ b/src/translator_br.h
@@ -609,6 +609,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+=" Protocolo "; break;
case ClassDef::Category: result+=" Categoria "; break;
case ClassDef::Exception: result+=" Exceção "; break;
+ default: break;
}
result+=(QCString)clName;
return result;
@@ -767,6 +768,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="protocolo "; break;
case ClassDef::Category: result+="categoria "; break;
case ClassDef::Exception: result+="exceção "; break;
+ default: break;
}
result+=" foi gerada a partir ";
if (single) result+="do seguinte arquivo:"; else result+="dos seguintes arquivos:";
@@ -1671,6 +1673,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="do Protocolo "; break;
case ClassDef::Category: result+="da Categoria "; break;
case ClassDef::Exception: result+="da Exceção "; break;
+ default: break;
}
result += clName;
@@ -1738,6 +1741,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="esto protocolo "; break;
case ClassDef::Category: result+="esta categoria "; break;
case ClassDef::Exception: result+="esta exceção "; break;
+ default: break;
}
result+=" foi gerada a partir do";
diff --git a/src/translator_ca.h b/src/translator_ca.h
index 521037e..f888dc1 100644
--- a/src/translator_ca.h
+++ b/src/translator_ca.h
@@ -621,6 +621,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="l Protocol "; break;
case ClassDef::Category: result+=" la Categoria "; break;
case ClassDef::Exception: result+=" l'Excepció "; break;
+ default: break;
}
if (isTemplate) result+="Template ";
result+=(QCString)clName;
@@ -780,6 +781,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+=" protocol"; break;
case ClassDef::Category: result+="a categoria"; break;
case ClassDef::Exception: result+="a excepció"; break;
+ default: break;
}
result+=" es va generar a partir del";
if (!single) result+="s";
@@ -1674,6 +1676,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="l Protocol "; break;
case ClassDef::Category: result+=" la Categoria "; break;
case ClassDef::Exception: result+=" l'Excepció "; break;
+ default: break;
}
if (isTemplate) result+="Template ";
result+=(QCString)clName;
@@ -1745,6 +1748,7 @@ class TranslatorCatalan : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+=" protocol"; break;
case ClassDef::Category: result+="a categoria"; break;
case ClassDef::Exception: result+="a excepció"; break;
+ default: break;
}
result+=" es va generar a partir del";
if (!single) result+="s";
diff --git a/src/translator_cn.h b/src/translator_cn.h
index ac9dca4..ba6e078 100644
--- a/src/translator_cn.h
+++ b/src/translator_cn.h
@@ -19,7 +19,7 @@
#define TRANSLATOR_CN_H
/*!
- If you want insert a space whenever Chinese meets English charactors, set
+ If you want insert a space whenever Chinese meets English characters, set
CN_SPC to " ", else null.
*/
#define CN_SPC " "
@@ -30,7 +30,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
/*! Used for identification of the language. The identification
* should not be translated. It should be replaced by the name
* of the language in English using lower-case characters only
- * (e.g. "czech", "japanese", "russian", etc.). It sould be equal to
+ * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
* the identification used in the language.cpp.
*/
@@ -475,6 +475,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
case ClassDef::Protocol: result+="协议"; break;
case ClassDef::Category: result+="分类"; break;
case ClassDef::Exception: result+="异常"; break;
+ default: break;
}
result+=CN_SPC"参考";
return result;
@@ -643,6 +644,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
case ClassDef::Protocol: result+="协议"; break;
case ClassDef::Category: result+="分类"; break;
case ClassDef::Exception: result+="异常"; break;
+ default: break;
}
result+="的文档由以下文件生成:";
return result;
@@ -1609,6 +1611,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
case ClassDef::Protocol: result+=CN_SPC"协议"; break;
case ClassDef::Category: result+=CN_SPC"目录"; break;
case ClassDef::Exception: result+=CN_SPC"异常"; break;
+ default: break;
}
if (isTemplate) result+="模板"CN_SPC;
result+="参考手册";
@@ -1683,6 +1686,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_2
case ClassDef::Protocol: result+=CN_SPC"协议"; break;
case ClassDef::Category: result+=CN_SPC"目录"; break;
case ClassDef::Exception: result+=CN_SPC"异常"; break;
+ default: break;
}
result+=CN_SPC"的文档由以下文件生成:";
return result;
diff --git a/src/translator_cz.h b/src/translator_cz.h
index d8d9428..31d645f 100644
--- a/src/translator_cz.h
+++ b/src/translator_cz.h
@@ -84,7 +84,7 @@
// something else. It is difficult to find the general translation
// for all kinds in the Czech language.
-class TranslatorCzech : public Translator
+class TranslatorCzech : public TranslatorAdapter_1_8_2
{
public:
// --- Language control methods -------------------
@@ -657,6 +657,7 @@ class TranslatorCzech : public Translator
case ClassDef::Protocol: result += "protokolu "; break;
case ClassDef::Category: result += "kategorie "; break;
case ClassDef::Exception: result += "výjimky "; break;
+ default: break;
}
result += clName;
return result;
@@ -829,6 +830,7 @@ class TranslatorCzech : public Translator
case ClassDef::Protocol: result+="tento protokol "; break;
case ClassDef::Category: result+="tuto kategorii "; break;
case ClassDef::Exception: result+="tuto výjimku"; break;
+ default: break;
}
result+=" byla generována z ";
if (single) result+="následujícího souboru:";
@@ -1719,6 +1721,7 @@ class TranslatorCzech : public Translator
case ClassDef::Protocol: result += "protokolu "; break;
case ClassDef::Category: result += "kategorie "; break;
case ClassDef::Exception: result += "výjimky "; break;
+ default: break;
}
result += clName;
return result;
@@ -1786,6 +1789,7 @@ class TranslatorCzech : public Translator
case ClassDef::Protocol: result+="k tomuto protokolu"; break;
case ClassDef::Category: result+="k této kategorii"; break;
case ClassDef::Exception: result+="k této výjimce"; break;
+ default: break;
}
result+=" byla vygenerována z ";
if (single) result+="následujícího souboru:";
diff --git a/src/translator_de.h b/src/translator_de.h
index 415bf77..ed9bf29 100644
--- a/src/translator_de.h
+++ b/src/translator_de.h
@@ -133,7 +133,7 @@
#ifndef TRANSLATOR_DE_H
#define TRANSLATOR_DE_H
-class TranslatorGerman : public Translator
+class TranslatorGerman : public TranslatorAdapter_1_8_2
{
public:
@@ -684,6 +684,7 @@ class TranslatorGerman : public Translator
case ClassDef::Protocol: result+="Protokoll"; break;
case ClassDef::Category: result+="Kategorie"; break;
case ClassDef::Exception: result+="Ausnahmen"; break;
+ default: break;
}
result+="referenz";
return result;
@@ -851,6 +852,7 @@ class TranslatorGerman : public Translator
case ClassDef::Protocol: result+="s Protokoll"; break;
case ClassDef::Category: result+=" Kategorie"; break;
case ClassDef::Exception: result+=" Ausnahme"; break;
+ default: break;
}
result+=" wurde erzeugt aufgrund der Datei";
if (single) result+=":"; else result+="en:";
@@ -1776,6 +1778,7 @@ class TranslatorGerman : public Translator
case ClassDef::Protocol: result+="Protokoll"; break;
case ClassDef::Category: result+="Kategorie"; break;
case ClassDef::Exception: result+="Ausnahmen"; break;
+ default: break;
}
if (isTemplate) result+="-Template";
result+="-Referenz";
@@ -1844,6 +1847,7 @@ class TranslatorGerman : public Translator
case ClassDef::Protocol: result+="dieses Protokoll"; break;
case ClassDef::Category: result+="diese Kategorie"; break;
case ClassDef::Exception: result+="diese Ausnahme"; break;
+ default: break;
}
if (single)
result+=" wurde aus der folgenden Datei erzeugt:";
diff --git a/src/translator_dk.h b/src/translator_dk.h
index 4611b1a..6d17df5 100644
--- a/src/translator_dk.h
+++ b/src/translator_dk.h
@@ -632,6 +632,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+=" Protokol-"; break;
case ClassDef::Category: result+=" Kategori-"; break; // " Category-"
case ClassDef::Exception: result+=" Undtagelse-"; break; // " Exception"
+ default: break;
}
if (isTemplate) result+="skabelon-"; // "template-"
result+="reference";
@@ -789,6 +790,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="protokol"; break; // "protocol"
case ClassDef::Category: result+="kategori"; break; // "category"
case ClassDef::Exception: result+="undtagelse"; break; // "exception"
+ default: break;
}
result+=" blev genereret ud fra fil";
if (single) result+="en:"; else result+="erne:";
@@ -1604,6 +1606,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+=" Protocol"; break; // " Protocol"
case ClassDef::Category: result+=" Kategori"; break; // " Category"
case ClassDef::Exception: result+=" Undtagelse"; break; // " Exception"
+ default: break;
}
if (isTemplate) result+=" Template";
result+=" Reference";
@@ -1673,6 +1676,7 @@ class TranslatorDanish : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="protokol"; break; // "protocol"
case ClassDef::Category: result+="kategori"; break; // "category"
case ClassDef::Exception: result+="undtagelse"; break; // "exception"
+ default: break;
}
result+=" var lavet udfra flgende file"; // " was generated from the following file"
if (single) result+=":"; else result+="r:"; // ":" / "s:"
diff --git a/src/translator_en.h b/src/translator_en.h
index ccddccb..1ab9921 100644
--- a/src/translator_en.h
+++ b/src/translator_en.h
@@ -621,6 +621,7 @@ class TranslatorEnglish : public Translator
case ClassDef::Protocol: result+=" Protocol"; break;
case ClassDef::Category: result+=" Category"; break;
case ClassDef::Exception: result+=" Exception"; break;
+ default: break;
}
if (isTemplate) result+=" Template";
result+=" Reference";
@@ -779,6 +780,7 @@ class TranslatorEnglish : public Translator
case ClassDef::Protocol: result+="protocol"; break;
case ClassDef::Category: result+="category"; break;
case ClassDef::Exception: result+="exception"; break;
+ default: break;
}
result+=" was generated from the following file";
if (single) result+=":"; else result+="s:";
@@ -1679,6 +1681,7 @@ class TranslatorEnglish : public Translator
case ClassDef::Protocol: result+=" Protocol"; break;
case ClassDef::Category: result+=" Category"; break;
case ClassDef::Exception: result+=" Exception"; break;
+ default: break;
}
if (isTemplate) result+=" Template";
result+=" Reference";
@@ -1747,6 +1750,7 @@ class TranslatorEnglish : public Translator
case ClassDef::Protocol: result+="protocol"; break;
case ClassDef::Category: result+="category"; break;
case ClassDef::Exception: result+="exception"; break;
+ default: break;
}
result+=" was generated from the following file";
if (single) result+=":"; else result+="s:";
@@ -1988,6 +1992,62 @@ class TranslatorEnglish : public Translator
}
//////////////////////////////////////////////////////////////////////////
+// new since 1.8.4
+//////////////////////////////////////////////////////////////////////////
+
+ /** old style UNO IDL services: implemented interfaces */
+ virtual QCString trInterfaces()
+ { return "Exported Interfaces"; }
+
+ /** old style UNO IDL services: inherited services */
+ virtual QCString trServices()
+ { return "Included Services"; }
+
+ /** UNO IDL constant groups */
+ virtual QCString trConstantGroups()
+ { return "Constant Groups"; }
+
+ /** UNO IDL constant groups */
+ virtual QCString trConstantGroupReference(const char *namespaceName)
+ {
+ QCString result=namespaceName;
+ result+=" Constant Group Reference";
+ return result;
+ }
+ /** UNO IDL service page title */
+ virtual QCString trServiceReference(const char *sName)
+ {
+ QCString result=(QCString)sName;
+ result+=" Service Reference";
+ return result;
+ }
+ /** UNO IDL singleton page title */
+ virtual QCString trSingletonReference(const char *sName)
+ {
+ QCString result=(QCString)sName;
+ result+=" Singleton Reference";
+ return result;
+ }
+ /** UNO IDL service page */
+ virtual QCString trServiceGeneratedFromFiles(bool single)
+ {
+ // single is true implies a single file
+ QCString result=(QCString)"The documentation for this service "
+ "was generated from the following file";
+ if (single) result+=":"; else result+="s:";
+ return result;
+ }
+ /** UNO IDL singleton page */
+ virtual QCString trSingletonGeneratedFromFiles(bool single)
+ {
+ // single is true implies a single file
+ QCString result=(QCString)"The documentation for this singleton "
+ "was generated from the following file";
+ if (single) result+=":"; else result+="s:";
+ return result;
+ }
+
+//////////////////////////////////////////////////////////////////////////
};
diff --git a/src/translator_eo.h b/src/translator_eo.h
index a4f60a1..9c08d4c 100644
--- a/src/translator_eo.h
+++ b/src/translator_eo.h
@@ -42,7 +42,7 @@
Translator class (by the local maintainer) when the localized
translator is made up-to-date again.
*/
-class TranslatorEsperanto : public Translator
+class TranslatorEsperanto : public TranslatorAdapter_1_8_2
{
public:
@@ -623,6 +623,7 @@ class TranslatorEsperanto : public Translator
case ClassDef::Protocol: result+="protokolo "; break;
case ClassDef::Category: result+="kategorio "; break;
case ClassDef::Exception: result+="escepto "; break;
+ default: break;
}
result+=(QCString)clName;
return result;
@@ -780,6 +781,7 @@ class TranslatorEsperanto : public Translator
case ClassDef::Protocol: result+="protokolo"; break;
case ClassDef::Category: result+="kategorio"; break;
case ClassDef::Exception: result+="escepto"; break;
+ default: break;
}
result+=" generitas el la ";
if (single) result+="sekva dosiero:";
@@ -1679,6 +1681,7 @@ class TranslatorEsperanto : public Translator
case ClassDef::Protocol: result+="protokolo "; break;
case ClassDef::Category: result+="kategorio "; break;
case ClassDef::Exception: result+="escepto "; break;
+ default: break;
}
result+=(QCString)clName;
return result;
@@ -1745,6 +1748,7 @@ class TranslatorEsperanto : public Translator
case ClassDef::Protocol: result+="protokolo"; break;
case ClassDef::Category: result+="kategorio"; break;
case ClassDef::Exception: result+="escepto"; break;
+ default: break;
}
result+=" kreiĝis el la ";
if (single) result+="sekva dosiero:"; else result+="sekvaj dosieroj:";
diff --git a/src/translator_es.h b/src/translator_es.h
index 745498b..9d3ba1d 100644
--- a/src/translator_es.h
+++ b/src/translator_es.h
@@ -33,7 +33,7 @@
* Updated to 1.8.2 by Bartomeu Creus Navarro (01-julio-2012)
*/
-class TranslatorSpanish : public Translator
+class TranslatorSpanish : public TranslatorAdapter_1_8_2
{
public:
@@ -613,6 +613,7 @@ class TranslatorSpanish : public Translator
case ClassDef::Protocol: result+="l Protocolo "; break;
case ClassDef::Category: result+=" la Categoria "; break;
case ClassDef::Exception: result+=" la Excepción "; break;
+ default: break;
}
result+=(QCString)clName;
return result;
@@ -780,6 +781,7 @@ class TranslatorSpanish : public Translator
case ClassDef::Protocol: result+="e protocolo"; break;
case ClassDef::Category: result+="a categoría"; break;
case ClassDef::Exception: result+="a excepción"; break;
+ default: break;
}
result+=" fue generada a partir de";
if (single) result+="l siguiente fichero:";
@@ -1737,6 +1739,7 @@ class TranslatorSpanish : public Translator
case ClassDef::Protocol: result+="l protocolo"; break;
case ClassDef::Category: result+=" la categoría"; break;
case ClassDef::Exception: result+=" la excepción"; break;
+ default: break;
}
result+=(QCString)clName;
return result;
@@ -1805,6 +1808,7 @@ class TranslatorSpanish : public Translator
case ClassDef::Protocol: result+="e protocolo"; break;
case ClassDef::Category: result+="a categoría"; break;
case ClassDef::Exception: result+="a excepción"; break;
+ default: break;
}
result+=" fue generada de";
if (single) result+="l siguiente fichero:";
diff --git a/src/translator_fa.h b/src/translator_fa.h
index 647ae28..d3c38a6 100644
--- a/src/translator_fa.h
+++ b/src/translator_fa.h
@@ -623,6 +623,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result=" Protocol"; break;
case ClassDef::Category: result=" Category"; break;
case ClassDef::Exception: result=" استثناء"; break;
+ default: break;
}
if (isTemplate) result+=" قالب";
result=QCString(clName) + " مرجع" +result ;
@@ -779,6 +780,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+="protocol"; break;
case ClassDef::Category: result+="category"; break;
case ClassDef::Exception: result+="exception"; break;
+ default: break;
}
result+=" از روی پرونده ";
if (single) result+=""; else result+="های ";
@@ -1651,6 +1653,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+=" Protocol"; break;
case ClassDef::Category: result+=" Category"; break;
case ClassDef::Exception: result+=" Exception"; break;
+ default: break;
}
if (isTemplate) result+=" Template";
result+=" Reference";
@@ -1708,6 +1711,7 @@ class TranslatorPersian : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+="protocol"; break;
case ClassDef::Category: result+="category"; break;
case ClassDef::Exception: result+="exception"; break;
+ default: break;
}
result+=" was generated from the following file";
if (single) result+=":"; else result+="s:";
diff --git a/src/translator_fi.h b/src/translator_fi.h
index cfe933d..ff852e8 100644
--- a/src/translator_fi.h
+++ b/src/translator_fi.h
@@ -686,6 +686,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=" protokolla"; break; // " Protocol"
case ClassDef::Category: result+=" kategoria"; break; // " Category"
case ClassDef::Exception: result+=" poikkeus"; break; // " Exception"
+ default: break;
}
if (isTemplate) result+="malli"; // " Template"
result+="referenssi"; // " Reference"
@@ -845,6 +846,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="protokollalle"; break; // "protocol"
case ClassDef::Category: result+="kategorialle"; break; // "category"
case ClassDef::Exception: result+="poikkeukselle"; break; // "exception"
+ default: break;
}
if (single) result+=" luotiin seuraavasta tiedostosta:"; // " was generated from the following file"
else result+=" luotiin seuraavista tiedostoista:"; // ":" or "s:"
@@ -1799,6 +1801,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=" protokolla"; break; // " Protocol"
case ClassDef::Category: result+=" kategoria"; break; // " Category"
case ClassDef::Exception: result+=" poikkeus"; break; // " Exception"
+ default: break;
}
if (isTemplate) result+="malli"; // " Template"
result+="referenssi"; // " Reference"
@@ -1866,6 +1869,7 @@ class TranslatorFinnish : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="protokollalle"; break; // "protocol"
case ClassDef::Category: result+="kategorialle"; break; // "category"
case ClassDef::Exception: result+="poikkeukselle"; break; // "exception"
+ default: break;
}
result+=" luotiin "; // " was generated from the following file"
if (single) result+="seuraavasta tiedostosta:"; else result+="seuraavista tiedostoista:"; // ":" / "s:"
diff --git a/src/translator_fr.h b/src/translator_fr.h
index 482667e..8befead 100644
--- a/src/translator_fr.h
+++ b/src/translator_fr.h
@@ -679,6 +679,7 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="le protocol "; break;
case ClassDef::Category: result+="la catgorie "; break;
case ClassDef::Exception: result+="l'exception "; break;
+ default: break;
}
result+=(QCString)clName;
return result;
@@ -838,6 +839,7 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="ce protocol"; female = false; break;
case ClassDef::Category: result+="cette catgorie"; break;
case ClassDef::Exception: result+="cette exception"; break;
+ default: break;
}
if (female) result+= " a t gnre partir ";
else result+=" a t gnr partir ";
@@ -1739,6 +1741,7 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="du protocole "; break;
case ClassDef::Category: result+="de la catgorie "; break;
case ClassDef::Exception: result+="de l'exception "; break;
+ default: break;
}
result+=(QCString)clName;
return result;
@@ -1806,6 +1809,7 @@ class TranslatorFrench : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="ce protocole"; break;
case ClassDef::Category: result+="cette catgorie"; break;
case ClassDef::Exception: result+="cette exception"; break;
+ default: break;
}
result+=" a t gnre partir ";
if (single) result+="du fichier suivant :"; else result+="des fichiers suivants :";
diff --git a/src/translator_gr.h b/src/translator_gr.h
index 8457f4c..636da39 100644
--- a/src/translator_gr.h
+++ b/src/translator_gr.h
@@ -19,14 +19,14 @@
* 15 Dec 2001 : Translation to greek by
* Harry Kalogirou <no email>
*
- * 01 Jan 2009 : Greek maintainance by
+ * 01 Jan 2009 : Greek maintenance by
* Paul Gessos <gessos.paul@yahoo.gr>
*/
#ifndef TRANSLATOR_GR_H
#define TRANSLATOR_GR_H
-class TranslatorGreek : public Translator
+class TranslatorGreek : public TranslatorAdapter_1_8_2
{
public:
@@ -593,8 +593,9 @@ class TranslatorGreek : public Translator
case ClassDef::Protocol: result+=" Πρωτοκόλλου "; break;
case ClassDef::Category: result+=" Κατηγορίας "; break;
case ClassDef::Exception: result+=" Εξαίρεσης "; break;
+ default: break;
}
- result+=clName;
+ result+=clName;
return result;
}
@@ -751,6 +752,7 @@ class TranslatorGreek : public Translator
case ClassDef::Protocol: result+="αυτό το πρωτόκολλο"; break;
case ClassDef::Category: result+="αυτή την κατηγορία"; break;
case ClassDef::Exception: result+="αυτή την εξαίρεση"; break;
+ default: break;
}
result+=" δημιουργήθηκε απο τ";
if (single) result+="ο ακόλουθο αρχείο:"; else result+="α ακόλουθα αρχεία:";
@@ -1650,6 +1652,7 @@ class TranslatorGreek : public Translator
case ClassDef::Protocol: result+=" Πρωτόκολλο"; break;
case ClassDef::Category: result+=" Κατηγορία"; break;
case ClassDef::Exception: result+=" Εξαίρεση"; break;
+ default: break;
}
if (isTemplate) result+=" Πρότυπο";
result+=" Δήλωση";
@@ -1717,6 +1720,7 @@ class TranslatorGreek : public Translator
case ClassDef::Protocol: result+="αυτό το πρωτόκολλο"; break;
case ClassDef::Category: result+="αυτή την κατηγορία"; break;
case ClassDef::Exception: result+="αυτή την εξαίρεση"; break;
+ default: break;
}
result+=" δημιουργήθηκε από ";
if (single) result+="το παρακάτω αρχείο:"; else result+="τα παρακάτω αρχεία:";
diff --git a/src/translator_hr.h b/src/translator_hr.h
index 0c33407..bb124dd 100644
--- a/src/translator_hr.h
+++ b/src/translator_hr.h
@@ -18,7 +18,7 @@
// Updates:
// --------
// 2000/08/20
-// - Better handling of ISO-8859-2/ WIN 1250 stuff based on (actualy stolen from :-)) Czech translations
+// - Better handling of ISO-8859-2/ WIN 1250 stuff based on (actually stolen from :-)) Czech translations
// implemented by Petr Prikryl (prikrylp@skil.cz).
// As opposed to Czech translation this one assumes that Doxygen strings are written in Linux ( it's true,
// I don't have QT pro licence ) , and uses ISOToWin function when built in WIN32
@@ -367,9 +367,9 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
case ClassDef::Protocol: result+=" protokola "; break;
case ClassDef::Category: result+=" kategorije "; break;
case ClassDef::Exception: result+=" iznimke (exception) "; break;
+ default: break;
}
- result += clName;
-
+ result += clName;
return result;
}
QCString trFileReference(const char *fileName)
@@ -517,6 +517,7 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
case ClassDef::Protocol: result+="protokola"; break;
case ClassDef::Category: result+="kategorije"; break;
case ClassDef::Exception: result+="iznimke (exception)"; break;
+ default: break;
}
result+=" je napravljena iz " + trFile(FALSE, single) + ": ";
return result;
@@ -1359,13 +1360,14 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
QCString result=(QCString)clName;
switch(compType)
{
- case ClassDef::Class: result+=" Modul"; break;
- case ClassDef::Struct: result+=" Tip"; break;
- case ClassDef::Union: result+=" Unija"; break;
- case ClassDef::Interface: result+=" Sučelje"; break;
- case ClassDef::Protocol: result+=" Protokol"; break;
- case ClassDef::Category: result+=" Kategorija"; break;
- case ClassDef::Exception: result+=" Iznimka"; break;
+ case ClassDef::Class: result+=" Modul"; break;
+ case ClassDef::Struct: result+=" Tip"; break;
+ case ClassDef::Union: result+=" Unija"; break;
+ case ClassDef::Interface: result+=" Sučelje"; break;
+ case ClassDef::Protocol: result+=" Protokol"; break;
+ case ClassDef::Category: result+=" Kategorija"; break;
+ case ClassDef::Exception: result+=" Iznimka"; break;
+ default: break;
}
if (isTemplate) result+=" Predložak";
result+=" Referenca";
@@ -1426,13 +1428,14 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
QCString result=(QCString)"Dokumentacija ovog ";
switch(compType)
{
- case ClassDef::Class: result+="modula"; break;
- case ClassDef::Struct: result+="tipa"; break;
- case ClassDef::Union: result+="unije"; break;
- case ClassDef::Interface: result+="sučelja"; break;
- case ClassDef::Protocol: result+="protokola"; break;
- case ClassDef::Category: result+="kategorije"; break;
- case ClassDef::Exception: result+="iznimke"; break;
+ case ClassDef::Class: result+="modula"; break;
+ case ClassDef::Struct: result+="tipa"; break;
+ case ClassDef::Union: result+="unije"; break;
+ case ClassDef::Interface: result+="sučelja"; break;
+ case ClassDef::Protocol: result+="protokola"; break;
+ case ClassDef::Category: result+="kategorije"; break;
+ case ClassDef::Exception: result+="iznimke"; break;
+ default: break;
}
result+=" je napravljena iz :";
return result;
diff --git a/src/translator_hu.h b/src/translator_hu.h
index 17d588e..58cb0d5 100644
--- a/src/translator_hu.h
+++ b/src/translator_hu.h
@@ -602,6 +602,7 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
case ClassDef::Protocol: result+=" protocol"; break; // translate me!
case ClassDef::Category: result+=" category"; break; // translate me!
case ClassDef::Exception: result+=" kivtel"; break;
+ default: break;
}
if (isTemplate) result+="sablon-";
result+="referencia";
@@ -761,6 +762,7 @@ class TranslatorHungarian : public TranslatorAdapter_1_4_6
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="a kivtelrl"; break;
+ default: break;
}
result+=" a kvetkez fjl";
if (!single) result+="ok";
diff --git a/src/translator_id.h b/src/translator_id.h
index 3afbe50..18e561a 100644
--- a/src/translator_id.h
+++ b/src/translator_id.h
@@ -603,6 +603,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+=" Protokol "; break;
case ClassDef::Category: result+=" Kategori "; break;
case ClassDef::Exception: result+=" Eksepsi "; break;
+ default: break;
}
if (isTemplate) result+=" Template ";
result+=(QCString)clName;
@@ -762,6 +763,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="protokol"; break;
case ClassDef::Category: result+="kategori"; break;
case ClassDef::Exception: result+="eksepsi"; break;
+ default: break;
}
result+=" ini dibangkitkan dari file";
result+=single ? "" : "-file";
@@ -1658,6 +1660,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="Protokol "; break;
case ClassDef::Category: result+="Kategori "; break;
case ClassDef::Exception: result+="Eksepsi "; break;
+ default: break;
}
result+=(QCString)clName;
return result;
@@ -1724,6 +1727,7 @@ class TranslatorIndonesian : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="protocol"; break;
case ClassDef::Category: result+="category"; break;
case ClassDef::Exception: result+="exception"; break;
+ default: break;
}
result+=" ini dibangkitkan dari file";
if (!single) result+="-file ";
diff --git a/src/translator_it.h b/src/translator_it.h
index 53c9cb7..db8bd81 100644
--- a/src/translator_it.h
+++ b/src/translator_it.h
@@ -51,7 +51,7 @@
* 2001/05: adopted new translation mechanism (trough adapters),
* translated new items used since version 1.2.5 and 1.2.6,
* revised those function returning strings in OPTIMIZE_OTPUT_FOR_C case,
- * corrections regarding the plurals of some english terms mantained in the translation,
+ * corrections regarding the plurals of some english terms maintained in the translation,
* changed some terms to better suit the sense
* 2001/02: translated new items used since version 1.2.4
* 2000/11: modified slightly the translation in trLegendDocs() function,
@@ -633,6 +633,7 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
case ClassDef::Protocol: result+="il protocollo "; break;
case ClassDef::Category: result+="la categoria "; break;
case ClassDef::Exception: result+="l'eccezione "; break;
+ default: break;
}
result+=(QCString)clName;
return result;
@@ -794,6 +795,7 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
case ClassDef::Protocol: result+="o protocollo"; break;
case ClassDef::Category: result+="a categoria"; break;
case ClassDef::Exception: result+="a eccezione"; break;
+ default: break;
}
result+=" è stata generata a partire ";
if (single) result+="dal seguente file:";
@@ -1657,6 +1659,7 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
case ClassDef::Protocol: result+=" il protocollo"; break;
case ClassDef::Category: result+=" la categoria"; break;
case ClassDef::Exception: result+=" l'eccezione"; break;
+ default: break;
}
result+=(QCString)clName;
return result;
@@ -1725,6 +1728,7 @@ class TranslatorItalian : public TranslatorAdapter_1_8_2
case ClassDef::Protocol: result+="o protocollo"; break;
case ClassDef::Category: result+="a categoria"; break;
case ClassDef::Exception: result+="a eccezione"; break;
+ default: break;
}
result+=" è stata generata a partire ";
if (single) result+="dal seguente file:"; else result+="dai seguenti file:";
diff --git a/src/translator_jp.h b/src/translator_jp.h
index 8f080a4..418d6bb 100644
--- a/src/translator_jp.h
+++ b/src/translator_jp.h
@@ -601,6 +601,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=decode("ץȥ "); break;
case ClassDef::Category: result+=decode("ƥ "); break;
case ClassDef::Exception: result+=decode("㳰 "); break;
+ default: break;
}
if (isTemplate) result+=decode("ƥץ졼 ");
result+=(QCString)clName;
@@ -759,6 +760,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=decode("ץȥ"); break;
case ClassDef::Category: result+=decode("ƥ"); break;
case ClassDef::Exception: result+=decode("㳰"); break;
+ default: break;
}
result+=decode("ϼΥե뤫ޤ:");
return result;
@@ -1660,6 +1662,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=decode("ץȥ "); break;
case ClassDef::Category: result+=decode("ƥ "); break;
case ClassDef::Exception: result+=decode("㳰 "); break;
+ default: break;
}
if (isTemplate) result += decode("ƥץ졼 ");
result+=(QCString)clName;
@@ -1720,6 +1723,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=decode("ץȥ"); break;
case ClassDef::Category: result+=decode("ƥ"); break;
case ClassDef::Exception: result+=decode("㳰"); break;
+ default: break;
}
result+=decode(decode("ϼΥե뤫ޤ:"));
return result;
diff --git a/src/translator_kr.h b/src/translator_kr.h
index 043323c..3e411aa 100644
--- a/src/translator_kr.h
+++ b/src/translator_kr.h
@@ -641,6 +641,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+=" "; break;
case ClassDef::Category: result+=" īװ"; break;
case ClassDef::Exception: result+=" "; break;
+ default: break;
}
if (isTemplate) result+=" ø";
result+=" ";
@@ -800,6 +801,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+=""; break;
case ClassDef::Category: result+="īװ"; break;
case ClassDef::Exception: result+=""; break;
+ default: break;
}
result+=" ȭ ";
if (!single) result+="";
@@ -1691,6 +1693,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+=" "; break;
case ClassDef::Category: result+=" īװ"; break;
case ClassDef::Exception: result+=" "; break;
+ default: break;
}
if (isTemplate) result+=" ø";
result+=" ";
@@ -1761,6 +1764,7 @@ class TranslatorKorean : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+=""; break;
case ClassDef::Category: result+="īװ"; break;
case ClassDef::Exception: result+=""; break;
+ default: break;
}
result+=" ȭ :";
return result;
diff --git a/src/translator_lt.h b/src/translator_lt.h
index 166ecbd..414ea8f 100644
--- a/src/translator_lt.h
+++ b/src/translator_lt.h
@@ -611,6 +611,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
case ClassDef::Protocol: result+=" Protokolas"; break;
case ClassDef::Category: result+=" Kategorija"; break;
case ClassDef::Exception: result+=" Iimtis"; break;
+ default: break;
}
if (isTemplate) result+=" ablonas";
return result;
@@ -769,6 +770,7 @@ class TranslatorLithuanian : public TranslatorAdapter_1_4_6
case ClassDef::Protocol: result+="iam protocolui"; break;
case ClassDef::Category: result+="iai kategorijai"; break;
case ClassDef::Exception: result+="iai iimiai"; break;
+ default: break;
}
result+=" sugeneruota i ";
if (single) result+="io failo:"; else result+="i fail:";
diff --git a/src/translator_mk.h b/src/translator_mk.h
index f162def..e190241 100644
--- a/src/translator_mk.h
+++ b/src/translator_mk.h
@@ -607,6 +607,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=" Протокол"; break;
case ClassDef::Category: result+=" Категорија"; break;
case ClassDef::Exception: result+=" Исклучок"; break;
+ default: break;
}
if (isTemplate) result+=" Образец";
result+=" Повикување";
@@ -766,6 +767,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="овој протокол"; break;
case ClassDef::Category: result+="оваа категорија"; break;
case ClassDef::Exception: result+="овој исклучок"; break;
+ default: break;
}
result+=" беше создадена од ";
if (single) result+="следнава датотека:"; else result+="следниве датотеки:";
@@ -1660,6 +1662,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=" Протокол"; break;
case ClassDef::Category: result+=" Категорија"; break;
case ClassDef::Exception: result+=" Исклучок"; break;
+ default: break;
}
if (isTemplate) result+=" Образец";
return result;
@@ -1726,6 +1729,7 @@ class TranslatorMacedonian : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="овој протокол"; break;
case ClassDef::Category: result+="оваа категорија"; break;
case ClassDef::Exception: result+="овој исклучок"; break;
+ default: break;
}
result+=" беше создадена од ";
if (single) result+="следнава датотека:"; else result+="следниве датотеки:";
diff --git a/src/translator_nl.h b/src/translator_nl.h
index 3c1cb8e..41d77fb 100644
--- a/src/translator_nl.h
+++ b/src/translator_nl.h
@@ -18,7 +18,7 @@
#ifndef TRANSLATOR_NL_H
#define TRANSLATOR_NL_H
-class TranslatorDutch : public Translator
+class TranslatorDutch : public TranslatorAdapter_1_8_2
{
public:
QCString idLanguage()
@@ -268,6 +268,7 @@ class TranslatorDutch : public Translator
case ClassDef::Protocol: result+=" Protocol"; break;
case ClassDef::Category: result+=" Category"; break;
case ClassDef::Exception: result+=" Exception"; break;
+ default: break;
}
result+=" Referentie";
return result;
@@ -416,6 +417,7 @@ class TranslatorDutch : public Translator
case ClassDef::Protocol: result+="dit protocol"; break;
case ClassDef::Category: result+="deze categorie"; break;
case ClassDef::Exception: result+="deze exceptie"; break;
+ default: break;
}
result+=" is gegenereerd op grond van ";
if (single) result+="het"; else result+="de";
@@ -1277,6 +1279,7 @@ class TranslatorDutch : public Translator
case ClassDef::Protocol: result+=" Protocol"; break;
case ClassDef::Category: result+=" Category"; break;
case ClassDef::Exception: result+=" Exception"; break;
+ default: break;
}
if (isTemplate) result+=" Template";
result+=" Referentie";
@@ -1340,6 +1343,7 @@ class TranslatorDutch : public Translator
case ClassDef::Protocol: result+="dit protocol"; break;
case ClassDef::Category: result+="deze category"; break;
case ClassDef::Exception: result+="deze exception"; break;
+ default: break;
}
result+=" is gegenereerd op grond van ";
if (single) result+="het"; else result+="de";
diff --git a/src/translator_no.h b/src/translator_no.h
index 536eb95..5430538 100644
--- a/src/translator_no.h
+++ b/src/translator_no.h
@@ -650,6 +650,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
case ClassDef::Exception: result+=" Unntak"; break;
case ClassDef::Protocol: result+=" Protocol"; break;
case ClassDef::Category: result+=" Category"; break;
+ default: break;
}
if (isTemplate) result+=" Mal";
result+=" Referanse";
@@ -809,6 +810,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_4_6
case ClassDef::Exception: result+="dette unntak"; break;
case ClassDef::Protocol: result+="denne protocol"; break;
case ClassDef::Category: result+="denne category"; break;
+ default: break;
}
result+=" ble generert fra flgende fil";
if (single) result+=":"; else result+="er:";
diff --git a/src/translator_pl.h b/src/translator_pl.h
index 49ce796..b1e90ce 100644
--- a/src/translator_pl.h
+++ b/src/translator_pl.h
@@ -615,6 +615,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
case ClassDef::Protocol: result+=" protokołu "; break;
case ClassDef::Category: result+=" kategorii "; break;
case ClassDef::Exception: result+=" wyjątku "; break;
+ default: break;
}
result+=(QCString)clName;
return result;
@@ -774,6 +775,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
case ClassDef::Protocol: result+="go protokołu"; break;
case ClassDef::Category: result+="j kategorii"; break;
case ClassDef::Exception: result+="go wyjątku"; break;
+ default: break;
}
result+=" została wygenerowana z plik";
if (single) result+="u:"; else result+="ów:";
@@ -1669,6 +1671,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
case ClassDef::Protocol: result+=" protokołu "; break;
case ClassDef::Category: result+=" kategorii "; break;
case ClassDef::Exception: result+=" wyjątku "; break;
+ default: break;
}
result+=(QCString)clName;
return result;
@@ -1735,6 +1738,7 @@ class TranslatorPolish : public TranslatorAdapter_1_8_2
case ClassDef::Protocol: result+="go protokołu"; break;
case ClassDef::Category: result+="j kategorii"; break;
case ClassDef::Exception: result+="go wyjątku"; break;
+ default: break;
}
result+=" została wygenerowana z plik";
if (single) result+="u:"; else result+="ów:";
diff --git a/src/translator_pt.h b/src/translator_pt.h
index 08d228f..5130fcf 100644
--- a/src/translator_pt.h
+++ b/src/translator_pt.h
@@ -616,6 +616,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="ao protocolo "; break;
case ClassDef::Category: result+="à categoria "; break;
case ClassDef::Exception: result+="à excepção "; break;
+ default: break;
}
if (isTemplate) result+="Template ";
result+=(QCString)clName;
@@ -778,6 +779,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="este protocolo"; break;
case ClassDef::Category: result+="esta categoria"; break;
case ClassDef::Exception: result+="esta excepção"; break;
+ default: break;
}
result+=" foi gerada a partir ";
if (single) result+=" do seguinte ficheiro:";
@@ -1673,6 +1675,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="do Protocolo "; break;
case ClassDef::Category: result+="da Categoria "; break;
case ClassDef::Exception: result+="da Exceção "; break;
+ default: break;
}
result += clName;
@@ -1740,6 +1743,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="esto protocolo "; break;
case ClassDef::Category: result+="esta categoria "; break;
case ClassDef::Exception: result+="esta exceção "; break;
+ default: break;
}
result+=" foi gerada a partir do";
diff --git a/src/translator_ro.h b/src/translator_ro.h
index c0a4c3d..1cba127 100644
--- a/src/translator_ro.h
+++ b/src/translator_ro.h
@@ -632,10 +632,11 @@ class TranslatorRomanian : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="protocolul "; break;
case ClassDef::Category: result+="categoria "; break;
case ClassDef::Exception: result+="excepţia "; break;
+ default: break;
}
- if (isTemplate) result+=" (Template) ";
- result+=(QCString)clName;
-
+ if (isTemplate) result+=" (Template) ";
+ result+=(QCString)clName;
+
return result;
}
@@ -794,6 +795,7 @@ class TranslatorRomanian : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="protocol"; break;
case ClassDef::Category: result+="categorie"; break;
case ClassDef::Exception: result+="excepţie"; break;
+ default: break;
}
result+=" a fost generată din fişier";
if (single) result+="ul:"; else result+="ele:";
@@ -1690,6 +1692,7 @@ class TranslatorRomanian : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="Protocolul "; break;
case ClassDef::Category: result+="Categoria "; break;
case ClassDef::Exception: result+="Excepţia "; break;
+ default: break;
}
if (isTemplate) result+="(Template) ";
result+=(QCString)clName;
@@ -1758,6 +1761,7 @@ class TranslatorRomanian : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="protocolului"; break;
case ClassDef::Category: result+="categoriei"; break;
case ClassDef::Exception: result+="excepţiei"; break;
+ default: break;
}
result+=" a fost generată din următo";
if (single) result+="rul fişier:"; else result+="arele fişiere:";
diff --git a/src/translator_ru.h b/src/translator_ru.h
index 8e2fc6f..5c8295a 100644
--- a/src/translator_ru.h
+++ b/src/translator_ru.h
@@ -581,6 +581,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+="протокола"; break;
case ClassDef::Category: result+="категории"; break;
case ClassDef::Exception: result+="исключения"; break;
+ default: break;
}
}
else
@@ -594,6 +595,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+="Протокол"; break;
case ClassDef::Category: result+="Категория"; break;
case ClassDef::Exception: result+="Исключение"; break;
+ default: break;
}
}
result+=" ";
@@ -765,6 +767,8 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
case ClassDef::Exception: result+="исключени";
if (single) result+="я"; else result+="й";
break;
+ default:
+ break;
}
result+=" находятся в файл";
if (single) result+="е:"; else result+="ах:";
@@ -1644,6 +1648,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+=" Протокол"; break;
case ClassDef::Category: result+=" Категория"; break;
case ClassDef::Exception: result+=" Исключение"; break;
+ default: break;
}
}
else
@@ -1658,6 +1663,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+="протокола"; break;
case ClassDef::Category: result+="категории"; break;
case ClassDef::Exception: result+="исключения"; break;
+ default: break;
}
}
return result;
@@ -1722,6 +1728,7 @@ class TranslatorRussian : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+="протоколу"; break;
case ClassDef::Category: result+="кетегории"; break;
case ClassDef::Exception: result+="исключению"; break;
+ default: break;
}
result+=" сгенерирована на основе следующ";
if (single) result+="его файла:"; else result+="их файлов:";
diff --git a/src/translator_sc.h b/src/translator_sc.h
index bf04fc9..edf5ba2 100644
--- a/src/translator_sc.h
+++ b/src/translator_sc.h
@@ -611,30 +611,35 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
bool isTemplate)
{
QCString result=(QCString)clName;
- if (isTemplate) {
- result+=" Шаблон";
- switch(compType)
- {
- case ClassDef::Class: result+="ска класа"; break;
- case ClassDef::Struct: result+="ска структура"; break;
- case ClassDef::Union: result+="ска унија"; break;
- case ClassDef::Interface: result+="ски интерфејс"; break;
- case ClassDef::Protocol: result+="ски протокол"; break;
- case ClassDef::Category: result+="ска категорија"; break;
- case ClassDef::Exception: result+="ски изузетак"; break;
- }
- } else {
- result+=" Референца";
- switch(compType)
- {
- case ClassDef::Class: result+=" класе"; break;
- case ClassDef::Struct: result+=" структуре"; break;
- case ClassDef::Union: result+=" уније"; break;
- case ClassDef::Interface: result+=" интерфејса"; break;
- case ClassDef::Protocol: result+=" протокола"; break;
- case ClassDef::Category: result+=" категорије"; break;
- case ClassDef::Exception: result+=" изузетка"; break;
- }
+ if (isTemplate)
+ {
+ result+=" Шаблон";
+ switch(compType)
+ {
+ case ClassDef::Class: result+="ска класа"; break;
+ case ClassDef::Struct: result+="ска структура"; break;
+ case ClassDef::Union: result+="ска унија"; break;
+ case ClassDef::Interface: result+="ски интерфејс"; break;
+ case ClassDef::Protocol: result+="ски протокол"; break;
+ case ClassDef::Category: result+="ска категорија"; break;
+ case ClassDef::Exception: result+="ски изузетак"; break;
+ default: break;
+ }
+ }
+ else
+ {
+ result+=" Референца";
+ switch(compType)
+ {
+ case ClassDef::Class: result+=" класе"; break;
+ case ClassDef::Struct: result+=" структуре"; break;
+ case ClassDef::Union: result+=" уније"; break;
+ case ClassDef::Interface: result+=" интерфејса"; break;
+ case ClassDef::Protocol: result+=" протокола"; break;
+ case ClassDef::Category: result+=" категорије"; break;
+ case ClassDef::Exception: result+=" изузетка"; break;
+ default: break;
+ }
}
return result;
}
@@ -792,6 +797,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="овај протокол"; break;
case ClassDef::Category: result+="ову категорију"; break;
case ClassDef::Exception: result+="овај изузетак"; break;
+ default: break;
}
result+=" је произведена из";
if (single) result+="следеће датотеке:"; else result+="следећих датотека:";
@@ -1703,6 +1709,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=" протокола"; break;
case ClassDef::Category: result+=" категорије"; break;
case ClassDef::Exception: result+=" изузетка"; break;
+ default: break;
}
return result;
}
@@ -1768,6 +1775,7 @@ class TranslatorSerbianCyrilic : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="овај протокол"; break;
case ClassDef::Category: result+="ову категорију"; break;
case ClassDef::Exception: result+="овај изузетак"; break;
+ default: break;
}
result+=" је направљен из следећ";
if (single) result+="е датотеке:"; else result+="их датотека:";
diff --git a/src/translator_si.h b/src/translator_si.h
index f1dc23f..7295e44 100644
--- a/src/translator_si.h
+++ b/src/translator_si.h
@@ -281,8 +281,9 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
case ClassDef::Protocol: result+=" protocol "; break; // translate me!
case ClassDef::Category: result+=" category "; break; // translate me!
case ClassDef::Exception: result+=" IDL prekinitev "; break;
+ default: break;
}
- result += (QCString)clName;
+ result += (QCString)clName;
return result;
}
@@ -429,6 +430,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_4_6
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="prekinitve (exception)"; break;
+ default: break;
}
result+=" je zgrajen na podlagi naslednj";
if (single) result+="e "; else result+="ih";
diff --git a/src/translator_sk.h b/src/translator_sk.h
index 9418576..4fd63ec 100644
--- a/src/translator_sk.h
+++ b/src/translator_sk.h
@@ -31,7 +31,7 @@
#ifndef TRANSLATOR_SK_H
#define TRANSLATOR_SK_H
-class TranslatorSlovak : public Translator
+class TranslatorSlovak : public TranslatorAdapter_1_8_2
{
public:
// --- Language control methods -------------------
@@ -593,6 +593,7 @@ class TranslatorSlovak : public Translator
case ClassDef::Protocol: result+="protokol "; break;
case ClassDef::Category: result+="kategória "; break;
case ClassDef::Exception: result+="výnimky "; break;
+ default: break;
}
result+=clName;
return result;
@@ -765,6 +766,7 @@ class TranslatorSlovak : public Translator
case ClassDef::Protocol: result+="protokol"; break;
case ClassDef::Category: result+="kategória"; break;
case ClassDef::Exception: result+="túto výnimku"; break;
+ default: break;
}
result+=" bola generovaná z ";
if (single) result+="nasledujúceho súboru:";
@@ -1645,6 +1647,7 @@ class TranslatorSlovak : public Translator
case ClassDef::Protocol: result += "protokolu "; break;
case ClassDef::Category: result += "kategórie "; break;
case ClassDef::Exception: result += "výnimky "; break;
+ default: break;
}
result += clName;
return result;
@@ -1712,6 +1715,7 @@ class TranslatorSlovak : public Translator
case ClassDef::Protocol: result+="k tomuto protokolu"; break;
case ClassDef::Category: result+="k tejto kategórii"; break;
case ClassDef::Exception: result+="k tejto výnimke"; break;
+ default: break;
}
result+=" bola vygenerovaná z ";
if (single) result+="nasledujúceho súboru:";
diff --git a/src/translator_sr.h b/src/translator_sr.h
index a9ce978..7311eac 100644
--- a/src/translator_sr.h
+++ b/src/translator_sr.h
@@ -623,6 +623,7 @@ private:
case ClassDef::Protocol: result+="protokola "; break;
case ClassDef::Category: result+="kategorije "; break;
case ClassDef::Exception: result+="izuzetka "; break;
+ default: break;
}
if (isTemplate) result += "šablona ";
result += clName;
@@ -782,6 +783,7 @@ private:
case ClassDef::Protocol: result+="ovog protokola"; break;
case ClassDef::Category: result+="ove kategorije"; break;
case ClassDef::Exception: result+="ovog izuzetka"; break;
+ default: break;
}
result+=" je napravljena na osnovu ";
if (single) result+="datoteke "; else result+="sledećih datoteka:";
@@ -1680,6 +1682,7 @@ private:
case ClassDef::Protocol: result+=" Protokol"; break;
case ClassDef::Category: result+=" Kategorija"; break;
case ClassDef::Exception: result+=" Izuzetak"; break;
+ default: break;
}
result+=" - sažet pregled";
if (isTemplate) result+=" šablona";
@@ -1747,6 +1750,7 @@ private:
case ClassDef::Protocol: result+="protokol"; break;
case ClassDef::Category: result+="kategoriju"; break;
case ClassDef::Exception: result+="izuzetak"; break;
+ default: break;
}
result+=" napravljena je automatski od sledeć";
if (single) result+="e datoteke:"; else result+="ih datoteka:";
diff --git a/src/translator_sv.h b/src/translator_sv.h
index 7b25d6a..b6bb3d7 100644
--- a/src/translator_sv.h
+++ b/src/translator_sv.h
@@ -509,6 +509,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=" protocol"; break; // translate me!
case ClassDef::Category: result+=" category"; break; // translate me!
case ClassDef::Exception: result+=" undantag"; break;
+ default: break;
}
if (isTemplate) result+="template";
result+="referens";
@@ -650,6 +651,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="detta undantag "; break;
+ default: break;
}
result+="var genererad frn fljande fil";
if (single) result+=":"; else result+="er:";
@@ -1548,6 +1550,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=" Protokoll"; break;
case ClassDef::Category: result+=" Kategori"; break;
case ClassDef::Exception: result+=" Undantag"; break;
+ default: break;
}
if (isTemplate) result+=" Mall";
result+=" Referens";
@@ -1613,6 +1616,7 @@ class TranslatorSwedish : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="protokoll"; break;
case ClassDef::Category: result+="kategori"; break;
case ClassDef::Exception: result+="undantag"; break;
+ default: break;
}
result+=" genererades frn fljade fil";
if (single) result+=":"; else result+="er:";
diff --git a/src/translator_tr.h b/src/translator_tr.h
index efb0d14..9c66c55 100644
--- a/src/translator_tr.h
+++ b/src/translator_tr.h
@@ -620,6 +620,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+=" Protokol"; break;
case ClassDef::Category: result+=" Kategori"; break;
case ClassDef::Exception: result+=" İstisna"; break;
+ default: break;
}
if (isTemplate) result+=" Şablon";
result+=" Referans";
@@ -779,6 +780,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+="protokol"; break;
case ClassDef::Category: result+="kategori"; break;
case ClassDef::Exception: result+="istisna"; break;
+ default: break;
}
result+=" için dokümantasyon aşağıdaki dosya";
if (single) result+=""; else result+="lar";
@@ -1676,6 +1678,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+=" Protokol"; break;
case ClassDef::Category: result+=" Kategori"; break;
case ClassDef::Exception: result+=" İstisna"; break;
+ default: break;
}
if (isTemplate) result+=" Şablon";
result+=" Referans";
@@ -1743,6 +1746,7 @@ class TranslatorTurkish : public TranslatorAdapter_1_7_5
case ClassDef::Protocol: result+="protokol"; break;
case ClassDef::Category: result+="kategori"; break;
case ClassDef::Exception: result+="istisna"; break;
+ default: break;
}
result+=" için dokümantasyon aşağıdaki dosya";
if (single) result+=":"; else result+="lar";
diff --git a/src/translator_tw.h b/src/translator_tw.h
index 3edd462..29f2cd3 100644
--- a/src/translator_tw.h
+++ b/src/translator_tw.h
@@ -627,6 +627,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+=" 協定"; break;
case ClassDef::Category: result+=" 分類"; break;
case ClassDef::Exception: result+=" 例外"; break;
+ default: break;
}
if (isTemplate) result+=" 樣版";
result+=" 參考文件";
@@ -786,6 +787,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="協定(protocol)"; break;
case ClassDef::Category: result+="分類(category)"; break;
case ClassDef::Exception: result+="例外(exception)"; break;
+ default: break;
}
result+=" 文件是由下列檔案中產生";
if (single) result+=":"; else result+=":";
@@ -1659,6 +1661,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="協議"; break;
case ClassDef::Category: result+="分類"; break;
case ClassDef::Exception: result+="例外"; break;
+ default: break;
}
if (isTemplate) result+=" Template";
result+="參考文件";
@@ -1725,6 +1728,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
case ClassDef::Protocol: result+="協議"; break;
case ClassDef::Category: result+="分類"; break;
case ClassDef::Exception: result+="例外"; break;
+ default: break;
}
result+="文件由下列檔案產生";
return result;
diff --git a/src/translator_ua.h b/src/translator_ua.h
index 6ac1681..2a80e22 100644
--- a/src/translator_ua.h
+++ b/src/translator_ua.h
@@ -19,7 +19,7 @@
#ifndef TRANSLATOR_UA_H
#define TRANSLATOR_UA_H
-class TranslatorUkrainian : public Translator
+class TranslatorUkrainian : public TranslatorAdapter_1_8_2
{
public:
/*! Used for identification of the language. */
@@ -572,6 +572,7 @@ class TranslatorUkrainian : public Translator
case ClassDef::Protocol: result+="протоколу"; break;
case ClassDef::Category: result+="категорії"; break;
case ClassDef::Exception: result+="Виняток"; break;
+ default: break;
}
}
else
@@ -585,6 +586,7 @@ class TranslatorUkrainian : public Translator
case ClassDef::Protocol: result+="Протокол"; break;
case ClassDef::Category: result+="Категорія"; break;
case ClassDef::Exception: result+="Виняток"; break;
+ default: break;
}
}
result+=" ";
@@ -755,6 +757,8 @@ class TranslatorUkrainian : public Translator
case ClassDef::Exception:
if (single) result+="цього винятку"; else result+="цих винятків";
break;
+ default:
+ break;
}
result+=" була створена з файл";
if (single) result+="у:"; else result+="ів:";
@@ -1635,6 +1639,7 @@ class TranslatorUkrainian : public Translator
case ClassDef::Protocol: result+=" Протокол"; break;
case ClassDef::Category: result+=" Категорія"; break;
case ClassDef::Exception: result+=" Виняток"; break;
+ default: break;
}
}
else
@@ -1649,6 +1654,7 @@ class TranslatorUkrainian : public Translator
case ClassDef::Protocol: result+="протоколу"; break;
case ClassDef::Category: result+="категорії"; break;
case ClassDef::Exception: result+="винятка"; break;
+ default: break;
}
}
return result;
@@ -1716,6 +1722,7 @@ class TranslatorUkrainian : public Translator
case ClassDef::Protocol: result+="цього протоколу"; break;
case ClassDef::Category: result+="цієї категорії"; break;
case ClassDef::Exception: result+="цього винятку"; break;
+ default: break;
}
result+=" було згенеровано з ";
if (single) result+="наступного файлу:"; else result+="наступних файлів:";
diff --git a/src/translator_vi.h b/src/translator_vi.h
index 592c005..36fb48a 100644
--- a/src/translator_vi.h
+++ b/src/translator_vi.h
@@ -627,6 +627,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=" Protocol"; break;
case ClassDef::Category: result+=" Category"; break;
case ClassDef::Exception: result+=" Exception"; break;
+ default: break;
}
if (isTemplate) result+=" Template";
result+=" Tham chiếu";
@@ -786,6 +787,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="protocol"; break;
case ClassDef::Category: result+="category"; break;
case ClassDef::Exception: result+="exception"; break;
+ default: break;
}
result+=" được biên soạn từ các file sau đây";
if (single) result+=":"; else result+=":";
@@ -1683,6 +1685,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=" Protocol"; break;
case ClassDef::Category: result+=" Category"; break;
case ClassDef::Exception: result+=" Exception"; break;
+ default: break;
}
if (isTemplate) result+=" Template";
result+=" Tham chiếu";
@@ -1750,6 +1753,7 @@ class TranslatorVietnamese : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="protocol"; break;
case ClassDef::Category: result+="category"; break;
case ClassDef::Exception: result+="exception"; break;
+ default: break;
}
result+=" được biên soạn từ các file sau đây";
if (single) result+=":"; else result+="s:";
diff --git a/src/translator_za.h b/src/translator_za.h
index fb02744..eb278d6 100644
--- a/src/translator_za.h
+++ b/src/translator_za.h
@@ -606,6 +606,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=" Protocol"; break;
case ClassDef::Category: result+=" Kategorie"; break;
case ClassDef::Exception: result+=" Exception"; break;
+ default: break;
}
if (isTemplate) result+=" Template";
result+=" Verwysing";
@@ -765,6 +766,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="protokol"; break;
case ClassDef::Category: result+="kategorie"; break;
case ClassDef::Exception: result+="eksepsie"; break;
+ default: break;
}
result+=" is gegenereer vanaf die volgende le&euml;r";
if (single) result+=":"; else result+="s:";
@@ -1663,6 +1665,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+=" Protokol"; break;
case ClassDef::Category: result+=" Kategorie"; break;
case ClassDef::Exception: result+=" Eksepsie"; break;
+ default: break;
}
if (isTemplate) result+=" Template";
result+=" Bron";
@@ -1730,6 +1733,7 @@ class TranslatorAfrikaans : public TranslatorAdapter_1_6_0
case ClassDef::Protocol: result+="protokcol"; break;
case ClassDef::Category: result+="kategorie"; break;
case ClassDef::Exception: result+="eksepsie"; break;
+ default: break;
}
result+=" is gegenereer vanaf die foldende leer";
if (single) result+=":"; else result+="s:";
diff --git a/src/translatordecoder.h b/src/translatordecoder.h
index f6ba8dd..6537774 100644
--- a/src/translatordecoder.h
+++ b/src/translatordecoder.h
@@ -789,6 +789,28 @@ class TranslatorDecoder : public Translator
{ return toUtf8(m_translator->trDesignOverview()); }
//////////////////////////////////////////////////////////////////////////
+// new since 1.8.4
+//////////////////////////////////////////////////////////////////////////
+
+ QCString trInterfaces()
+ { return toUtf8(m_translator->trInterfaces()); }
+ QCString trServices()
+ { return toUtf8(m_translator->trServices()); }
+ QCString trConstantGroups()
+ { return toUtf8(m_translator->trConstantGroups()); }
+ QCString trConstantGroupReference(const char *namespaceName)
+ { return toUtf8(m_translator->trConstantGroupReference(fromUtf8(namespaceName))); }
+ QCString trServiceReference(const char *sName)
+ { return toUtf8(m_translator->trServiceReference(fromUtf8(sName))); }
+ QCString trSingletonReference(const char *sName)
+ { return toUtf8(m_translator->trSingletonReference(fromUtf8(sName))); }
+ QCString trServiceGeneratedFromFiles(bool single)
+ { return toUtf8(m_translator->trServiceGeneratedFromFiles(single)); }
+ QCString trSingletonGeneratedFromFiles(bool single)
+ { return toUtf8(m_translator->trSingletonGeneratedFromFiles(single)); }
+
+
+//////////////////////////////////////////////////////////////////////////
private:
Translator *m_translator;
void *m_toUtf8;
diff --git a/src/types.h b/src/types.h
index 2db4b5d..18affcc 100644
--- a/src/types.h
+++ b/src/types.h
@@ -169,7 +169,14 @@ enum MemberListType
MemberListType_redefinedBy = 67,
MemberListType_enumFields = 68,
- MemberListType_memberGroup = 69
+ MemberListType_memberGroup = 69,
+
+ // this one is for the summary section on the class page
+ MemberListType_interfaces = 70,
+ // this one is for the detailed section on the class page
+ MemberListType_interfaceMembers = 71 + MemberListType_detailedLists,
+ MemberListType_services = 72,
+ MemberListType_serviceMembers = 73 + MemberListType_detailedLists,
};
enum MemberType
@@ -185,7 +192,9 @@ enum MemberType
MemberType_Friend,
MemberType_DCOP,
MemberType_Property,
- MemberType_Event
+ MemberType_Event,
+ MemberType_Interface,
+ MemberType_Service,
};
#endif
diff --git a/src/util.cpp b/src/util.cpp
index f0e0ea4..205d0ba 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -1824,6 +1824,49 @@ nextChar:
return growBuf.get();
}
+/**
+ * Returns the position in the string where a function parameter list
+ * begins, or -1 if one is not found.
+ */
+int findParameterList(const QString &name)
+{
+ int pos=-1;
+ int templateDepth=0;
+ do
+ {
+ if (templateDepth > 0)
+ {
+ int nextOpenPos=name.findRev('>', pos);
+ int nextClosePos=name.findRev('<', pos);
+ if (nextOpenPos!=-1 && nextOpenPos>nextClosePos)
+ {
+ ++templateDepth;
+ pos=nextOpenPos-1;
+ }
+ else
+ {
+ --templateDepth;
+ pos=nextClosePos-1;
+ }
+ }
+ else
+ {
+ int lastAnglePos=name.findRev('>', pos);
+ int bracePos=name.findRev('(', pos);
+ if (lastAnglePos!=-1 && lastAnglePos>bracePos)
+ {
+ ++templateDepth;
+ pos=lastAnglePos-1;
+ }
+ else
+ {
+ return bracePos;
+ }
+ }
+ } while (pos!=-1);
+ return -1;
+}
+
bool rightScopeMatch(const QCString &scope, const QCString &name)
{
return (name==scope || // equal
@@ -4308,7 +4351,7 @@ bool resolveRef(/* in */ const char *scName,
QCString tsName = name;
//bool memberScopeFirst = tsName.find('#')!=-1;
QCString fullName = substitute(tsName,"#","::");
- if (fullName.find("anonymous_namespace{")==-1)
+ if (fullName.find("anonymous_namespace{")==-1 && fullName.find('<')==-1)
{
fullName = removeRedundantWhiteSpace(substitute(fullName,".","::"));
}
@@ -4317,7 +4360,7 @@ bool resolveRef(/* in */ const char *scName,
fullName = removeRedundantWhiteSpace(fullName);
}
- int bracePos=fullName.findRev('('); // reverse is needed for operator()(...)
+ int bracePos=findParameterList(fullName);
int endNamePos=bracePos!=-1 ? bracePos : fullName.length();
int scopePos=fullName.findRev("::",endNamePos);
bool explicitScope = fullName.left(2)=="::" && // ::scope or #scope
@@ -4474,7 +4517,7 @@ QCString linkToText(SrcLangExt lang,const char *link,bool isFileName)
// replace # by ::
result=substitute(result,"#","::");
// replace . by ::
- if (!isFileName) result=substitute(result,".","::");
+ if (!isFileName && result.find('<')==-1) result=substitute(result,".","::");
// strip leading :: prefix if present
if (result.at(0)==':' && result.at(1)==':')
{
@@ -5463,7 +5506,7 @@ QCString convertToJSString(const char *s)
}
}
growBuf.addChar(0);
- return growBuf.get();
+ return convertCharEntitiesToUTF8(growBuf.get());
}
@@ -5610,25 +5653,31 @@ QCString convertCharEntitiesToUTF8(const QCString &s)
init=FALSE;
}
- if (s==0) return result;
+ if (s.length()==0) return result;
+ static GrowBuf growBuf;
+ growBuf.clear();
int p,i=0,l;
while ((p=entityPat.match(s,i,&l))!=-1)
{
- if (p>i) result+=s.mid(i,p-i);
+ if (p>i)
+ {
+ growBuf.addStr(s.mid(i,p-i));
+ }
QCString entity = s.mid(p+1,l-2);
char *code = entityMap.find(entity);
if (code)
{
- result+=code;
+ growBuf.addStr(code);
}
else
{
- result+=s.mid(p,l);
+ growBuf.addStr(s.mid(p,l));
}
i=p+l;
}
- result+=s.mid(i,s.length()-i);
- return result;
+ growBuf.addStr(s.mid(i,s.length()-i));
+ growBuf.addChar(0);
+ return growBuf.get();
}
/*! Returns the standard string that is generated when the \\overload
@@ -6434,6 +6483,11 @@ QCString stripPath(const char *s)
{
result=result.mid(i+1);
}
+ i=result.findRev('\\');
+ if (i!=-1)
+ {
+ result=result.mid(i+1);
+ }
return result;
}
diff --git a/src/vhdldocgen.cpp b/src/vhdldocgen.cpp
index 25d7fed..fa25000 100644
--- a/src/vhdldocgen.cpp
+++ b/src/vhdldocgen.cpp
@@ -126,6 +126,38 @@ static void codify(FTextStream &t,const char *str)
}
}
+static void writeLink(const MemberDef* mdef,OutputList &ol)
+{
+ ol.writeObjectLink(mdef->getReference(),
+ mdef->getOutputFileBase(),
+ mdef->anchor(),
+ mdef->name());
+}
+
+static void startFonts(const QCString& q, const char *keyword,OutputList& ol)
+{
+ ol.startFontClass(keyword);
+ ol.docify(q.data());
+ ol.endFontClass();
+}
+
+static QCString splitString(QCString& str,char c)
+{
+ QCString n=str;
+ int i=str.find(c);
+ if (i>0)
+ {
+ n=str.left(i);
+ str=str.remove(0,i+1);
+ }
+ return n;
+}
+
+static int compareString(const QCString& s1,const QCString& s2)
+{
+ return qstricmp(s1.stripWhiteSpace(),s2.stripWhiteSpace());
+}
+
static void createSVG()
{
QCString ov =Config_getString("HTML_OUTPUT");
@@ -842,7 +874,7 @@ MemberDef* VhdlDocGen::findFunction(const QList<Argument> &ql,
for (fmni.toFirst();(mdef=fmni.current());++fmni)
{
QCString mname=mdef->name();
- if ((VhdlDocGen::isProcedure(mdef) || VhdlDocGen::isVhdlFunction(mdef)) && (VhdlDocGen::compareString(funcname,mname)==0))
+ if ((VhdlDocGen::isProcedure(mdef) || VhdlDocGen::isVhdlFunction(mdef)) && (compareString(funcname,mname)==0))
{
LockingPtr<ArgumentList> alp = mdef->argumentList();
@@ -859,18 +891,18 @@ MemberDef* VhdlDocGen::findFunction(const QList<Argument> &ql,
for (;(arg=ali.current());++ali)
{
arg1=ali1.current(); ++ali1;
- equ+=abs(VhdlDocGen::compareString(arg->type,arg1->type));
+ equ+=abs(compareString(arg->type,arg1->type));
QCString s1=arg->type;
QCString s2=arg1->type;
VhdlDocGen::deleteAllChars(s1,' ');
VhdlDocGen::deleteAllChars(s2,' ');
- equ+=abs(VhdlDocGen::compareString(s1,s2));
+ equ+=abs(compareString(s1,s2));
s1=arg->attrib;
s2=arg1->attrib;
VhdlDocGen::deleteAllChars(s1,' ');
VhdlDocGen::deleteAllChars(s2,' ');
- equ+=abs(VhdlDocGen::compareString(s1,s2));
+ equ+=abs(compareString(s1,s2));
// printf("\n 1. type [%s] name [%s] attrib [%s]",arg->type,arg->name,arg->attrib);
// printf("\n 2. type [%s] name [%s] attrib [%s]",arg1->type,arg1->name,arg1->attrib);
} // for
@@ -1061,11 +1093,6 @@ void VhdlDocGen::writeVhdlLink(const ClassDef* ccd ,OutputList& ol,QCString& typ
ol.lineBreak();
}
-int VhdlDocGen::compareString(const QCString& s1,const QCString& s2)
-{
- return qstricmp(s1.stripWhiteSpace(),s2.stripWhiteSpace());
-}
-
/*!
* strips the "--" prefixes of vhdl comments
@@ -1177,7 +1204,7 @@ QCString VhdlDocGen::getProtectionName(int prot)
return "";
}
-QCString VhdlDocGen::trTypeString(int type)
+QCString VhdlDocGen::trTypeString(uint64 type)
{
switch(type)
{
@@ -1296,16 +1323,16 @@ void VhdlDocGen::writeFormatString(const QCString& s,OutputList&ol,const MemberD
find=find.left(j);
buf[0]=temp[j];
ss=VhdlDocGen::findKeyWord(find);
- bool k=VhdlDocGen::isNumber(find); // is this a number
+ bool k=isNumber(find); // is this a number
if (k)
{
ol.docify(" ");
- VhdlDocGen::startFonts(find,"vhdldigit",ol);
+ startFonts(find,"vhdldigit",ol);
ol.docify(" ");
}
else if (j != 0 && ss)
{
- VhdlDocGen::startFonts(find,ss->data(),ol);
+ startFonts(find,ss->data(),ol);
}
else
{
@@ -1314,7 +1341,7 @@ void VhdlDocGen::writeFormatString(const QCString& s,OutputList&ol,const MemberD
VhdlDocGen::writeStringLink(mdef,find,ol);
}
}
- VhdlDocGen::startFonts(&buf[0],"vhdlchar",ol);
+ startFonts(&buf[0],"vhdlchar",ol);
QCString st=temp.remove(0,j+1);
find=st;
@@ -1324,7 +1351,7 @@ void VhdlDocGen::writeFormatString(const QCString& s,OutputList&ol,const MemberD
if (ii>1)
{
QCString com=find.left(ii+1);
- VhdlDocGen::startFonts(com,"keyword",ol);
+ startFonts(com,"keyword",ol);
temp=find.remove(0,ii+1);
}
}
@@ -1337,7 +1364,7 @@ void VhdlDocGen::writeFormatString(const QCString& s,OutputList&ol,const MemberD
}//if
else
{
- VhdlDocGen::startFonts(find,"vhdlchar",ol);
+ startFonts(find,"vhdlchar",ol);
}
ol.endBold();
}// writeFormatString
@@ -1345,7 +1372,6 @@ void VhdlDocGen::writeFormatString(const QCString& s,OutputList&ol,const MemberD
/*!
* returns TRUE if this string is a number
*/
-
bool VhdlDocGen::isNumber(const QCString& s)
{
static QRegExp regg("[0-9][0-9eEfFbBcCdDaA_.#-+?xXzZ]*");
@@ -1358,12 +1384,6 @@ bool VhdlDocGen::isNumber(const QCString& s)
}// isNumber
-void VhdlDocGen::startFonts(const QCString& q, const char *keyword,OutputList& ol)
-{
- ol.startFontClass(keyword);
- ol.docify(q.data());
- ol.endFontClass();
-}
/*!
* inserts white spaces for better readings
@@ -1453,17 +1473,17 @@ void VhdlDocGen::writeProcedureProto(OutputList& ol,const ArgumentList* al,const
arg->defval+=" ";
if (str)
{
- VhdlDocGen::startFonts(arg->defval,str->data(),ol);
+ startFonts(arg->defval,str->data(),ol);
}
else
{
- VhdlDocGen::startFonts(arg->defval,"vhdlchar",ol); // write type (variable,constant etc.)
+ startFonts(arg->defval,"vhdlchar",ol); // write type (variable,constant etc.)
}
- VhdlDocGen::startFonts(nn,"vhdlchar",ol); // write name
+ startFonts(nn,"vhdlchar",ol); // write name
if (qstricmp(arg->attrib,arg->type) != 0)
{
- VhdlDocGen::startFonts(arg->attrib.lower(),"stringliteral",ol); // write in|out
+ startFonts(arg->attrib.lower(),"stringliteral",ol); // write in|out
}
ol.docify(" ");
VhdlDocGen::formatString(arg->type,ol,mdef);
@@ -1520,23 +1540,23 @@ void VhdlDocGen::writeFunctionProto(OutputList& ol,const ArgumentList* al,const
if (str)
VhdlDocGen::formatString(att,ol,mdef);
else
- VhdlDocGen::startFonts(att,"vhdlchar",ol);
+ startFonts(att,"vhdlchar",ol);
}
QCString nn=arg->name;
nn+=": ";
QCString ss=arg->type.stripWhiteSpace(); //.lower();
QCString w=ss.stripWhiteSpace();//.upper();
- VhdlDocGen::startFonts(nn,"vhdlchar",ol);
- VhdlDocGen::startFonts("in ","stringliteral",ol);
+ startFonts(nn,"vhdlchar",ol);
+ startFonts("in ","stringliteral",ol);
QCString *str=VhdlDocGen::findKeyWord(ss);
if (str)
VhdlDocGen::formatString(w,ol,mdef);
else
- VhdlDocGen::startFonts(w,"vhdlchar",ol);
+ startFonts(w,"vhdlchar",ol);
if (arg->attrib)
- VhdlDocGen::startFonts(arg->attrib,"vhdlchar",ol);
+ startFonts(arg->attrib,"vhdlchar",ol);
sem=TRUE;
@@ -1580,7 +1600,7 @@ void VhdlDocGen::writeProcessProto(OutputList& ol,const ArgumentList* al,const M
ol.docify(" , ");
}
QCString nn=arg->name;
- // VhdlDocGen::startFonts(nn,"vhdlchar",ol);
+ // startFonts(nn,"vhdlchar",ol);
VhdlDocGen::writeFormatString(nn,ol,mdef);
sem=TRUE;
}
@@ -2253,14 +2273,6 @@ void VhdlDocGen::writeVHDLDeclaration(MemberDef* mdef,OutputList &ol,
}// end writeVhdlDeclaration
-void VhdlDocGen::writeLink(const MemberDef* mdef,OutputList &ol)
-{
- ol.writeObjectLink(mdef->getReference(),
- mdef->getOutputFileBase(),
- mdef->anchor(),
- mdef->name());
-}
-
void VhdlDocGen::writePlainVHDLDeclarations(
MemberList* mlist,OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,int specifier)
@@ -2293,7 +2305,7 @@ void VhdlDocGen::writePlainVHDLDeclarations(
pack.clear();
}//plainDeclaration
-bool VhdlDocGen::membersHaveSpecificType(MemberList *ml,int type)
+static bool membersHaveSpecificType(MemberList *ml,uint64 type)
{
if (ml==0) return FALSE;
MemberDef *mdd=0;
@@ -2392,7 +2404,7 @@ bool VhdlDocGen::writeClassType( ClassDef *& cd,
return FALSE;
}// writeClassLink
-QCString VhdlDocGen::trVhdlType(int type,bool sing)
+QCString VhdlDocGen::trVhdlType(uint64 type,bool sing)
{
switch(type)
{
@@ -2536,7 +2548,7 @@ void VhdlDocGen::writeStringLink(const MemberDef *mdef,QCString mem, OutputList&
}
}
}
- VhdlDocGen::startFonts(mem,"vhdlchar",ol);
+ startFonts(mem,"vhdlchar",ol);
}// found component
@@ -2548,17 +2560,18 @@ void VhdlDocGen::writeSource(MemberDef *mdef,OutputList& ol,QCString & cname)
QCString codeFragment=mdef->documentation();
- if(cname.isEmpty())
+ if (cname.isEmpty())
{
writeLink(mdef,ol);
int fi=0;
int j=0;
- do {
+ do
+ {
fi=codeFragment.find("\n",++fi);
} while(fi>=0 && j++ <3);
// show only the first four lines
- if(j==4)
+ if (j==4)
{
codeFragment=codeFragment.left(fi);
codeFragment.append("\n .... ");
@@ -2734,7 +2747,7 @@ static void writeUCFLink(const MemberDef* mdef,OutputList &ol)
{
QCString largs(mdef->argsString());
- QCString n= VhdlDocGen::splitString(largs, '#');
+ QCString n= splitString(largs, '#');
// VhdlDocGen::adjustRecordMember(mdef);
bool equ=(n.length()==largs.length());
@@ -2747,7 +2760,7 @@ static void writeUCFLink(const MemberDef* mdef,OutputList &ol)
if (mdef->name().contains("dummy")==0)
{
- VhdlDocGen::writeLink(mdef,ol);
+ writeLink(mdef,ol);
}
if (equ)
{
@@ -2757,18 +2770,6 @@ static void writeUCFLink(const MemberDef* mdef,OutputList &ol)
VhdlDocGen::formatString(largs,ol,mdef);
}
-QCString VhdlDocGen::splitString(QCString& str, char c)
-{
- QCString n=str;
- int i=str.find(c);
- if (i>0)
- {
- n=str.left(i);
- str=str.remove(0,i+1);
- }
- return n;
-}
-
bool VhdlDocGen::findConstraintFile(LayoutNavEntry *lne)
{
FileName *fn=Doxygen::inputNameList->first();
@@ -3398,7 +3399,7 @@ bool VhdlDocGen::isMisc(const MemberDef *mdef)
static int ifcounter=0;
static int nodeCounter=0;
-struct
+static struct
{
// link colors
const char *textNodeLink;
@@ -4097,7 +4098,6 @@ void FlowChart::alignFuncProc( QCString & q,const ArgumentList* al,bool isFunc)
prev.fill(' ',len+1);
Argument *arg;
- bool first=TRUE;
q+="\n";
for (;(arg=ali.current());++ali)
{
@@ -4117,7 +4117,6 @@ void FlowChart::alignFuncProc( QCString & q,const ArgumentList* al,bool isFunc)
attl.prepend(prev.data());
temp+=attl;
- first=FALSE;
}
q+=temp;
diff --git a/src/vhdldocgen.h b/src/vhdldocgen.h
index 35a35a8..7c78373 100644
--- a/src/vhdldocgen.h
+++ b/src/vhdldocgen.h
@@ -117,8 +117,6 @@ class VhdlDocGen
static MemberDef* findFunction(const QList<Argument> &ql,
const QCString& name,
const QCString& package, bool type);
- static int compareString(const QCString& s1,
- const QCString& s2);
static QCString getClassTitle(const ClassDef*);
static void writeInlineClassLink(const ClassDef*,
OutputList &ol);
@@ -154,8 +152,8 @@ class VhdlDocGen
//-----------------------------------------------------
// translatable items
- static QCString trTypeString(int type);
- static QCString trVhdlType(int type,bool sing=true);
+ static QCString trTypeString(uint64 type);
+ static QCString trVhdlType(uint64 type,bool sing=true);
// trClassHierarchy.
static QCString trDesignUnitHierarchy();
@@ -206,25 +204,16 @@ class VhdlDocGen
const char *title,const char *subtitle,bool showEnumValues,int type);
static bool writeClassType(ClassDef *&,OutputList &ol ,QCString & cname);
-
static QCString convertArgumentListToString(const ArgumentList* al,bool f);
static QCString getProcessNumber();
static QCString getRecordNumber();
static QCString getClassName(const ClassDef*);
- // obsolete
- // static void adjustRecordMember(MemberDef *mdef);
-
- static void writeLink(const MemberDef* mdef,OutputList &ol);
- static void adjustMemberName(QCString& nn);
- static bool membersHaveSpecificType(MemberList *ml,int type);
- static void startFonts(const QCString& q, const char *keyword,OutputList& ol);
static bool isNumber(const QCString& s);
static QCString getProtectionName(int prot);
- static QCString splitString(QCString & str, char c);
+
static void parseUCF(const char* input,Entry* entity,QCString f,bool vendor);
-
static bool findConstraintFile( LayoutNavEntry *lne);
static ClassDef* findArchitecture(const ClassDef *cd);
diff --git a/src/vhdlparser.y b/src/vhdlparser.y
index 19c0a4f..3d3cc64 100644
--- a/src/vhdlparser.y
+++ b/src/vhdlparser.y
@@ -125,7 +125,7 @@ int vhdlScanYYlex ();
void vhdlScanYYerror (char const *);
static void addVhdlType(const QCString &name,int startLine,
- int section,int spec,
+ int section,uint64 spec,
const char* args,const char* type,
Protection prot=Public);
static void addCompInst(char *n, char* instName,char* comp,int line);
@@ -143,7 +143,7 @@ static bool isFuncProcProced();
static void initEntry(Entry *e);
static void addProto(const char *s1,const char *s2,const char *s3,
const char *s4,const char *s5,const char *s6);
-static void createFunction(const QCString &impure,int spec,
+static void createFunction(const QCString &impure,uint64 spec,
const QCString &fname);
static void createFlow();
@@ -2461,7 +2461,7 @@ static void addProto(const char *s1,const char *s2,const char *s3,
}
}
-static void createFunction(const QCString &impure,int spec,
+static void createFunction(const QCString &impure,uint64 spec,
const QCString &fname)
{
@@ -2513,8 +2513,8 @@ static void createFunction(const QCString &impure,int spec,
}
-static void addVhdlType(const QCString &name,int startLine,int section,int spec,
- const char* args,const char* type,Protection prot)
+static void addVhdlType(const QCString &name,int startLine,int section,
+ uint64 spec,const char* args,const char* type,Protection prot)
{
static QRegExp reg("[\\s]");
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index 1ab72ff..9ab5c0a 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -81,6 +81,8 @@ class XmlSectionMapper : public QIntDict<char>
insert(MemberListType_dcopMethods,"dcop-func");
insert(MemberListType_properties,"property");
insert(MemberListType_events,"event");
+ insert(MemberListType_interfaces,"interfaces");
+ insert(MemberListType_services,"services");
insert(MemberListType_pubStaticMethods,"public-static-func");
insert(MemberListType_pubStaticAttribs,"public-static-attrib");
insert(MemberListType_proTypes,"protected-type");
@@ -558,17 +560,19 @@ static void generateXMLForMember(MemberDef *md,FTextStream &ti,FTextStream &t,De
switch (md->memberType())
{
case MemberType_Define: memType="define"; break;
- case MemberType_EnumValue: ASSERT(0); break;
- case MemberType_Property: memType="property"; break;
- case MemberType_Event: memType="event"; break;
+ case MemberType_Function: memType="function"; isFunc=TRUE; break;
case MemberType_Variable: memType="variable"; break;
case MemberType_Typedef: memType="typedef"; break;
case MemberType_Enumeration: memType="enum"; break;
- case MemberType_Function: memType="function"; isFunc=TRUE; break;
+ case MemberType_EnumValue: ASSERT(0); break;
case MemberType_Signal: memType="signal"; isFunc=TRUE; break;
+ case MemberType_Slot: memType="slot"; isFunc=TRUE; break;
case MemberType_Friend: memType="friend"; isFunc=TRUE; break;
case MemberType_DCOP: memType="dcop"; isFunc=TRUE; break;
- case MemberType_Slot: memType="slot"; isFunc=TRUE; break;
+ case MemberType_Property: memType="property"; break;
+ case MemberType_Event: memType="event"; break;
+ case MemberType_Interface: memType="interface"; break;
+ case MemberType_Service: memType="service"; break;
}
ti << " <member refid=\"" << memberOutputFileBase(md)
@@ -673,7 +677,47 @@ static void generateXMLForMember(MemberDef *md,FTextStream &ti,FTextStream &t,De
{
t << " initonly=\"yes\"";
}
-
+
+ if (md->isAttribute())
+ {
+ t << " attribute=\"yes\"";
+ }
+ if (md->isUNOProperty())
+ {
+ t << " property=\"yes\"";
+ }
+ if (md->isReadonly())
+ {
+ t << " readonly=\"yes\"";
+ }
+ if (md->isBound())
+ {
+ t << " bound=\"yes\"";
+ }
+ if (md->isRemovable())
+ {
+ t << " removable=\"yes\"";
+ }
+ if (md->isConstrained())
+ {
+ t << " constrained=\"yes\"";
+ }
+ if (md->isTransient())
+ {
+ t << " transient=\"yes\"";
+ }
+ if (md->isMaybeVoid())
+ {
+ t << " maybevoid=\"yes\"";
+ }
+ if (md->isMaybeDefault())
+ {
+ t << " maybedefault=\"yes\"";
+ }
+ if (md->isMaybeAmbiguous())
+ {
+ t << " maybeambiguous=\"yes\"";
+ }
}
else if (md->memberType() == MemberType_Property)
{