From c37c8626674dd6ba0d53dcad84dd4bb5d92005a4 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Fri, 25 Jun 2010 11:31:51 +0000 Subject: Release-1.7.1 --- INSTALL | 4 +- README | 4 +- configure | 4 +- doc/config.doc | 10 + doc/docblocks.doc | 32 ++ doc/index.hhp.txt | 108 +++++++ doc/install.doc | 13 +- examples/afterdoc.cfg | 1 + examples/author.cfg | 1 + examples/autolink.cfg | 1 + examples/class.cfg | 1 + examples/dbusxml.cfg | 1 + examples/define.cfg | 1 + examples/diagrams.cfg | 1 + examples/docstring.cfg | 1 + examples/enum.cfg | 1 + examples/example.cfg | 1 + examples/file.cfg | 1 + examples/func.cfg | 1 + examples/group.cfg | 1 + examples/include.cfg | 1 + examples/jdstyle.cfg | 1 + examples/manual.cfg | 1 + examples/memgrp.cfg | 3 +- examples/mux.cfg | 1 + examples/overload.cfg | 1 + examples/page.cfg | 1 + examples/par.cfg | 1 + examples/pyexample.cfg | 1 + examples/qtstyle.cfg | 1 + examples/relates.cfg | 1 + examples/restypedef.cfg | 1 + examples/structcmd.cfg | 1 + examples/tag.cfg | 1 + examples/templ.cfg | 1 + qtools/qcstring.h | 10 + qtools/qtextstream.cpp | 2 +- qtools/qutfcodec.cpp | 4 +- src/classdef.cpp | 48 +-- src/classdef.h | 7 +- src/code.l | 4 +- src/commentscan.l | 88 +++--- src/config.h | 45 +-- src/config.l | 90 +++--- src/config.xml | 7 + src/configoptions.cpp | 11 + src/constexp.y | 2 +- src/dbusxmlscanner.cpp | 2 +- src/defgen.cpp | 4 +- src/definition.cpp | 8 +- src/diagram.cpp | 3 +- src/docparser.cpp | 756 +++++++++++++++++++++++++----------------------- src/docparser.h | 198 ++++--------- src/docsets.cpp | 21 +- src/doctokenizer.l | 8 +- src/dot.cpp | 77 +++-- src/doxygen.cpp | 241 ++++++++------- src/doxygen.css | 10 +- src/doxygen.h | 4 +- src/doxygen_css.h | 10 +- src/entry.cpp | 9 +- src/entry.h | 4 +- src/filedef.cpp | 2 +- src/formula.cpp | 15 +- src/ftvhelp.cpp | 2 +- src/ftvhelp.h | 2 +- src/groupdef.cpp | 4 +- src/htags.cpp | 6 +- src/htmldocvisitor.cpp | 2 +- src/htmlgen.cpp | 34 +-- src/htmlgen.h | 1 + src/htmlhelp.cpp | 13 +- src/htmlhelp.h | 4 +- src/image.cpp | 48 +-- src/index.cpp | 15 +- src/instdox.cpp | 3 +- src/latexdocvisitor.cpp | 2 +- src/latexgen.cpp | 2 - src/layout.cpp | 14 +- src/logos.cpp | 6 +- src/mandocvisitor.cpp | 2 +- src/marshal.cpp | 4 +- src/memberdef.cpp | 42 ++- src/msc.cpp | 4 +- src/perlmodgen.cpp | 32 +- src/portable.cpp | 10 +- src/pre.l | 14 +- src/pyscanner.l | 4 +- src/rtfdocvisitor.cpp | 2 +- src/rtfgen.cpp | 10 +- src/scanner.l | 97 +++++-- src/tagreader.cpp | 50 ++-- src/textdocvisitor.cpp | 2 +- src/translator_tr.h | 117 +++++++- src/util.cpp | 115 ++++++-- src/util.h | 25 +- src/vhdldocgen.cpp | 2 +- src/xmldocvisitor.cpp | 2 +- src/xmlgen.cpp | 4 +- winbuild/Doxygen.vcproj | 6 +- 100 files changed, 1485 insertions(+), 1112 deletions(-) create mode 100644 doc/index.hhp.txt diff --git a/INSTALL b/INSTALL index d2ad6fd..fae334f 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ -DOXYGEN Version 1.7.0 +DOXYGEN Version 1.7.1 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (15 June 2010) +Dimitri van Heesch (25 June 2010) diff --git a/README b/README index cb4b569..715c7d5 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.7.0 +DOXYGEN Version 1.7.1 Please read INSTALL for compilation instructions. @@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. Enjoy, -Dimitri van Heesch (dimitri@stack.nl) (15 June 2010) +Dimitri van Heesch (dimitri@stack.nl) (25 June 2010) diff --git a/configure b/configure index 2ebd4ab..0b0fd75 100755 --- a/configure +++ b/configure @@ -17,7 +17,7 @@ doxygen_version_major=1 doxygen_version_minor=7 -doxygen_version_revision=0 +doxygen_version_revision=1 #NOTE: Setting version_mmn to "NO" will omit mmn info from the package. doxygen_version_mmn=NO @@ -268,7 +268,7 @@ if test "$f_wizard" = YES; then if test -z "$QTDIR"; then echo " QTDIR environment variable not set!" echo -n " Checking for Qt..." - for d in /usr /usr/{lib,share,qt}/{qt-4,qt4,qt,qt*,4}; do + for d in /usr/{lib,share,qt}/{qt-4,qt4,qt,qt*,4} /usr; do if test -x "$d/bin/qmake"; then QTDIR=$d fi diff --git a/doc/config.doc b/doc/config.doc index e46725e..a4402d1 100644 --- a/doc/config.doc +++ b/doc/config.doc @@ -122,6 +122,7 @@ followed by the descriptions of the tags grouped by category. \refitem cfg_filter_source_files FILTER_SOURCE_FILES \refitem cfg_force_local_includes FORCE_LOCAL_INCLUDES \refitem cfg_formula_fontsize FORMULA_FONTSIZE +\refitem cfg_formula_transparent FORMULA_TRANSPARENT \refitem cfg_full_path_names FULL_PATH_NAMES \refitem cfg_generate_autogen_def GENERATE_AUTOGEN_DEF \refitem cfg_generate_buglist GENERATE_BUGLIST @@ -1588,6 +1589,15 @@ and Class Hierarchy pages using a tree view instead of an ordered list. when you change the font size after a successful doxygen run you need to manually remove any form_*.png images from the HTML output directory to force them to be regenerated. + +\anchor cfg_formula_transparent +
\c FORMULA_TRANSPARENT
+ \addindex FORMULA_TRANSPARENT + Use the \c FORMULA_TRANPARENT tag to determine whether or not the images + generated for formulas are transparent PNGs. Transparent PNGs are + not supported properly for IE 6.0, but are supported on all modern browsers. + Note that when changing this option you need to delete any form_*.png files + in the HTML output before the changes have effect. \section latex_output LaTeX related options diff --git a/doc/docblocks.doc b/doc/docblocks.doc index ebbe879..aa9e873 100644 --- a/doc/docblocks.doc +++ b/doc/docblocks.doc @@ -448,4 +448,36 @@ config file. This will also affect a number of other settings. When they were not already set correctly doxygen will produce a warning telling which settings where overruled. +\section fortranblocks Special documentation blocks in Fortran + +When using doxygen for Fortran code you should +set \ref cfg_optimize_for_fortran "OPTIMIZE_FOR_FORTRAN" to \c YES. + +For fortran "!>" or "!<" starts a comment and "!!" or "!>" can be used to +continuate a one line comment into a multi-line comment. + +Here is an example of a documented Fortran subroutine: +\verbatim + !> Build the restriction matrix for the aggregation + !! method. + !! @param aggr information about the aggregates + !! @todo Handle special case + subroutine IntRestBuild(A,aggr,Restrict,A_ghost) + implicit none + Type(SpMtx), intent(in) :: A !< our fine level matrix + Type(Aggrs), intent(in) :: aggr + Type(SpMtx), intent(out) :: Restrict !< Our restriction matrix +\endverbatim + +As a alternative you can also use comments in fixed format code: + +\verbatim +C> Function comment +C> another line of comment + function A(i) +C> input parameter + integer i + end function A +\endverbatim + */ diff --git a/doc/index.hhp.txt b/doc/index.hhp.txt new file mode 100644 index 0000000..b676d83 --- /dev/null +++ b/doc/index.hhp.txt @@ -0,0 +1,108 @@ +examples/afterdoc/html/tab_a.png +examples/afterdoc/html/tab_b.png +examples/afterdoc/html/tab_h.png +examples/afterdoc/html/tab_s.png +examples/author/html/tab_a.png +examples/author/html/tab_b.png +examples/author/html/tab_h.png +examples/author/html/tab_s.png +examples/autolink/html/tab_a.png +examples/autolink/html/tab_b.png +examples/autolink/html/tab_h.png +examples/autolink/html/tab_s.png +examples/class/html/tab_a.png +examples/class/html/tab_b.png +examples/class/html/tab_h.png +examples/class/html/tab_s.png +examples/define/html/tab_a.png +examples/define/html/tab_b.png +examples/define/html/tab_h.png +examples/define/html/tab_s.png +examples/diagrams/html/tab_a.png +examples/diagrams/html/tab_b.png +examples/diagrams/html/tab_h.png +examples/diagrams/html/tab_s.png +examples/docstring/html/tab_a.png +examples/docstring/html/tab_b.png +examples/docstring/html/tab_h.png +examples/docstring/html/tab_s.png +examples/enum/html/tab_a.png +examples/enum/html/tab_b.png +examples/enum/html/tab_h.png +examples/enum/html/tab_s.png +examples/example/html/tab_a.png +examples/example/html/tab_b.png +examples/example/html/tab_h.png +examples/example/html/tab_s.png +examples/file/html/tab_a.png +examples/file/html/tab_b.png +examples/file/html/tab_h.png +examples/file/html/tab_s.png +examples/func/html/tab_a.png +examples/func/html/tab_b.png +examples/func/html/tab_h.png +examples/func/html/tab_s.png +examples/group/html/tab_a.png +examples/group/html/tab_b.png +examples/group/html/tab_h.png +examples/group/html/tab_s.png +examples/include/html/tab_a.png +examples/include/html/tab_b.png +examples/include/html/tab_h.png +examples/include/html/tab_s.png +examples/jdstyle/html/tab_a.png +examples/jdstyle/html/tab_b.png +examples/jdstyle/html/tab_h.png +examples/jdstyle/html/tab_s.png +examples/manual/html/tab_a.png +examples/manual/html/tab_b.png +examples/manual/html/tab_h.png +examples/manual/html/tab_s.png +examples/memgrp/html/tab_a.png +examples/memgrp/html/tab_b.png +examples/memgrp/html/tab_h.png +examples/memgrp/html/tab_s.png +examples/mux/html/tab_a.png +examples/mux/html/tab_b.png +examples/mux/html/tab_h.png +examples/mux/html/tab_s.png +examples/overload/html/tab_a.png +examples/overload/html/tab_b.png +examples/overload/html/tab_h.png +examples/overload/html/tab_s.png +examples/page/html/tab_a.png +examples/page/html/tab_b.png +examples/page/html/tab_h.png +examples/page/html/tab_s.png +examples/par/html/tab_a.png +examples/par/html/tab_b.png +examples/par/html/tab_h.png +examples/par/html/tab_s.png +examples/pyexample/html/tab_a.png +examples/pyexample/html/tab_b.png +examples/pyexample/html/tab_h.png +examples/pyexample/html/tab_s.png +examples/qtstyle/html/tab_a.png +examples/qtstyle/html/tab_b.png +examples/qtstyle/html/tab_h.png +examples/qtstyle/html/tab_s.png +examples/relates/html/tab_a.png +examples/relates/html/tab_b.png +examples/relates/html/tab_h.png +examples/relates/html/tab_s.png +examples/restypedef/html/tab_a.png +examples/restypedef/html/tab_b.png +examples/restypedef/html/tab_h.png +examples/restypedef/html/tab_s.png +examples/structcmd/html/tab_a.png +examples/structcmd/html/tab_b.png +examples/structcmd/html/tab_h.png +examples/structcmd/html/tab_s.png +examples/tag/html/tab_a.png +examples/tag/html/tab_b.png +examples/tag/html/tab_h.png +examples/tag/html/tab_s.png +examples/template/html/tab_a.png +examples/template/html/tab_b.png +examples/template/html/tab_h.png +examples/template/html/tab_s.png diff --git a/doc/install.doc b/doc/install.doc index b213555..b668dde 100644 --- a/doc/install.doc +++ b/doc/install.doc @@ -366,21 +366,13 @@ before running make. \section install_src_windows Compiling from source on Windows -From version 1.5.0 onwards, build files are provided for Visual Studio 2005. +From version 1.7.0 onwards, build files are provided for Visual Studio 2008. Also the free (as in beer) "Express" version of Developer Studio can be used to compile doxygen. Alternatively, you can compile doxygen \ref install_src_unix "the Unix way" using Cygwin or MinGW. -Before you can compile doxygen you need to download and install the C++ compiler of -Visual Studio. Since Microsoft apparently wants to lure everyone into using their -.NET stuff, they made things somewhat difficult when you use the Express version. -You need to - -do some manual steps in order to setup a proper working environment for building -native win32 applications such as Doxygen. - The next step is to install unxutils (see http://sourceforge.net/projects/unxutils). This packages contains the tools \c flex and \c bison which are needed during the compilation process if you use a CVS snapshot of doxygen (the official source releases @@ -411,9 +403,6 @@ 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). -If you do not have a commercial license, you can build Doxywizard with the open -source version (see http://qtwin.sourceforge.net/qt3-win32/compile-msvc-2005.php), -but I have not tried this myself. Also read the next section for additional tools you may need to install to run doxygen with certain features enabled. diff --git a/examples/afterdoc.cfg b/examples/afterdoc.cfg index 25e1358..fcdbcae 100644 --- a/examples/afterdoc.cfg +++ b/examples/afterdoc.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = afterdoc.h QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/author.cfg b/examples/author.cfg index f1db227..8bb04f7 100644 --- a/examples/author.cfg +++ b/examples/author.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = author.cpp QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/autolink.cfg b/examples/autolink.cfg index 49367fc..406d52c 100644 --- a/examples/autolink.cfg +++ b/examples/autolink.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = autolink.cpp QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/class.cfg b/examples/class.cfg index 99570b8..f2c4796 100644 --- a/examples/class.cfg +++ b/examples/class.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = class.h QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/dbusxml.cfg b/examples/dbusxml.cfg index 3620a4a..686d40c 100644 --- a/examples/dbusxml.cfg +++ b/examples/dbusxml.cfg @@ -8,3 +8,4 @@ INPUT = dbusxml.xml QUIET = YES JAVADOC_AUTOBRIEF = YES EXTRACT_ALL = YES +SEARCHENGINE = NO diff --git a/examples/define.cfg b/examples/define.cfg index 30ed03f..547591e 100644 --- a/examples/define.cfg +++ b/examples/define.cfg @@ -8,3 +8,4 @@ INPUT = define.h ENABLE_PREPROCESSING = YES QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/diagrams.cfg b/examples/diagrams.cfg index d343a66..9bc5551 100644 --- a/examples/diagrams.cfg +++ b/examples/diagrams.cfg @@ -11,3 +11,4 @@ INPUT = . FILE_PATTERNS = diagrams_*.h QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/docstring.cfg b/examples/docstring.cfg index 7493f83..2a5cd9a 100644 --- a/examples/docstring.cfg +++ b/examples/docstring.cfg @@ -8,3 +8,4 @@ OPTIMIZE_OUTPUT_JAVA = YES INPUT = docstring.py QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/enum.cfg b/examples/enum.cfg index 05703cc..ed83670 100644 --- a/examples/enum.cfg +++ b/examples/enum.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = enum.h QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/example.cfg b/examples/example.cfg index 1815a76..4c5c869 100644 --- a/examples/example.cfg +++ b/examples/example.cfg @@ -9,3 +9,4 @@ INPUT = example.cpp EXAMPLE_PATH = example_test.cpp QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/file.cfg b/examples/file.cfg index be0ecfb..e54b1c7 100644 --- a/examples/file.cfg +++ b/examples/file.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = file.h QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/func.cfg b/examples/func.cfg index 6071ac7..32c3190 100644 --- a/examples/func.cfg +++ b/examples/func.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = func.h QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/group.cfg b/examples/group.cfg index f37ebd6..98cc27e 100644 --- a/examples/group.cfg +++ b/examples/group.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = group.cpp QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/include.cfg b/examples/include.cfg index 20c11c0..8516b32 100644 --- a/examples/include.cfg +++ b/examples/include.cfg @@ -8,3 +8,4 @@ INPUT = include.cpp EXAMPLE_PATH = example_test.cpp QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/jdstyle.cfg b/examples/jdstyle.cfg index c79a551..02bf18c 100644 --- a/examples/jdstyle.cfg +++ b/examples/jdstyle.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = jdstyle.cpp QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/manual.cfg b/examples/manual.cfg index 0b9f798..9359842 100644 --- a/examples/manual.cfg +++ b/examples/manual.cfg @@ -13,3 +13,4 @@ TYPEDEF_HIDES_STRUCT = YES INLINE_SOURCES = YES REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES +SEARCHENGINE = NO diff --git a/examples/memgrp.cfg b/examples/memgrp.cfg index ee7545b..a69c33c 100644 --- a/examples/memgrp.cfg +++ b/examples/memgrp.cfg @@ -7,4 +7,5 @@ CASE_SENSE_NAMES = NO INPUT = memgrp.cpp QUIET = YES DISTRIBUTE_GROUP_DOC = YES -JAVADOC_AUTOBRIEF = YES +JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/mux.cfg b/examples/mux.cfg index 7a64d33..86abd9e 100644 --- a/examples/mux.cfg +++ b/examples/mux.cfg @@ -11,3 +11,4 @@ INHERIT_DOCS = YES EXTRACT_PRIVATE = YES HIDE_SCOPE_NAMES = YES INHERIT_DOCS = NO +SEARCHENGINE = NO diff --git a/examples/overload.cfg b/examples/overload.cfg index ee6cfc9..d29cb9c 100644 --- a/examples/overload.cfg +++ b/examples/overload.cfg @@ -8,3 +8,4 @@ SORT_MEMBER_DOCS = NO INPUT = overload.cpp QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/page.cfg b/examples/page.cfg index 7dd9ee2..cd1ff84 100644 --- a/examples/page.cfg +++ b/examples/page.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = page.doc QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/par.cfg b/examples/par.cfg index 299eee8..de6caa9 100644 --- a/examples/par.cfg +++ b/examples/par.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = par.cpp QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/pyexample.cfg b/examples/pyexample.cfg index c6fc3fa..27db0f7 100644 --- a/examples/pyexample.cfg +++ b/examples/pyexample.cfg @@ -7,3 +7,4 @@ OPTIMIZE_OUTPUT_JAVA = YES INPUT = pyexample.py QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/qtstyle.cfg b/examples/qtstyle.cfg index 741b42b..0a930be 100644 --- a/examples/qtstyle.cfg +++ b/examples/qtstyle.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = qtstyle.cpp QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/relates.cfg b/examples/relates.cfg index 7eb8f22..4e1d90b 100644 --- a/examples/relates.cfg +++ b/examples/relates.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = relates.cpp QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/restypedef.cfg b/examples/restypedef.cfg index 5c2214f..c55926e 100644 --- a/examples/restypedef.cfg +++ b/examples/restypedef.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = restypedef.cpp QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/structcmd.cfg b/examples/structcmd.cfg index a3d70bf..f956ad4 100644 --- a/examples/structcmd.cfg +++ b/examples/structcmd.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = structcmd.h QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/tag.cfg b/examples/tag.cfg index 9e79152..3627281 100644 --- a/examples/tag.cfg +++ b/examples/tag.cfg @@ -9,3 +9,4 @@ TAGFILES = example.tag=../../example/html PERL_PATH = perl QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/examples/templ.cfg b/examples/templ.cfg index 4d85734..c8d9514 100644 --- a/examples/templ.cfg +++ b/examples/templ.cfg @@ -7,3 +7,4 @@ CASE_SENSE_NAMES = NO INPUT = templ.cpp QUIET = YES JAVADOC_AUTOBRIEF = YES +SEARCHENGINE = NO diff --git a/qtools/qcstring.h b/qtools/qcstring.h index 032d731..1e5f6f8 100644 --- a/qtools/qcstring.h +++ b/qtools/qcstring.h @@ -450,5 +450,15 @@ Q_EXPORT inline QCString operator+( char c1, const QCString &s2 ) return tmp; } +inline const char *qPrint(const char *s) +{ + if (s) return s; else return ""; +} + +inline const char *qPrint(const QCString &s) +{ + if (!s.isEmpty()) return s.data(); else return ""; +} + #endif // QCSTRING_H diff --git a/qtools/qtextstream.cpp b/qtools/qtextstream.cpp index 6686f81..b12f86d 100644 --- a/qtools/qtextstream.cpp +++ b/qtools/qtextstream.cpp @@ -553,7 +553,7 @@ QTextStream::QTextStream( QByteArray a, int mode ) dev = new QBuffer( a ); ((QBuffer *)dev)->open( mode ); owndev = TRUE; - setEncoding( Latin1 ); //### Locale??? + setEncoding( Locale ); //### Locale??? reset(); d->sourceType = QTextStreamPrivate::ByteArray; } diff --git a/qtools/qutfcodec.cpp b/qtools/qutfcodec.cpp index f64812c..b0caa76 100644 --- a/qtools/qutfcodec.cpp +++ b/qtools/qutfcodec.cpp @@ -181,8 +181,8 @@ const char* QUtf16Codec::name() const int QUtf16Codec::heuristicContentMatch(const char* chars, int len) const { uchar* uchars = (uchar*)chars; - if ( len >= 2 && (uchars[0] == 0xff && uchars[1] == 0xfe || - uchars[1] == 0xff && uchars[0] == 0xfe) ) + if ( len >= 2 && ((uchars[0] == 0xff && uchars[1] == 0xfe) || + (uchars[1] == 0xff && uchars[0] == 0xfe)) ) return len; else return 0; diff --git a/src/classdef.cpp b/src/classdef.cpp index 625df51..9662cef 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -152,8 +152,8 @@ class ClassDefImpl /*! Is the class part of an unnamed namespace? */ bool isStatic; - /*! Is the class part implemented in Objective C? */ - bool isObjC; + /*! Language used for this class */ + SrcLangExt lang; /*! TRUE if classes members are merged with those of the base classes. */ bool membersMerged; @@ -259,7 +259,7 @@ ClassDef::ClassDef( setReference(lref); m_impl = new ClassDefImpl; m_impl->compType = ct; - m_impl->isObjC = FALSE; + m_impl->lang = SrcLangExt_Unknown; m_impl->init(defFileName,name(),compoundTypeString(),fName); } @@ -951,13 +951,13 @@ void ClassDef::showUsedFiles(OutputList &ol) if (fortranOpt) { ol.parseText(theTranslator->trGeneratedFromFilesFortran( - m_impl->isObjC && m_impl->compType==Interface ? Class : m_impl->compType, + m_impl->lang==SrcLangExt_ObjC && m_impl->compType==Interface ? Class : m_impl->compType, m_impl->files.count()==1)); } else { ol.parseText(theTranslator->trGeneratedFromFiles( - m_impl->isObjC && m_impl->compType==Interface ? Class : m_impl->compType, + m_impl->lang==SrcLangExt_ObjC && m_impl->compType==Interface ? Class : m_impl->compType, m_impl->files.count()==1)); } @@ -1148,7 +1148,7 @@ void ClassDef::writeInheritanceGraph(OutputList &ol) } else { - err("Error: invalid marker %d in inherits list!\n",entryIndex); + err("error: invalid marker %d in inherits list!\n",entryIndex); } index=newIndex+matchLen; } @@ -1419,7 +1419,7 @@ void ClassDef::writeDocumentation(OutputList &ol) else { pageTitle = theTranslator->trCompoundReference(displayName(), - m_impl->compType == Interface && m_impl->isObjC ? Class : m_impl->compType, + m_impl->compType == Interface && m_impl->lang==SrcLangExt_ObjC ? Class : m_impl->compType, m_impl->tempArgs != 0); } @@ -1680,7 +1680,7 @@ void ClassDef::writeDocumentationForInnerClasses(OutputList &ol) (innerCd->protection()!=Private || Config_getBool("EXTRACT_PRIVATE")) ) { - msg("Generating docs for nested compound %s...\n",innerCd->name().data()); + msg("Generating docs for nested compound %s...\n",qPrint(innerCd->name())); innerCd->writeDocumentation(ol); innerCd->writeMemberList(ol); } @@ -1847,7 +1847,7 @@ void ClassDef::writeMemberList(OutputList &ol) ol.writeString(""); } if ( - (prot!=Public || (virt!=Normal && !m_impl->isObjC) || + (prot!=Public || (virt!=Normal && m_impl->lang!=SrcLangExt_ObjC) || md->isFriend() || md->isRelated() || md->isExplicit() || md->isMutable() || (md->isInline() && Config_getBool("INLINE_INFO")) || md->isSignal() || md->isSlot() || @@ -1872,7 +1872,7 @@ void ClassDef::writeMemberList(OutputList &ol) else if (prot==Private) sl.append("private"); else if (prot==Package) sl.append("package"); if (virt==Virtual && - !m_impl->isObjC) sl.append("virtual"); + m_impl->lang!=SrcLangExt_ObjC) sl.append("virtual"); else if (virt==Pure) sl.append("pure virtual"); if (md->isStatic()) sl.append("static"); if (md->isSignal()) sl.append("signal"); @@ -2156,7 +2156,7 @@ bool ClassDef::isBaseClass(ClassDef *bcd, bool followInstances,int level) //printf("isBaseClass(cd=%s) looking for %s\n",cd->name().data(),bcd->name().data()); if (level>256) { - err("Possible recursive class relation while inside %s and looking for %s\n",name().data(),bcd->name().data()); + err("Possible recursive class relation while inside %s and looking for %s\n",qPrint(name()),qPrint(bcd->name())); abort(); return FALSE; } @@ -2730,7 +2730,7 @@ void ClassDef::determineIntfUsageRelation() QCString ClassDef::compoundTypeString() const { - if (m_impl->compType==Interface && m_impl->isObjC) return "class"; + if (m_impl->compType==Interface && m_impl->lang==SrcLangExt_ObjC) return "class"; if (Config_getBool("OPTIMIZE_FOR_FORTRAN")) { switch (m_impl->compType) @@ -2933,7 +2933,7 @@ ClassDef *ClassDef::getVariableInstance(const char *templSpec) ClassDef *templateClass=m_impl->variableInstances->find(templSpec); if (templateClass==0) { - Debug::print(Debug::Classes,0," New template variable instance class `%s'`%s'\n",name().data(),templSpec); + Debug::print(Debug::Classes,0," New template variable instance class `%s'`%s'\n",qPrint(name()),qPrint(templSpec)); templateClass = new ClassDef("",1,name()+templSpec, ClassDef::Class,0,0,FALSE); templateClass->addMembersToTemplateInstance( this, templSpec ); @@ -3080,9 +3080,16 @@ QCString ClassDef::qualifiedNameWithTemplateParameters( if (!scName.isEmpty()) scName+=scopeSeparator; - scName+=className(); - ArgumentList *al=0; bool isSpecialization = localName().find('<')!=-1; + bool isGeneric = m_impl->lang==SrcLangExt_CSharp; + + QCString clName = className(); + if (isGeneric && clName.right(2)=="-g") + { + clName = clName.left(clName.length()-2); + } + scName+=clName; + ArgumentList *al=0; if (templateArguments()) { if (actualParams && (al=actualParams->current())) @@ -3387,7 +3394,12 @@ bool ClassDef::isAbstract() const bool ClassDef::isObjectiveC() const { - return m_impl->isObjC; + return m_impl->lang==SrcLangExt_ObjC; +} + +bool ClassDef::isCSharp() const +{ + return m_impl->lang==SrcLangExt_CSharp; } ClassDef *ClassDef::categoryOf() const @@ -3430,9 +3442,9 @@ void ClassDef::setIsStatic(bool b) m_impl->isStatic=b; } -void ClassDef::setIsObjectiveC(bool b) +void ClassDef::setLanguage(SrcLangExt lang) { - m_impl->isObjC=b; + m_impl->lang=lang; } void ClassDef::setCompoundType(CompoundType t) diff --git a/src/classdef.h b/src/classdef.h index 4b85739..cd5cfdc 100644 --- a/src/classdef.h +++ b/src/classdef.h @@ -23,7 +23,7 @@ #include #include -//#include "entry.h" +#include "util.h" #include "memberlist.h" #include "definition.h" #include "sortdict.h" @@ -237,6 +237,9 @@ class ClassDef : public Definition /*! Returns TRUE if this class is implemented in Objective-C */ bool isObjectiveC() const; + /*! Returns TRUE if this class is implemented in C# */ + bool isCSharp() const; + /*! Returns the class of which this is a category (Objective-C only) */ ClassDef *categoryOf() const; @@ -282,7 +285,7 @@ class ClassDef : public Definition void addUsedClass(ClassDef *cd,const char *accessName); void addUsedByClass(ClassDef *cd,const char *accessName); void setIsStatic(bool b); - void setIsObjectiveC(bool b); + void setLanguage(SrcLangExt lang); void setCompoundType(CompoundType t); void setClassName(const char *name); diff --git a/src/code.l b/src/code.l index a0a8f62..ba24ea2 100644 --- a/src/code.l +++ b/src/code.l @@ -2390,8 +2390,8 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP} } "("{B}*("*"{B}*)+{SCOPENAME}*{B}*")"/{B}* { // (*p)->func() but not "if (p) ..." g_code->codify(yytext); - int s=0;while (s=0 && !isId(yytext[e])) e--; + int s=0;while (s<(int)yyleng && !isId(yytext[s])) s++; + int e=(int)yyleng-1;while (e>=0 && !isId(yytext[e])) e--; QCString varname = ((QCString)yytext).mid(s,e-s+1); addType(); g_name=varname; diff --git a/src/commentscan.l b/src/commentscan.l index b805fff..bd92350 100644 --- a/src/commentscan.l +++ b/src/commentscan.l @@ -433,6 +433,7 @@ static QCString getDocSectionName(int s) case Entry::CATEGORYDOC_SEC: return "\\category"; case Entry::ENUMDOC_SEC: return "\\enum"; case Entry::PAGEDOC_SEC: return "\\page"; + case Entry::VARIABLEDOC_SEC: return "\\var"; case Entry::MEMBERDOC_SEC: return "\\fn"; case Entry::OVERLOADDOC_SEC: return "\\overload"; case Entry::FILEDOC_SEC: return "\\file"; @@ -451,6 +452,7 @@ static QCString getDocSectionName(int s) static bool makeStructuralIndicator(Entry::Sections s) { + //printf("current->section=%x\n",current->section); if (!getDocSectionName(current->section).isEmpty()) { return TRUE; @@ -1098,18 +1100,18 @@ RCSTAG "$"{ID}":"[^\n$]+"$" {CMD}"f$" { // end of inline formula formulaText+="$"; - addOutput(addFormula()); + addOutput(" "+addFormula()); BEGIN(Comment); } {CMD}"f]" { // end of block formula formulaText+="\\]"; - addOutput(addFormula()); + addOutput(" "+addFormula()); BEGIN(Comment); } {CMD}"f}" { // end of custom env formula formulaText+="\\end"; formulaText+=formulaEnv; - addOutput(addFormula()); + addOutput(" "+addFormula()); BEGIN(Comment); } [^\\@\n]+ { // any non-special character @@ -1136,7 +1138,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { // missing argument warn(yyFileName,yyLineNr, - "Warning: missing argument after \\enum." + "warning: missing argument after \\enum." ); addOutput('\n'); if (*yytext=='\n') yyLineNr++; @@ -1157,7 +1159,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { // missing argument warn(yyFileName,yyLineNr, - "Warning: missing argument after " + "warning: missing argument after " "\\namespace." ); addOutput('\n'); @@ -1179,7 +1181,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { // missing argument warn(yyFileName,yyLineNr, - "Warning: missing argument after " + "warning: missing argument after " "\\package." ); addOutput('\n'); @@ -1210,7 +1212,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { warn(yyFileName,yyLineNr, - "Warning: missing argument after " + "warning: missing argument after " "\\%s.",YY_START==ClassDocArg1?"class":"category" ); addOutput('\n'); @@ -1271,7 +1273,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { // missing argument! warn(yyFileName,yyLineNr, - "Warning: missing group name after %s", + "warning: missing group name after %s", current->groupDocCmd() ); addOutput('\n'); @@ -1292,7 +1294,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" ) // defgroup requires second argument { warn(yyFileName,yyLineNr, - "Warning: missing title after " + "warning: missing title after " "\\defgroup %s", current->name.data() ); } @@ -1312,7 +1314,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { warn(yyFileName,yyLineNr, - "Warning: missing argument after " + "warning: missing argument after " "\\page." ); if (*yytext=='\n') yyLineNr++; @@ -1358,7 +1360,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { // missing arguments warn(yyFileName,yyLineNr, - "Warning: Missing first argument of \\xrefitem" + "warning: Missing first argument of \\xrefitem" ); if (*yytext=='\n') yyLineNr++; addOutput('\n'); @@ -1378,7 +1380,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { // missing argument warn(yyFileName,yyLineNr, - "Warning: Missing second argument of \\xrefitem" + "warning: Missing second argument of \\xrefitem" ); if (*yytext=='\n') yyLineNr++; addOutput('\n'); @@ -1399,7 +1401,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { // missing argument warn(yyFileName,yyLineNr, - "Warning: Missing third argument of \\xrefitem" + "warning: Missing third argument of \\xrefitem" ); if (*yytext=='\n') yyLineNr++; addOutput('\n'); @@ -1426,7 +1428,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { // missing argument warn(yyFileName,yyLineNr, - "Warning: Missing argument of \\relates or \\memberof command" + "warning: Missing argument of \\relates or \\memberof command" ); if (*yytext=='\n') yyLineNr++; addOutput('\n'); @@ -1461,7 +1463,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { // missing argument warn(yyFileName,yyLineNr, - "Warning: \\section command has no label" + "warning: \\section command has no label" ); if (*yytext=='\n') yyLineNr++; addOutput('\n'); @@ -1469,7 +1471,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } . { // invalid character for section label warn(yyFileName,yyLineNr, - "Warning: Invalid or missing section label" + "warning: Invalid or missing section label" ); BEGIN(Comment); } @@ -1516,7 +1518,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { // missing argument warn(yyFileName,yyLineNr, - "Warning: \\subpage command has no label" + "warning: \\subpage command has no label" ); if (*yytext=='\n') yyLineNr++; addOutput('\n'); @@ -1546,7 +1548,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { // missing argument warn(yyFileName,yyLineNr, - "Warning: \\anchor command has no label" + "warning: \\anchor command has no label" ); if (*yytext=='\n') yyLineNr++; addOutput('\n'); @@ -1554,7 +1556,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } . { // invalid character for anchor label warn(yyFileName,yyLineNr, - "Warning: Invalid or missing anchor label" + "warning: Invalid or missing anchor label" ); BEGIN(Comment); } @@ -1586,7 +1588,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" if (g_commentCount<0 && blockName!="verbatim") { warn(yyFileName,yyLineNr, - "Warning: found */ without matching /* while inside a \\%s block! Perhaps a missing \\end%s?\n",blockName.data(),blockName.data()); + "warning: found */ without matching /* while inside a \\%s block! Perhaps a missing \\end%s?\n",blockName.data(),blockName.data()); } } . { @@ -1594,7 +1596,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } <> { warn(yyFileName,yyLineNr, - "Warning: reached end of comment while inside a @%s block; check for missing @end%s tag!", + "warning: reached end of comment while inside a @%s block; check for missing @end%s tag!", blockName.data(),blockName.data() ); yyterminate(); @@ -1670,7 +1672,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" if (guards.isEmpty()) { warn(yyFileName,yyLineNr, - "Warning: found @endif without matching start command"); + "warning: found @endif without matching start command"); } else { @@ -1682,7 +1684,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" if (guards.isEmpty()) { warn(yyFileName,yyLineNr, - "Warning: found @else without matching start command"); + "warning: found @else without matching start command"); } else { @@ -1699,7 +1701,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" if (guards.isEmpty()) { warn(yyFileName,yyLineNr, - "Warning: found @elseif without matching start command"); + "warning: found @elseif without matching start command"); } else { @@ -1803,7 +1805,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" if (!inGroupParamFound) { warn(yyFileName,yyLineNr, - "Warning: Missing group name for \\ingroup command" + "warning: Missing group name for \\ingroup command" ); } if (*yytext=='\n') yyLineNr++; @@ -1884,7 +1886,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { // missing argument warn(yyFileName,yyLineNr, - "Warning: \\inherit command has no argument" + "warning: \\inherit command has no argument" ); if (*yytext=='\n') yyLineNr++; addOutput('\n'); @@ -1892,7 +1894,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } . { // invalid character for anchor label warn(yyFileName,yyLineNr, - "Warning: Invalid or missing name for \\inherit command" + "warning: Invalid or missing name for \\inherit command" ); BEGIN(Comment); } @@ -1907,7 +1909,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } {DOCNL} { // missing argument warn(yyFileName,yyLineNr, - "Warning: \\extends or \\implements command has no argument" + "warning: \\extends or \\implements command has no argument" ); if (*yytext=='\n') yyLineNr++; addOutput('\n'); @@ -2201,7 +2203,7 @@ static bool handleMemberOf(const QCString &) static bool handleRefItem(const QCString &) { - addOutput("@refitem "); + addOutput(" @refitem "); BEGIN(LineParam); return FALSE; } @@ -2209,7 +2211,7 @@ static bool handleRefItem(const QCString &) static bool handleSection(const QCString &s) { setOutput(OutputDoc); - addOutput("@"+s+" "); + addOutput(" @"+s+" "); BEGIN(SectionLabel); if (s=="section") g_sectionLevel=1; else if (s=="subsection") g_sectionLevel=2; @@ -2226,23 +2228,23 @@ static bool handleSubpage(const QCString &s) ) { warn(yyFileName,yyLineNr, - "Warning: found \\subpage command in a comment block that is not marked as a page!"); + "warning: found \\subpage command in a comment block that is not marked as a page!"); } - addOutput("@"+s+" "); + addOutput(" @"+s+" "); BEGIN(SubpageLabel); return FALSE; } static bool handleAnchor(const QCString &s) { - addOutput("@"+s+" "); + addOutput(" @"+s+" "); BEGIN(AnchorLabel); return FALSE; } static bool handleFormatBlock(const QCString &s) { - addOutput("@"+s+" "); + addOutput(" @"+s+" "); //printf("handleFormatBlock(%s)\n",s.data()); blockName=s; g_commentCount=0; @@ -2252,7 +2254,7 @@ static bool handleFormatBlock(const QCString &s) static bool handleAddIndex(const QCString &) { - addOutput("@addindex "); + addOutput(" @addindex "); BEGIN(LineParam); return FALSE; } @@ -2278,7 +2280,7 @@ static bool handleElseIf(const QCString &) if (guards.isEmpty()) { warn(yyFileName,yyLineNr, - "Warning: found \\else without matching start command"); + "warning: found \\else without matching start command"); } else { @@ -2293,7 +2295,7 @@ static bool handleElse(const QCString &) if (guards.isEmpty()) { warn(yyFileName,yyLineNr, - "Warning: found \\else without matching start command"); + "warning: found \\else without matching start command"); } else { @@ -2307,7 +2309,7 @@ static bool handleEndIf(const QCString &) if (guards.isEmpty()) { warn(yyFileName,yyLineNr, - "Warning: found \\endif without matching start command"); + "warning: found \\endif without matching start command"); } else { @@ -2449,7 +2451,7 @@ static void checkFormula() { if (YY_START==ReadFormulaShort || YY_START==ReadFormulaLong) { - warn(yyFileName,yyLineNr,"Warning: End of comment block while inside formula."); + warn(yyFileName,yyLineNr,"warning: End of comment block while inside formula."); } } @@ -2574,14 +2576,14 @@ void groupLeaveFile(const char *fileName,int line) { //if (g_memberGroupId!=DOX_NOGROUP) //{ - // warn(fileName,line,"Warning: end of file while inside a member group\n"); + // warn(fileName,line,"warning: end of file while inside a member group\n"); //} g_memberGroupId=DOX_NOGROUP; g_memberGroupRelates.resize(0); g_memberGroupDocs.resize(0); if (!g_autoGroupStack.isEmpty()) { - warn(fileName,line,"Warning: end of file while inside a group\n"); + warn(fileName,line,"warning: end of file while inside a group\n"); } } @@ -2589,7 +2591,7 @@ void groupEnterCompound(const char *fileName,int line,const char *name) { if (g_memberGroupId!=DOX_NOGROUP) { - warn(fileName,line,"Warning: try to put compound %s inside a member group\n",name); + warn(fileName,line,"warning: try to put compound %s inside a member group\n",name); } g_memberGroupId=DOX_NOGROUP; g_memberGroupRelates.resize(0); @@ -2612,7 +2614,7 @@ void groupLeaveCompound(const char *,int,const char * /*name*/) //printf("groupLeaveCompound(%s)\n",name); //if (g_memberGroupId!=DOX_NOGROUP) //{ - // warn(fileName,line,"Warning: end of compound %s while inside a member group\n",name); + // warn(fileName,line,"warning: end of compound %s while inside a member group\n",name); //} g_memberGroupId=DOX_NOGROUP; g_memberGroupRelates.resize(0); diff --git a/src/config.h b/src/config.h index dbf3a37..2ae0979 100644 --- a/src/config.h +++ b/src/config.h @@ -24,7 +24,8 @@ #include #include #include -#include +#include "ftextstream.h" + /*! \brief Abstract base class for any configuration option. * @@ -71,17 +72,17 @@ class ConfigOption void setEncoding(const QCString &e) { m_encoding = e; } protected: - virtual void writeTemplate(QTextStream &t,bool sl,bool upd) = 0; + virtual void writeTemplate(FTextStream &t,bool sl,bool upd) = 0; virtual void convertStrToVal() {} virtual void substEnvVars() = 0; - virtual void writeXML(QTextStream&) {} + virtual void writeXML(FTextStream&) {} virtual void init() {} QCString convertToComment(const QCString &s); - void writeBoolValue(QTextStream &t,bool v); - void writeIntValue(QTextStream &t,int i); - void writeStringValue(QTextStream &t,QCString &s); - void writeStringList(QTextStream &t,QStrList &l); + void writeBoolValue(FTextStream &t,bool v); + void writeIntValue(FTextStream &t,int i); + void writeStringValue(FTextStream &t,QCString &s); + void writeStringList(FTextStream &t,QStrList &l); QCString m_spaces; QCString m_name; @@ -103,7 +104,7 @@ class ConfigInfo : public ConfigOption m_name = name; m_doc = doc; } - void writeTemplate(QTextStream &t, bool sl,bool) + void writeTemplate(FTextStream &t, bool sl,bool) { if (!sl) { @@ -134,7 +135,7 @@ class ConfigList : public ConfigOption void setWidgetType(WidgetType w) { m_widgetType = w; } WidgetType widgetType() const { return m_widgetType; } QStrList *valueRef() { return &m_value; } - void writeTemplate(QTextStream &t,bool sl,bool) + void writeTemplate(FTextStream &t,bool sl,bool) { if (!sl) { @@ -147,7 +148,7 @@ class ConfigList : public ConfigOption t << "\n"; } void substEnvVars(); - void writeXML(QTextStream&); + void writeXML(FTextStream&); void init() { m_value.clear(); } private: QStrList m_value; @@ -175,7 +176,7 @@ class ConfigEnum : public ConfigOption } QCString *valueRef() { return &m_value; } void substEnvVars(); - void writeTemplate(QTextStream &t,bool sl,bool) + void writeTemplate(FTextStream &t,bool sl,bool) { if (!sl) { @@ -187,7 +188,7 @@ class ConfigEnum : public ConfigOption writeStringValue(t,m_value); t << "\n"; } - void writeXML(QTextStream&); + void writeXML(FTextStream&); void init() { m_value = m_defValue.copy(); } private: @@ -217,7 +218,7 @@ class ConfigString : public ConfigOption WidgetType widgetType() const { return m_widgetType; } void setDefaultValue(const char *v) { m_defValue = v; } QCString *valueRef() { return &m_value; } - void writeTemplate(QTextStream &t,bool sl,bool) + void writeTemplate(FTextStream &t,bool sl,bool) { if (!sl) { @@ -230,7 +231,7 @@ class ConfigString : public ConfigOption t << "\n"; } void substEnvVars(); - void writeXML(QTextStream&); + void writeXML(FTextStream&); void init() { m_value = m_defValue.copy(); } private: @@ -261,7 +262,7 @@ class ConfigInt : public ConfigOption int maxVal() const { return m_maxVal; } void convertStrToVal(); void substEnvVars(); - void writeTemplate(QTextStream &t,bool sl,bool upd) + void writeTemplate(FTextStream &t,bool sl,bool upd) { if (!sl) { @@ -280,7 +281,7 @@ class ConfigInt : public ConfigOption } t << "\n"; } - void writeXML(QTextStream&); + void writeXML(FTextStream&); void init() { m_value = m_defValue; } private: int m_value; @@ -309,7 +310,7 @@ class ConfigBool : public ConfigOption void convertStrToVal(); void substEnvVars(); void setValueString(const QCString &v) { m_valueString = v; } - void writeTemplate(QTextStream &t,bool sl,bool upd) + void writeTemplate(FTextStream &t,bool sl,bool upd) { if (!sl) { @@ -328,7 +329,7 @@ class ConfigBool : public ConfigOption } t << "\n"; } - void writeXML(QTextStream&); + void writeXML(FTextStream&); void init() { m_value = m_defValue; } private: bool m_value; @@ -344,9 +345,9 @@ class ConfigObsolete : public ConfigOption public: ConfigObsolete(const char *name,OptionType t) : ConfigOption(t) { m_name = name; } - void writeTemplate(QTextStream &,bool,bool) {} + void writeTemplate(FTextStream &,bool,bool) {} void substEnvVars() {} - void writeXML(QTextStream&); + void writeXML(FTextStream&); }; @@ -535,10 +536,10 @@ class Config * is \c TRUE the description of each configuration option will * be omitted. */ - void writeTemplate(QTextStream &t,bool shortIndex,bool updateOnly); + void writeTemplate(FTextStream &t,bool shortIndex,bool updateOnly); /** Write XML representation of the config file */ - void writeXML(QTextStream &t); + void writeXML(FTextStream &t); ///////////////////////////// // internal API diff --git a/src/config.l b/src/config.l index 5f1ba37..97571c8 100644 --- a/src/config.l +++ b/src/config.l @@ -104,18 +104,18 @@ QCString ConfigOption::convertToComment(const QCString &s) return result; } -void ConfigOption::writeBoolValue(QTextStream &t,bool v) +void ConfigOption::writeBoolValue(FTextStream &t,bool v) { t << " "; if (v) t << "YES"; else t << "NO"; } -void ConfigOption::writeIntValue(QTextStream &t,int i) +void ConfigOption::writeIntValue(FTextStream &t,int i) { t << " " << i; } -void ConfigOption::writeStringValue(QTextStream &t,QCString &s) +void ConfigOption::writeStringValue(FTextStream &t,QCString &s) { char c; bool needsEscaping=FALSE; @@ -146,7 +146,7 @@ void ConfigOption::writeStringValue(QTextStream &t,QCString &s) } } -void ConfigOption::writeStringList(QTextStream &t,QStrList &l) +void ConfigOption::writeStringList(FTextStream &t,QStrList &l) { const char *p = l.first(); bool first=TRUE; @@ -175,7 +175,7 @@ void ConfigInt::convertStrToVal() int val = m_valueString.toInt(&ok); if (!ok || valm_maxVal) { - config_warn("Warning: argument `%s' for option %s is not a valid number in the range [%d..%d]!\n" + config_warn("warning: argument `%s' for option %s is not a valid number in the range [%d..%d]!\n" "Using the default: %d!\n",m_valueString.data(),m_name.data(),m_minVal,m_maxVal,m_value); } m_value=val; @@ -197,7 +197,7 @@ void ConfigBool::convertStrToVal() } else { - config_warn("Warning: argument `%s' for option %s is not a valid boolean value\n" + config_warn("warning: argument `%s' for option %s is not a valid boolean value\n" "Using the default: %s!\n",m_valueString.data(),m_name.data(),m_value?"YES":"NO"); } } @@ -286,7 +286,7 @@ bool &Config::getBool(const char *fileName,int num,const char *name) const /* ----------------------------------------------------------------- */ -void ConfigInt::writeXML(QTextStream& t) +void ConfigInt::writeXML(FTextStream& t) { t << " " << endl; } -void ConfigObsolete::writeXML(QTextStream &t) +void ConfigObsolete::writeXML(FTextStream &t) { t << "