From aacd1557af129e2bff3514169e04168376a2431b Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sat, 9 Feb 2013 19:18:25 +0000 Subject: Release-1.8.3.1-20130209 --- INSTALL | 4 +- README | 4 +- addon/doxmlparser/include/doxmlintf.h | 2 +- addon/doxmlparser/src/basehandler.h | 2 +- addon/doxmlparser/src/baseiterator.h | 2 +- addon/doxmlparser/src/compoundhandler.cpp | 2 +- addon/doxmlparser/src/compoundhandler.h | 2 +- addon/doxmlparser/src/dochandler.cpp | 2 +- addon/doxmlparser/src/dochandler.h | 2 +- addon/doxmlparser/src/graphhandler.h | 2 +- addon/doxmlparser/src/linkedtexthandler.cpp | 2 +- addon/doxmlparser/src/linkedtexthandler.h | 2 +- addon/doxmlparser/src/loamhandler.h | 2 +- addon/doxmlparser/src/mainhandler.cpp | 2 +- addon/doxmlparser/src/mainhandler.h | 2 +- addon/doxmlparser/src/memberhandler.cpp | 2 +- addon/doxmlparser/src/memberhandler.h | 2 +- addon/doxmlparser/src/paramhandler.cpp | 2 +- addon/doxmlparser/src/paramhandler.h | 2 +- addon/doxmlparser/src/sectionhandler.cpp | 2 +- addon/doxmlparser/src/sectionhandler.h | 2 +- addon/doxyapp/Makefile.in | 4 +- addon/doxysearch/Makefile.in | 8 +- addon/doxysearch/doxyindexer.pro.in | 2 +- configure | 66 +- doc/commands.doc | 18 + doc/config.doc | 54 +- doc/language.doc | 2 +- doc/maintainers.txt | 3 + libmd5/Makefile.in | 4 +- qtools/Doxyfile | 16 +- qtools/Makefile.in | 4 +- qtools/qdatetime.cpp | 4 +- src/Makefile.in | 12 +- src/classdef.cpp | 11 +- src/classdef.h | 6 +- src/cmdmapper.cpp | 2 + src/cmdmapper.h | 4 +- src/code.l | 101 +- src/commentcnv.l | 4 +- src/commentscan.l | 9 +- src/compound.xsd | 1 + src/compound_xsd.h | 1 + src/config.xml | 51 +- src/configoptions.cpp | 54 +- src/define.cpp | 2 + src/define.h | 1 + src/definition.cpp | 57 +- src/definition.h | 10 +- src/dirdef.cpp | 2 +- src/docbookgen.cpp | 1906 +++++++++++++++++++++++++ src/docbookgen.h | 20 + src/docbookvisitor.cpp | 1397 +++++++++++++++++++ src/docbookvisitor.h | 161 +++ src/docparser.cpp | 12 +- src/docparser.h | 2 +- src/docsets.cpp | 5 + src/doctokenizer.h | 1 + src/doctokenizer.l | 15 + src/docvisitor.h | 1 + src/dot.cpp | 112 +- src/dot.h | 4 +- src/doxygen.cpp | 465 ++++--- src/doxygen.css | 4 +- src/doxygen.pro.in | 4 +- src/doxygen_css.h | 4 +- src/entry.cpp | 2 + src/entry.h | 1 + src/filedef.cpp | 2 +- src/fortrancode.l | 26 +- src/fortranscanner.l | 30 +- src/groupdef.cpp | 2 +- src/htmldocvisitor.cpp | 5 +- src/htmlhelp.cpp | 2 + src/language.cpp | 9 + src/latexdocvisitor.cpp | 3 +- src/libdoxygen.pro.in | 10 +- src/mandocvisitor.cpp | 3 +- src/markdown.cpp | 19 +- src/memberdef.cpp | 23 +- src/memberdef.h | 4 +- src/namespacedef.cpp | 4 +- src/namespacedef.h | 2 +- src/pagedef.cpp | 11 +- src/perlmodgen.cpp | 15 +- src/pre.l | 55 +- src/printdocvisitor.h | 2 + src/pycode.l | 37 +- src/pyscanner.l | 24 +- src/rtfdocvisitor.cpp | 3 +- src/scanner.l | 85 +- src/settings.h | 4 + src/sqlite3gen.cpp | 1361 ++++++++++++++++++ src/sqlite3gen.h | 23 + src/tagreader.cpp | 4 +- src/tagreader.h | 2 +- src/tclscanner.l | 2 +- src/translator_lv.h | 2002 +++++++++++++++++++++++++++ src/util.cpp | 7 +- src/vhdlcode.l | 4 +- src/vhdldocgen.cpp | 144 +- src/vhdldocgen.h | 7 +- src/vhdlparser.y | 45 +- src/vhdlscanner.l | 2 +- src/xmldocvisitor.cpp | 5 + src/xmlgen.cpp | 103 +- winbuild/Doxygen.vcproj | 20 + 107 files changed, 8166 insertions(+), 620 deletions(-) create mode 100644 src/docbookgen.cpp create mode 100644 src/docbookgen.h create mode 100644 src/docbookvisitor.cpp create mode 100644 src/docbookvisitor.h create mode 100644 src/settings.h create mode 100644 src/sqlite3gen.cpp create mode 100644 src/sqlite3gen.h create mode 100644 src/translator_lv.h diff --git a/INSTALL b/INSTALL index 35cae58..5f397ae 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ -DOXYGEN Version 1.8.3.1 +DOXYGEN Version 1.8.3.1-20130209 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (20 January 2013) +Dimitri van Heesch (09 February 2013) diff --git a/README b/README index 365b7dd..f3fdb00 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.8.3.1 +DOXYGEN Version 1.8.3.1_20130209 Please read INSTALL for compilation instructions. @@ -26,4 +26,4 @@ forum. Enjoy, -Dimitri van Heesch (dimitri@stack.nl) (20 January 2013) +Dimitri van Heesch (dimitri@stack.nl) (09 February 2013) diff --git a/addon/doxmlparser/include/doxmlintf.h b/addon/doxmlparser/include/doxmlintf.h index 2314021..f13971f 100644 --- a/addon/doxmlparser/include/doxmlintf.h +++ b/addon/doxmlparser/include/doxmlintf.h @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2006 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/basehandler.h b/addon/doxmlparser/src/basehandler.h index edb4580..32e4181 100644 --- a/addon/doxmlparser/src/basehandler.h +++ b/addon/doxmlparser/src/basehandler.h @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/baseiterator.h b/addon/doxmlparser/src/baseiterator.h index a1d6f87..9a59502 100644 --- a/addon/doxmlparser/src/baseiterator.h +++ b/addon/doxmlparser/src/baseiterator.h @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/compoundhandler.cpp b/addon/doxmlparser/src/compoundhandler.cpp index 71d50cb..3cd77b0 100644 --- a/addon/doxmlparser/src/compoundhandler.cpp +++ b/addon/doxmlparser/src/compoundhandler.cpp @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/compoundhandler.h b/addon/doxmlparser/src/compoundhandler.h index dea7d42..635cff3 100644 --- a/addon/doxmlparser/src/compoundhandler.h +++ b/addon/doxmlparser/src/compoundhandler.h @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/dochandler.cpp b/addon/doxmlparser/src/dochandler.cpp index 535889f..992b185 100644 --- a/addon/doxmlparser/src/dochandler.cpp +++ b/addon/doxmlparser/src/dochandler.cpp @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/dochandler.h b/addon/doxmlparser/src/dochandler.h index 829d977..172bcd2 100644 --- a/addon/doxmlparser/src/dochandler.h +++ b/addon/doxmlparser/src/dochandler.h @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/graphhandler.h b/addon/doxmlparser/src/graphhandler.h index acce157..d946fcf 100644 --- a/addon/doxmlparser/src/graphhandler.h +++ b/addon/doxmlparser/src/graphhandler.h @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/linkedtexthandler.cpp b/addon/doxmlparser/src/linkedtexthandler.cpp index a921b6c..d51d8e2 100644 --- a/addon/doxmlparser/src/linkedtexthandler.cpp +++ b/addon/doxmlparser/src/linkedtexthandler.cpp @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/linkedtexthandler.h b/addon/doxmlparser/src/linkedtexthandler.h index 83cc4d8..6c6a1c7 100644 --- a/addon/doxmlparser/src/linkedtexthandler.h +++ b/addon/doxmlparser/src/linkedtexthandler.h @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/loamhandler.h b/addon/doxmlparser/src/loamhandler.h index b7c6397..61f9e6b 100644 --- a/addon/doxmlparser/src/loamhandler.h +++ b/addon/doxmlparser/src/loamhandler.h @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/mainhandler.cpp b/addon/doxmlparser/src/mainhandler.cpp index 1124b3d..49cfef9 100644 --- a/addon/doxmlparser/src/mainhandler.cpp +++ b/addon/doxmlparser/src/mainhandler.cpp @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/mainhandler.h b/addon/doxmlparser/src/mainhandler.h index 7b9e7fc..5706e6e 100644 --- a/addon/doxmlparser/src/mainhandler.h +++ b/addon/doxmlparser/src/mainhandler.h @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/memberhandler.cpp b/addon/doxmlparser/src/memberhandler.cpp index 303e556..4d0a0cf 100644 --- a/addon/doxmlparser/src/memberhandler.cpp +++ b/addon/doxmlparser/src/memberhandler.cpp @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/memberhandler.h b/addon/doxmlparser/src/memberhandler.h index f80a4eb..66c9a14 100644 --- a/addon/doxmlparser/src/memberhandler.h +++ b/addon/doxmlparser/src/memberhandler.h @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/paramhandler.cpp b/addon/doxmlparser/src/paramhandler.cpp index 124fde0..4b57e50 100644 --- a/addon/doxmlparser/src/paramhandler.cpp +++ b/addon/doxmlparser/src/paramhandler.cpp @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/paramhandler.h b/addon/doxmlparser/src/paramhandler.h index 64b89a2..89ef541 100644 --- a/addon/doxmlparser/src/paramhandler.h +++ b/addon/doxmlparser/src/paramhandler.h @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/sectionhandler.cpp b/addon/doxmlparser/src/sectionhandler.cpp index 8b3d9f2..df89941 100644 --- a/addon/doxmlparser/src/sectionhandler.cpp +++ b/addon/doxmlparser/src/sectionhandler.cpp @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxmlparser/src/sectionhandler.h b/addon/doxmlparser/src/sectionhandler.h index 86aad3b..b43e878 100644 --- a/addon/doxmlparser/src/sectionhandler.h +++ b/addon/doxmlparser/src/sectionhandler.h @@ -3,7 +3,7 @@ * $Id$ * * - * Copyright (C) 1997-2012 by Dimitri van Heesch. + * Copyright (C) 1997-2013 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby diff --git a/addon/doxyapp/Makefile.in b/addon/doxyapp/Makefile.in index c5acd67..49ddb4d 100644 --- a/addon/doxyapp/Makefile.in +++ b/addon/doxyapp/Makefile.in @@ -6,12 +6,12 @@ distclean: clean $(RM) -rf Makefile doxyapp.pro Makefile.doxyapp tmake: - $(ENV) $(PERL) $(TMAKE) doxyapp.pro >Makefile.doxyapp + $(ENV) $(PERL) "$(TMAKE)" doxyapp.pro >Makefile.doxyapp strip: strip doxyapp Makefile.doxyapp: doxyapp.pro - $(ENV) $(PERL) $(TMAKE) doxyapp.pro >Makefile.doxyapp + $(ENV) $(PERL) "$(TMAKE)" doxyapp.pro >Makefile.doxyapp install: diff --git a/addon/doxysearch/Makefile.in b/addon/doxysearch/Makefile.in index 3159e22..7daafee 100644 --- a/addon/doxysearch/Makefile.in +++ b/addon/doxysearch/Makefile.in @@ -8,17 +8,17 @@ distclean: clean $(RM) -rf Makefile doxyindexer.pro Makefile.doxyindexer tmake: - $(ENV) $(PERL) $(TMAKE) doxysearch.pro >Makefile.doxysearch - $(ENV) $(PERL) $(TMAKE) doxyindexer.pro >Makefile.doxyindexer + $(ENV) $(PERL) "$(TMAKE)" doxysearch.pro >Makefile.doxysearch + $(ENV) $(PERL) "$(TMAKE)" doxyindexer.pro >Makefile.doxyindexer strip: strip doxysearch Makefile.doxysearch: doxysearch.pro - $(ENV) $(PERL) $(TMAKE) doxysearch.pro >Makefile.doxysearch + $(ENV) $(PERL) "$(TMAKE)" doxysearch.pro >Makefile.doxysearch Makefile.doxyindexer: doxyindexer.pro - $(ENV) $(PERL) $(TMAKE) doxyindexer.pro >Makefile.doxyindexer + $(ENV) $(PERL) "$(TMAKE)" doxyindexer.pro >Makefile.doxyindexer install: $(INSTTOOL) -d $(INSTALL)/bin diff --git a/addon/doxysearch/doxyindexer.pro.in b/addon/doxysearch/doxyindexer.pro.in index 7286df8..deeb8f8 100644 --- a/addon/doxysearch/doxyindexer.pro.in +++ b/addon/doxysearch/doxyindexer.pro.in @@ -2,7 +2,7 @@ TEMPLATE = app.t CONFIG = console warn_on static release HEADERS = SOURCES = doxyindexer.cpp -LIBS += -lxapian -lqtools -L../../lib +LIBS += -L../../lib -lxapian -lqtools DESTDIR = OBJECTS_DIR = ../../objects TARGET = ../../bin/doxyindexer diff --git a/configure b/configure index ff266ee..65c5f25 100755 --- a/configure +++ b/configure @@ -2,7 +2,7 @@ # # $Id$ # -# Copyright (C) 1997-2012 by Dimitri van Heesch. +# Copyright (C) 1997-2013 by Dimitri van Heesch. # # Permission to use, copy, modify, and distribute this software and its # documentation under the terms of the GNU General Public License is hereby @@ -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=NO +doxygen_version_mmn=20130209 bin_dirs=`echo $PATH | sed -e "s/:/ /g"` @@ -40,6 +40,7 @@ f_flex=NO f_bison=NO f_search=NO f_langs=nl,sv,cz,fr,id,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,mk,br,dk,sk,ua,gr,tw,sr,ca,lt,za,ar,fa,sc,vi,tr,eo,am +f_sqlite3=NO while test -n "$1"; do case $1 in @@ -97,6 +98,9 @@ while test -n "$1"; do --with-doxysearch | -with-doxysearch) f_search=YES ;; + --with-sqlite3 | -with-sqlite3) + f_sqlite3=YES + ;; -h | -help | --help) f_help=y ;; @@ -114,7 +118,7 @@ if test "$f_help" = y; then Usage: $0 [--help] [--shared] [--static] [--release] [--debug] [--perl name] [--flex name] [--bison name] [--make name] [--dot name] [--platform target] [--prefix dir] [--docdir dir] - [--install name] [--english-only] [--enable-langs list] + [--install name] [--english-only] [--enable-langs list] [--with-sqlite3] [--with-doxywizard] [--with-doxysearch] [--with-doxyapp] Options: @@ -147,6 +151,7 @@ Options: --english-only Include support for English only. --enable-langs list Include support for output languages listed in list. [default: $f_langs] + --with-sqlite3 Add support for sqlite3 output [experimental] --with-doxywizard Build the GUI frontend for doxygen. This requires Qt version 4. --with-doxysearch Build external search tools (doxysearch and doxyindexer) @@ -400,6 +405,41 @@ else echo "using $f_dot" fi +# - check for sqlite3 --------------------------------------------------------- + +if test "$f_sqlite3" = YES; then + echo -n " Checking for sqlite3 ... " + sqlite3_hdr_dir="/usr/include /usr/local/include /opt/local/include" + sqlite3_lib_dir="/usr/lib /usr/local/lib /opt/local/lib" + sqlite3_lib_name="libsqlite3.so libsqlite3.dylib libsqlite3.a" + sqlite3_hdr=NO + sqlite3_lib=NO + sqlite3_link= + for j in $sqlite3_hdr_dir; do + if test -f "$j/sqlite3.h"; then + sqlite3_hdr="$j/sqlite3.h" + break + fi + done + for i in $sqlite3_lib_dir; do + if test "$sqlite3_lib" = NO; then + for j in $sqlite3_lib_name; do + if test -f "$i/$j"; then + sqlite3_lib="$i/$j" + sqlite3_link="-L $i -lsqlite3" + break + fi + done + fi + done + if test "$sqlite3_hdr" = NO -o "$sqlite3_lib" = NO; then + echo "not found!"; + else + echo "using header $sqlite3_hdr and library $sqlite3_lib..."; + fi +fi + + # - check for perl ------------------------------------------------------------ echo -n " Checking for perl... " @@ -502,7 +542,7 @@ configPWD=`pwd` cat > .makeconfig <> .makeconfig <> $DST + cat $SRC .tmakeconfig | sed -e "s/\$extraopts/$realopts/g" -e "s;%%SQLITE3_LIBS%%;$sqlite3_link;g" >> $DST echo " Created $DST from $SRC..." done @@ -707,7 +748,7 @@ done if test -f "src/lang_cfg.h"; then chmod u+w src/lang_cfg.h # make sure file can be overwritten fi -echo -n " Generating src/lang_cfg.h..." +echo " Generating src/lang_cfg.h..." echo $f_langs | $f_perl -e '@l=split(/,/,); chomp @l; @allowed=(split(/,/,"NL,SV,CZ,FR,ID,IT,DE,JP,JE,ES,FI,RU,HR,PL,PT,HU,KR,KE,RO,SI,CN,NO,MK,BR,DK,SK,UA,GR,TW,SR,CA,LT,ZA,AR,FA,SC,VI,TR,EO,AM")); @@ -720,4 +761,17 @@ echo $f_langs | $f_perl -e '@l=split(/,/,); if ($r!=1) { die "ERROR: Invalid language $elem was selected!\n"; } print "#define LANG_$elem\n"; };' > ./src/lang_cfg.h + +if test -f "src/config.h"; then + chmod u+w src/config.h +fi +echo " Generating src/settings.h..." +echo "#ifndef SETTINGS_H" > src/settings.h +echo "#define SETTINGS_H" >> src/settings.h +if test "$f_sqlite3" != NO; then +echo "#define USE_SQLITE3 1" >> src/settings.h +else +echo "#define USE_SQLITE3 0" >> src/settings.h +fi +echo "#endif" >> src/settings.h echo diff --git a/doc/commands.doc b/doc/commands.doc index 87eec7a..2f30979 100644 --- a/doc/commands.doc +++ b/doc/commands.doc @@ -65,6 +65,7 @@ documentation: \refitem cmddeprecated \\deprecated \refitem cmddetails \\details \refitem cmddir \\dir +\refitem cmddocbookonly \\docbookonly \refitem cmddontinclude \\dontinclude \refitem cmddot \\dot \refitem cmddotfile \\dotfile @@ -74,6 +75,7 @@ documentation: \refitem cmdem \\em \refitem cmdendcode \\endcode \refitem cmdendcond \\endcond +\refitem cmdenddocbookonly \\enddocbookonly \refitem cmdenddot \\enddot \refitem cmdendhtmlonly \\endhtmlonly \refitem cmdendif \\endif @@ -2276,6 +2278,14 @@ Works in a similar way as \ref cmdcopydoc "\\copydoc" but will only copy the detailed documentation, not the brief description.
+\section cmddocbookonly \\docbookonly + + \addindex \\docbookonly + Starts a block of text that will be verbatim included in the + generated docbook documentation only. The block ends with a + \ref cmdenddocbookonly "\\enddocbookonly" command. + +
\section cmddot \\dot \addindex \\dot @@ -2441,6 +2451,14 @@ class Receiver \sa section \ref cmdcode "\\code"
+\section cmdenddocbookonly \\enddocbookonly + + \addindex \\enddocbookonly + Ends a block of text that was started with a \\docbookonly command. + + \sa section \ref cmddocbookonly "\\docbookonly". + +
\section cmdenddot \\enddot \addindex \\enddot diff --git a/doc/config.doc b/doc/config.doc index 01ffcb5..15912a7 100644 --- a/doc/config.doc +++ b/doc/config.doc @@ -82,6 +82,7 @@ followed by the descriptions of the tags grouped by category. \refitem cfg_directory_graph DIRECTORY_GRAPH \refitem cfg_disable_index DISABLE_INDEX \refitem cfg_distribute_group_doc DISTRIBUTE_GROUP_DOC +\refitem cfg_docbook_output DOCBOOK_OUTPUT \refitem cfg_docset_bundle_id DOCSET_BUNDLE_ID \refitem cfg_docset_feedname DOCSET_FEEDNAME \refitem cfg_docset_publisher_id DOCSET_PUBLISHER_ID @@ -114,6 +115,7 @@ followed by the descriptions of the tags grouped by category. \refitem cfg_ext_links_in_window EXT_LINKS_IN_WINDOW \refitem cfg_extension_mapping EXTENSION_MAPPING \refitem cfg_external_groups EXTERNAL_GROUPS +\refitem cfg_external_pages EXTERNAL_PAGES \refitem cfg_external_search EXTERNAL_SEARCH \refitem cfg_external_search_id EXTERNAL_SEARCH_ID \refitem cfg_extra_packages EXTRA_PACKAGES @@ -137,6 +139,7 @@ followed by the descriptions of the tags grouped by category. \refitem cfg_generate_buglist GENERATE_BUGLIST \refitem cfg_generate_chi GENERATE_CHI \refitem cfg_generate_deprecatedlist GENERATE_DEPRECIATEDLIST +\refitem cfg_generate_docbook GENERATE_DOCBOOK \refitem cfg_generate_docset GENERATE_DOCSET \refitem cfg_generate_eclipsehelp GENERATE_ECLIPSEHELP \refitem cfg_generate_html GENERATE_HTML @@ -187,6 +190,7 @@ followed by the descriptions of the tags grouped by category. \refitem cfg_inline_grouped_classes INLINE_GROUPED_CLASSES \refitem cfg_inline_info INLINE_INFO \refitem cfg_inline_inherited_memb INLINE_INHERITED_MEMB +\refitem cfg_inline_simple_structs INLINE_SIMPLE_STRUCTS \refitem cfg_inline_sources INLINE_SOURCES \refitem cfg_input INPUT \refitem cfg_input_encoding INPUT_ENCODING @@ -197,6 +201,7 @@ followed by the descriptions of the tags grouped by category. \refitem cfg_latex_batchmode LATEX_BATCHMODE \refitem cfg_latex_bib_style LATEX_BIB_STYLE \refitem cfg_latex_cmd_name LATEX_CMD_NAME +\refitem cfg_latex_extra_files LATEX_EXTRA_FILES \refitem cfg_latex_footer LATEX_FOOTER \refitem cfg_latex_header LATEX_HEADER \refitem cfg_latex_hide_indices LATEX_HIDE_INDICES @@ -369,8 +374,8 @@ followed by the descriptions of the tags grouped by category. The default language is English, other supported languages are: Afrikaans, Arabic, Brazilian, Catalan, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, - Lithuanian, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, - Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, and Ukrainian. + Latvian, Lithuanian, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, + Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, and Ukrainian. \anchor cfg_brief_member_desc
\c BRIEF_MEMBER_DESC
@@ -650,6 +655,16 @@ unions are shown inside the group in which they are included or section (for LaTeX and RTF). Note that this feature does not work in combination with \ref cfg_separate_member_pages "SEPARATE_MEMBER_PAGES". +\anchor cfg_inline_simple_structs +
\c INLINE_SIMPLE_STRUCTS
+ \addindex INLINE_SIMPLE_STRUCTS +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 +page (for HTML and Man pages) or section (for LaTeX and RTF). + \anchor cfg_typedef_hides_struct
\c TYPEDEF_HIDES_STRUCT
\addindex TYPEDEF_HIDES_STRUCT @@ -2069,7 +2084,15 @@ EXTRA_PACKAGES = times the generated latex document. The footer should contain everything after the last chapter. If it is left blank doxygen will generate a standard footer. Notice: only use this tag if you know what you are doing! - + +\anchor cfg_latex_extra_files +
\c LATEX_EXTRA_FILES
+ \addindex LATEX_EXTRA_FILES + The \c LATEX_EXTRA_FILES tag can be used to specify one or more extra images + or other source files which should be copied to the LaTeX output directory. + Note that the files will be copied as-is; there are no commands or markers + available. + \anchor cfg_pdf_hyperlinks
\c PDF_HYPERLINKS
\addindex PDF_HYPERLINKS @@ -2254,6 +2277,24 @@ EXTRA_PACKAGES = times +\section docbook_output Docbook related options +\anchor cfg_generate_docbook +
+ +
\c GENERATE_DOCBOOK
+ \addindex GENERATE_DOCBOOK +If the \c GENERATE_DOCBOOK tag is set to \c YES Doxygen will generate Docbook files +that can be used to generate PDF. + +\anchor cfg_docbook_output +
\c DOCBOOK_OUTPUT
+ \addindex DOCBOOK_OUTPUT +The \c DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put. +If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be put in +front of it. If left blank docbook will be used as the default path. + +
+ \section autogen_output AUTOGEN_DEF related options \anchor cfg_generate_autogen_def
@@ -2418,6 +2459,13 @@ EXTRA_PACKAGES = times If the \c EXTERNAL_GROUPS tag is set to \c YES all external groups will be listed in the modules index. If set to \c NO, only the current project's groups will be listed. + +\anchor cfg_external_pages +
\c EXTERNAL_PAGES
+ \addindex EXTERNAL_PAGES + If the \c EXTERNAL_PAGES tag is set to \c YES all external pages will be listed + in the related pages index. If set to \c NO, only the current project's + pages will be listed. \anchor cfg_perl_path
\c PERL_PATH
diff --git a/doc/language.doc b/doc/language.doc index 2793d66..da5aaa6 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -28,7 +28,7 @@ are supported (sorted alphabetically): Afrikaans, Arabic, Armenian, Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto, Finnish, French, German, Greek, Hungarian, Indonesian, -Italian, Japanese (+En), Korean (+En), Lithuanian, Macedonian, +Italian, Japanese (+En), Korean (+En), Latvian, Lithuanian, Macedonian, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian, and Vietnamese.. diff --git a/doc/maintainers.txt b/doc/maintainers.txt index 1eade70..2f9651b 100644 --- a/doc/maintainers.txt +++ b/doc/maintainers.txt @@ -96,6 +96,9 @@ Kim Taedong: fly1004 at gmail dot com SooYoung Jung: jung5000 at gmail dot com Richard Kim: [unreachable] ryk at dspwiz dot com +TranslatorLatvian +Lauris: lauris at nix.lv + TranslatorLithuanian Tomas Simonaitis: [unreachable] haden at homelan dot lt Mindaugas Radzius: [unreachable] mindaugasradzius at takas dot lt diff --git a/libmd5/Makefile.in b/libmd5/Makefile.in index 5f71b11..1a6caab 100644 --- a/libmd5/Makefile.in +++ b/libmd5/Makefile.in @@ -8,9 +8,9 @@ distclean: clean $(RM) -f Makefile.libmd5 libmd5.pro Makefile tmake: - $(ENV) $(PERL) $(TMAKE) libmd5.pro >Makefile.libmd5 + $(ENV) $(PERL) "$(TMAKE)" libmd5.pro >Makefile.libmd5 Makefile.libmd5: libmd5.pro - $(ENV) $(PERL) $(TMAKE) libmd5.pro >Makefile.libmd5 + $(ENV) $(PERL) "$(TMAKE)" libmd5.pro >Makefile.libmd5 install: diff --git a/qtools/Doxyfile b/qtools/Doxyfile index 1ba80cc..fdf0741 100644 --- a/qtools/Doxyfile +++ b/qtools/Doxyfile @@ -1,4 +1,4 @@ -# Doxyfile 1.8.3 +# Doxyfile 1.8.3.1 #--------------------------------------------------------------------------- # Project related configuration options @@ -87,7 +87,7 @@ CITE_BIB_FILES = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- -QUIET = YES +QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES @@ -186,8 +186,9 @@ MATHJAX_EXTENSIONS = SEARCHENGINE = YES SERVER_BASED_SEARCH = NO EXTERNAL_SEARCH = NO -SEARCHENGINE_URL = +SEARCHENGINE_URL = SEARCHDATA_FILE = searchdata.xml +EXTERNAL_SEARCH_ID = EXTRA_SEARCH_MAPPINGS = #--------------------------------------------------------------------------- # configuration options related to the LaTeX output @@ -201,6 +202,7 @@ PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = LATEX_FOOTER = +LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES USE_PDFLATEX = YES LATEX_BATCHMODE = NO @@ -232,6 +234,11 @@ XML_SCHEMA = XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- +# configuration options related to the DOCBOOK output +#--------------------------------------------------------------------------- +GENERATE_DOCBOOK = YES +DOCBOOK_OUTPUT = docbook +#--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- GENERATE_AUTOGEN_DEF = NO @@ -261,6 +268,7 @@ TAGFILES = GENERATE_TAGFILE = ../qtools_docs/qtools.tag ALLEXTERNALS = NO EXTERNAL_GROUPS = YES +EXTERNAL_PAGES = YES PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool @@ -268,7 +276,7 @@ PERL_PATH = /usr/bin/perl CLASS_DIAGRAMS = NO MSCGEN_PATH = HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = NO +HAVE_DOT = YES DOT_NUM_THREADS = 0 DOT_FONTNAME = DOT_FONTSIZE = 10 diff --git a/qtools/Makefile.in b/qtools/Makefile.in index 78710fd..ca66cc1 100644 --- a/qtools/Makefile.in +++ b/qtools/Makefile.in @@ -17,10 +17,10 @@ all: Makefile.qtools Makefile $(MAKE) -f Makefile.qtools $@ Makefile.qtools: qtools.pro - $(ENV) $(PERL) $(TMAKE) qtools.pro >Makefile.qtools + $(ENV) $(PERL) "$(TMAKE)" qtools.pro >Makefile.qtools tmake: - $(ENV) $(PERL) $(TMAKE) qtools.pro >Makefile.qtools + $(ENV) $(PERL) "$(TMAKE)" qtools.pro >Makefile.qtools clean: Makefile.qtools $(MAKE) -f Makefile.qtools clean diff --git a/qtools/qdatetime.cpp b/qtools/qdatetime.cpp index 4edaca9..d0cc36e 100644 --- a/qtools/qdatetime.cpp +++ b/qtools/qdatetime.cpp @@ -52,7 +52,7 @@ #include #elif defined(_OS_OS2_) #include -#elif defined(_OS_UNIX_) +#elif defined(_OS_UNIX_) || defined(_OS_MAC_) #include #include #undef gettimeofday @@ -893,7 +893,7 @@ bool QTime::currentTime( QTime *ct ) t.second*1000 + t.hsecond*10; return (t.hour== 0 && t.minute == 0); -#elif defined(_OS_UNIX_) +#elif defined(_OS_UNIX_) || defined(_OS_MAC_) struct timeval tv; gettimeofday( &tv, 0 ); diff --git a/src/Makefile.in b/src/Makefile.in index ae6c436..2e78088 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -20,18 +20,18 @@ all: Makefile.libdoxygen Makefile.libdoxycfg Makefile.doxygen Makefile $(MAKE) -f Makefile.doxygen PERL=$(PERL) $@ Makefile.libdoxygen: libdoxygen.pro libdoxygen.t - $(ENV) $(PERL) $(TMAKE) libdoxygen.pro >Makefile.libdoxygen + $(ENV) $(PERL) "$(TMAKE)" libdoxygen.pro >Makefile.libdoxygen Makefile.libdoxycfg: libdoxycfg.pro libdoxycfg.t - $(ENV) $(PERL) $(TMAKE) libdoxycfg.pro >Makefile.libdoxycfg + $(ENV) $(PERL) "$(TMAKE)" libdoxycfg.pro >Makefile.libdoxycfg Makefile.doxygen: doxygen.pro - $(ENV) $(PERL) $(TMAKE) doxygen.pro >Makefile.doxygen + $(ENV) $(PERL) "$(TMAKE)" doxygen.pro >Makefile.doxygen tmake: - $(ENV) $(PERL) $(TMAKE) libdoxygen.pro >Makefile.libdoxygen - $(ENV) $(PERL) $(TMAKE) libdoxycfg.pro >Makefile.libdoxycfg - $(ENV) $(PERL) $(TMAKE) doxygen.pro >Makefile.doxygen + $(ENV) $(PERL) "$(TMAKE)" libdoxygen.pro >Makefile.libdoxygen + $(ENV) $(PERL) "$(TMAKE)" libdoxycfg.pro >Makefile.libdoxycfg + $(ENV) $(PERL) "$(TMAKE)" doxygen.pro >Makefile.doxygen # clean objects clean: Makefile.libdoxygen Makefile.libdoxycfg Makefile.doxygen diff --git a/src/classdef.cpp b/src/classdef.cpp index b285325..d9ee46d 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -277,11 +277,11 @@ ClassDefImpl::~ClassDefImpl() // constructs a new class definition ClassDef::ClassDef( - const char *defFileName,int defLine, + const char *defFileName,int defLine,int defColumn, const char *nm,CompoundType ct, const char *lref,const char *fName, bool isSymbol,bool isJavaEnum) - : Definition(defFileName,defLine,removeRedundantWhiteSpace(nm),0,0,isSymbol) + : Definition(defFileName,defLine,defColumn,removeRedundantWhiteSpace(nm),0,0,isSymbol) { visited=FALSE; setReference(lref); @@ -535,6 +535,7 @@ void ClassDef::internalInsertMember(MemberDef *md, break; case Public: addMemberToList(MemberListType_pubTypes,md,TRUE); + isSimple=QCString(md->typeString()).find(")(")==-1; break; case Private: addMemberToList(MemberListType_priTypes,md,TRUE); @@ -3491,7 +3492,7 @@ Definition *ClassDef::findInnerCompound(const char *name) //} ClassDef *ClassDef::insertTemplateInstance(const QCString &fileName, - int startLine, const QCString &templSpec,bool &freshInstance) + int startLine, int startColumn, const QCString &templSpec,bool &freshInstance) { freshInstance = FALSE; if (m_impl->templateInstances==0) @@ -3503,7 +3504,7 @@ ClassDef *ClassDef::insertTemplateInstance(const QCString &fileName, { Debug::print(Debug::Classes,0," New template instance class `%s'`%s'\n",name().data(),templSpec.data()); templateClass = new ClassDef( - fileName,startLine,localName()+templSpec,ClassDef::Class); + fileName,startLine,startColumn,localName()+templSpec,ClassDef::Class); templateClass->setTemplateMaster(this); templateClass->setOuterScope(getOuterScope()); templateClass->setHidden(isHidden()); @@ -3524,7 +3525,7 @@ ClassDef *ClassDef::getVariableInstance(const char *templSpec) if (templateClass==0) { Debug::print(Debug::Classes,0," New template variable instance class `%s'`%s'\n",qPrint(name()),qPrint(templSpec)); - templateClass = new ClassDef("",1,name()+templSpec, + templateClass = new ClassDef("",1,1,name()+templSpec, ClassDef::Class,0,0,FALSE); templateClass->addMembersToTemplateInstance( this, templSpec ); templateClass->setTemplateMaster(this); diff --git a/src/classdef.h b/src/classdef.h index 53e1c15..19bf976 100644 --- a/src/classdef.h +++ b/src/classdef.h @@ -69,6 +69,8 @@ class ClassDef : public Definition * found. * \param startLine line number where the definition of this compound * starts. + * \param startColumn column number where the definition of this compound + * starts. * \param name the name of this compound (including scope) * \param ct the kind of Compound * \param ref the tag file from which this compound is extracted @@ -82,7 +84,7 @@ class ClassDef : public Definition * I didn't add this to CompoundType to avoid having * to adapt all translators. */ - ClassDef(const char *fileName,int startLine, + ClassDef(const char *fileName,int startLine,int startColumn, const char *name,CompoundType ct, const char *ref=0,const char *fName=0, bool isSymbol=TRUE,bool isJavaEnum=FALSE); @@ -310,7 +312,7 @@ class ClassDef : public Definition void setProtection(Protection p); void setGroupDefForAllMembers(GroupDef *g,Grouping::GroupPri_t pri,const QCString &fileName,int startLine,bool hasDocs); void addInnerCompound(Definition *d); - ClassDef *insertTemplateInstance(const QCString &fileName,int startLine, + ClassDef *insertTemplateInstance(const QCString &fileName,int startLine,int startColumn, const QCString &templSpec,bool &freshInstance); void addUsedClass(ClassDef *cd,const char *accessName,Protection prot); void addUsedByClass(ClassDef *cd,const char *accessName,Protection prot); diff --git a/src/cmdmapper.cpp b/src/cmdmapper.cpp index d9ee4b8..f88f91e 100644 --- a/src/cmdmapper.cpp +++ b/src/cmdmapper.cpp @@ -129,6 +129,8 @@ CommandMap cmdMap[] = { "rtfonly", CMD_RTFONLY }, { "endrtfonly", CMD_ENDRTFONLY }, { "vhdlflow", CMD_VHDLFLOW }, + { "docbookonly", CMD_DBONLY }, + { "enddocbookonly",CMD_ENDDBONLY }, { 0, 0 }, }; diff --git a/src/cmdmapper.h b/src/cmdmapper.h index bea301e..c7b7c37 100644 --- a/src/cmdmapper.h +++ b/src/cmdmapper.h @@ -118,7 +118,9 @@ enum CommandType CMD_RTFONLY = 88, CMD_ENDRTFONLY = 89, CMD_PIPE = 90, - CMD_VHDLFLOW = 91 + CMD_VHDLFLOW = 91, + CMD_DBONLY = 92, + CMD_ENDDBONLY = 93 }; enum HtmlTagType diff --git a/src/code.l b/src/code.l index b3851b9..2269709 100644 --- a/src/code.l +++ b/src/code.l @@ -41,12 +41,12 @@ #include "filename.h" #include "namespacedef.h" -#define YY_NEVER_INTERACTIVE 1 - // Toggle for some debugging info //#define DBG_CTX(x) fprintf x #define DBG_CTX(x) do { } while(0) - + +#define YY_NEVER_INTERACTIVE 1 + #define CLASSBLOCK (int *)4 #define SCOPEBLOCK (int *)8 #define INNERBLOCK (int *)12 @@ -68,6 +68,7 @@ static const char * g_inputString; //!< the code fragment as text static int g_inputPosition; //!< read offset during parsing static int g_inputLines; //!< number of line in the code fragment static int g_yyLineNr; //!< current line number +static int g_yyColNr; //!< current column number static bool g_needsTermination; static bool g_exampleBlock; @@ -565,10 +566,11 @@ static void codifyLines(const char *text) while (!done) { sp=p; - while ((c=*p++) && c!='\n') { } + while ((c=*p++) && c!='\n') { g_yyColNr++; } if (c=='\n') { g_yyLineNr++; + g_yyColNr=1; //*(p-1)='\0'; int l = (int)(p-sp-1); char *tmp = (char*)malloc(l+1); @@ -702,7 +704,7 @@ static ClassDef *stripClassName(const char *s,Definition *d=g_currentDefinition) static MemberDef *setCallContextForVar(const QCString &name) { if (name.isEmpty()) return 0; - //fprintf(stderr,"setCallContextForVar(%s) g_classScope=%s\n",name.data(),g_classScope.data()); + DBG_CTX((stderr,"setCallContextForVar(%s) g_classScope=%s\n",name.data(),g_classScope.data())); int scopeEnd = name.findRev("::"); if (scopeEnd!=-1) // name with explicit scope @@ -741,28 +743,28 @@ static MemberDef *setCallContextForVar(const QCString &name) ClassDef *mcd = g_theVarContext.findVariable(name); if (mcd) // local variable { - //fprintf(stderr,"local variable?\n"); + DBG_CTX((stderr,"local variable?\n")); if (mcd!=VariableContext::dummyContext) { - //fprintf(stderr,"local var `%s' mcd=%s\n",name.data(),mcd->name().data()); + DBG_CTX((stderr,"local var `%s' mcd=%s\n",name.data(),mcd->name().data())); g_theCallContext.setClass(mcd); } } else { - //fprintf(stderr,"class member? scope=%s\n",g_classScope.data()); + DBG_CTX((stderr,"class member? scope=%s\n",g_classScope.data())); // look for a class member mcd = getClass(g_classScope); if (mcd) { - //fprintf(stderr,"Inside class %s\n",mcd->name().data()); + DBG_CTX((stderr,"Inside class %s\n",mcd->name().data())); MemberDef *md=mcd->getMemberByName(name); if (md) { - //fprintf(stderr,"Found member %s\n",md->name().data()); + DBG_CTX((stderr,"Found member %s\n",md->name().data())); if (g_scopeStack.top()!=CLASSBLOCK) { - //fprintf(stderr,"class member `%s' mcd=%s\n",name.data(),mcd->name().data()); + DBG_CTX((stderr,"class member `%s' mcd=%s\n",name.data(),mcd->name().data())); g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope())); } return md; @@ -828,6 +830,15 @@ static void updateCallContextForSmartPointer() } } +static const char* fileLocation() +{ + const int maxLen=4096; + static char floc[maxLen+1]; + floc[maxLen]='\0'; + snprintf(floc,maxLen,"%s:%d:%d",g_sourceFileDef?g_sourceFileDef->absFilePath().data():"[unknown]",g_yyLineNr,g_yyColNr); + return floc; +} + static void addDocCrossReference(MemberDef *src,MemberDef *dst) { static bool referencedByRelation = Config_getBool("REFERENCED_BY_RELATION"); @@ -841,32 +852,32 @@ static void addDocCrossReference(MemberDef *src,MemberDef *dst) (src->isFunction() || src->isSlot()) ) { - dst->addSourceReferencedBy(src); + dst->addSourceReferencedBy(src,fileLocation()); MemberDef *mdDef = dst->memberDefinition(); if (mdDef) { - mdDef->addSourceReferencedBy(src); + mdDef->addSourceReferencedBy(src,fileLocation()); } MemberDef *mdDecl = dst->memberDeclaration(); if (mdDecl) { - mdDecl->addSourceReferencedBy(src); + mdDecl->addSourceReferencedBy(src,fileLocation()); } } if ((referencesRelation || callGraph || src->hasCallGraph()) && (src->isFunction() || src->isSlot()) ) { - src->addSourceReferences(dst); + src->addSourceReferences(dst,fileLocation()); MemberDef *mdDef = src->memberDefinition(); if (mdDef) { - mdDef->addSourceReferences(dst); + mdDef->addSourceReferences(dst,fileLocation()); } MemberDef *mdDecl = src->memberDeclaration(); if (mdDecl) { - mdDecl->addSourceReferences(dst); + mdDecl->addSourceReferences(dst,fileLocation()); } } @@ -885,7 +896,7 @@ static bool getLinkInScope(const QCString &c, // scope FileDef *fd; NamespaceDef *nd; GroupDef *gd; - //fprintf(stderr,"getLinkInScope: trying `%s'::`%s' varOnly=%d\n",c.data(),m.data(),varOnly); + DBG_CTX((stderr,"getLinkInScope: trying `%s'::`%s' varOnly=%d\n",c.data(),m.data(),varOnly)); if (getDefs(c,m,"()",md,cd,fd,nd,gd,FALSE,g_sourceFileDef,FALSE,g_forceTagReference) && md->isLinkable() && (!varOnly || md->isVariable())) { @@ -981,20 +992,20 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName Definition *d = g_currentDefinition; //printf("d=%s g_sourceFileDef=%s\n",d?d->name().data():"",g_sourceFileDef?g_sourceFileDef->name().data():""); cd = getResolvedClass(d,g_sourceFileDef,className,&md); - //fprintf(stderr,"non-local variable name=%s context=%d cd=%s md=%s!\n", - // className.data(),g_theVarContext.count(),cd?cd->name().data():"", - // md?md->name().data():""); + DBG_CTX((stderr,"non-local variable name=%s context=%d cd=%s md=%s!\n", + className.data(),g_theVarContext.count(),cd?cd->name().data():"", + md?md->name().data():"")); if (cd==0 && md==0 && (i=className.find('<'))!=-1) { QCString bareName = className.left(i); //stripTemplateSpecifiersFromScope(className); - //fprintf(stderr,"bareName=%s\n",bareName.data()); + DBG_CTX((stderr,"bareName=%s\n",bareName.data())); if (bareName!=className) { cd=getResolvedClass(d,g_sourceFileDef,bareName,&md); // try unspecialized version } } //printf("md=%s\n",md?md->name().data():""); - //fprintf(stderr,"is found as a type %s\n",cd?cd->name().data():""); + DBG_CTX((stderr,"is found as a type %s\n",cd?cd->name().data():"")); if (cd==0 && md==0) // also see if it is variable or enum or enum value { if (getLink(g_classScope,clName,ol,clName,varOnly)) @@ -1020,11 +1031,11 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName //} } isLocal=TRUE; - //fprintf(stderr,"is a local variable cd=%p!\n",cd); + DBG_CTX((stderr,"is a local variable cd=%p!\n",cd)); } if (cd && cd->isLinkable()) // is it a linkable class { - //fprintf(stderr,"is linkable class %s\n",clName); + DBG_CTX((stderr,"is linkable class %s\n",clName)); if (g_exampleBlock) { QCString anchor; @@ -1055,7 +1066,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName } else // not a class, maybe a global member { - //fprintf(stderr,"class %s not linkable! cd=%p md=%p typeOnly=%d\n",clName,cd,md,typeOnly); + DBG_CTX((stderr,"class %s not linkable! cd=%p md=%p typeOnly=%d\n",clName,cd,md,typeOnly)); if (!isLocal && (md!=0 || (cd==0 && !typeOnly))) // not a class, see if it is a global enum/variable/typedef. { if (md==0) // not found as a typedef @@ -1064,10 +1075,10 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName //printf("setCallContextForVar(%s) md=%p g_currentDefinition=%p\n",clName,md,g_currentDefinition); if (md && g_currentDefinition) { - //fprintf(stderr,"%s accessible from %s? %d md->getOuterScope=%s\n", - // md->name().data(),g_currentDefinition->name().data(), - // isAccessibleFrom(g_currentDefinition,g_sourceFileDef,md), - // md->getOuterScope()->name().data()); + DBG_CTX((stderr,"%s accessible from %s? %d md->getOuterScope=%s\n", + md->name().data(),g_currentDefinition->name().data(), + isAccessibleFrom(g_currentDefinition,g_sourceFileDef,md), + md->getOuterScope()->name().data())); } if (md && g_currentDefinition && @@ -1078,7 +1089,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName } if (md && (!varOnly || md->isVariable())) { - //fprintf(stderr,"is a global md=%p g_currentDefinition=%s linkable=%d\n",md,g_currentDefinition?g_currentDefinition->name().data():"",md->isLinkable()); + DBG_CTX((stderr,"is a global md=%p g_currentDefinition=%s linkable=%d\n",md,g_currentDefinition?g_currentDefinition->name().data():"",md->isLinkable())); if (md->isLinkable()) { QCString text; @@ -1112,7 +1123,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName } // nothing found, just write out the word - //fprintf(stderr,"not found!\n"); + DBG_CTX((stderr,"not found!\n")); ol.linkableSymbol(g_yyLineNr,clName,0, g_currentMemberDef?g_currentMemberDef:g_currentDefinition); codifyLines(clName); @@ -1143,7 +1154,7 @@ static bool generateClassMemberLink(CodeOutputInterface &ol,MemberDef *xmd,const } ClassDef *typeClass = stripClassName(removeAnonymousScopes(xmd->typeString()),xmd->getOuterScope()); - //fprintf(stderr,"%s -> typeName=%p\n",xmd->typeString(),typeClass); + DBG_CTX((stderr,"%s -> typeName=%p\n",xmd->typeString(),typeClass)); g_theCallContext.setClass(typeClass); Definition *xd = xmd->getOuterScope()==Doxygen::globalScope ? @@ -1315,7 +1326,7 @@ static void generateFunctionLink(CodeOutputInterface &ol,const char *funcName) QCString funcWithScope=locFunc; QCString funcWithFullScope=locFunc; QCString fullScope=locScope; - //fprintf(stdout,"*** locScope=%s locFunc=%s\n",locScope.data(),locFunc.data()); + DBG_CTX((stdout,"*** locScope=%s locFunc=%s\n",locScope.data(),locFunc.data())); int len=2; int i=locFunc.findRev("::"); if (g_currentMemberDef && g_currentMemberDef->getClassDef() && @@ -2099,7 +2110,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" g_code->codify(yytext); - //fprintf(stderr,"g_bodyCurlyCount=%d\n",g_bodyCurlyCount); + DBG_CTX((stderr,"g_bodyCurlyCount=%d\n",g_bodyCurlyCount)); if (--g_bodyCurlyCount<=0) { g_insideBody=FALSE; @@ -2200,7 +2211,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" BEGIN( Bases ); } ("sealed"|"abstract")/{BN}*(":"|"{") { - //fprintf(stderr,"***** C++/CLI modifier %s on g_curClassName=%s\n",yytext,g_curClassName.data()); + DBG_CTX((stderr,"***** C++/CLI modifier %s on g_curClassName=%s\n",yytext,g_curClassName.data())); startFontClass("keyword"); codifyLines(yytext); endFontClass(); @@ -2241,11 +2252,11 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" DBG_CTX((stderr,"** scope stack push CLASSBLOCK\n")); g_scopeStack.push(CLASSBLOCK); pushScope(g_curClassName); - //fprintf(stderr,"***** g_curClassName=%s\n",g_curClassName.data()); + DBG_CTX((stderr,"***** g_curClassName=%s\n",g_curClassName.data())); if (getResolvedClass(g_currentDefinition,g_sourceFileDef,g_curClassName)==0) { - //fprintf(stderr,"Adding new class %s\n",g_curClassName.data()); - ClassDef *ncd=new ClassDef("",1, + DBG_CTX((stderr,"Adding new class %s\n",g_curClassName.data())); + ClassDef *ncd=new ClassDef("",1,1, g_curClassName,ClassDef::Class,0,0,FALSE); g_codeClassSDict->append(g_curClassName,ncd); // insert base classes. @@ -2279,7 +2290,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" endFontClass(); } {SEP}?({ID}{SEP})*{ID} { - //fprintf(stderr,"%s:addBase(%s)\n",g_curClassName.data(),yytext); + DBG_CTX((stderr,"%s:addBase(%s)\n",g_curClassName.data(),yytext)); g_curClassBases.inSort(yytext); generateClassOrGlobalLink(*g_code,yytext); } @@ -2700,7 +2711,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" {SCOPENAME}/{B}* { if (g_theCallContext.getClass()) { - //fprintf(stderr,"g_theCallContext.getClass()=%p\n",g_theCallContext.getClass()); + DBG_CTX((stderr,"g_theCallContext.getClass()=%p\n",g_theCallContext.getClass())); if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),yytext)) { g_code->linkableSymbol(g_yyLineNr,yytext,0, @@ -2712,7 +2723,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" } else { - //fprintf(stderr,"no class context!\n"); + DBG_CTX((stderr,"no class context!\n")); g_code->codify(yytext); addToSearchIndex(yytext); g_name.resize(0); @@ -2991,7 +3002,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" if (*yytext==';') g_searchingForBody=FALSE; if (!g_type.isEmpty()) { - //fprintf(stderr,"add variable g_type=%s g_name=%s)\n",g_type.data(),g_name.data()); + DBG_CTX((stderr,"add variable g_type=%s g_name=%s)\n",g_type.data(),g_name.data())); g_theVarContext.addVariable(g_type,g_name); } g_parmType.resize(0);g_parmName.resize(0); @@ -3025,7 +3036,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" //g_theCallContext.popScope(); g_parmType.resize(0);g_parmName.resize(0); int index = g_name.findRev("::"); - //fprintf(stderr,"g_name=%s\n",g_name.data()); + DBG_CTX((stderr,"g_name=%s\n",g_name.data())); if (index!=-1) { QCString scope = g_name.left(index); @@ -3470,9 +3481,11 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" g_theCallContext.popScope(); } <*>\n { + g_yyColNr++; codifyLines(yytext); } <*>. { + g_yyColNr++; g_code->codify(yytext); } /* diff --git a/src/commentcnv.l b/src/commentcnv.l index 96a34d8..46b8938 100644 --- a/src/commentcnv.l +++ b/src/commentcnv.l @@ -443,7 +443,7 @@ void replaceComment(int offset); g_lastCommentContext = YY_START; BEGIN(Verbatim); } -[\\@]("verbatim"|"latexonly"|"htmlonly"|"xmlonly"|"rtfonly"|"manonly")/[^a-z_A-Z0-9] { /* start of a verbatim block */ +[\\@]("verbatim"|"latexonly"|"htmlonly"|"xmlonly"|"docbookonly"|"rtfonly"|"manonly")/[^a-z_A-Z0-9] { /* start of a verbatim block */ copyToOutput(yytext,(int)yyleng); g_blockName=&yytext[1]; g_lastCommentContext = YY_START; @@ -452,7 +452,7 @@ void replaceComment(int offset); . { /* any ather character */ copyToOutput(yytext,(int)yyleng); } -[\\@]("endverbatim"|"endlatexonly"|"endhtmlonly"|"endxmlonly"|"endrtfonly"|"endmanonly"|"f$"|"f]"|"f}") { /* end of verbatim block */ +[\\@]("endverbatim"|"endlatexonly"|"endhtmlonly"|"endxmlonly"|"docbookonly"|"endrtfonly"|"endmanonly"|"f$"|"f]"|"f}") { /* end of verbatim block */ copyToOutput(yytext,(int)yyleng); if (yytext[1]=='f') // end of formula { diff --git a/src/commentscan.l b/src/commentscan.l index 249fec8..b851d81 100644 --- a/src/commentscan.l +++ b/src/commentscan.l @@ -180,6 +180,7 @@ static DocCmdMap docCmdMap[] = { "latexonly", &handleFormatBlock, FALSE }, { "htmlonly", &handleFormatBlock, FALSE }, { "xmlonly", &handleFormatBlock, FALSE }, + { "docbookonly", &handleFormatBlock, FALSE }, { "rtfonly", &handleFormatBlock, FALSE }, { "manonly", &handleFormatBlock, FALSE }, { "dot", &handleFormatBlock, TRUE }, @@ -314,6 +315,7 @@ class DocCmdMapper DocCmdMapper *DocCmdMapper::s_instance=0; +bool inInternalDocs = FALSE; #define YY_NEVER_INTERACTIVE 1 @@ -1018,9 +1020,11 @@ RCSTAG "$"{ID}":"[^\n$]+"$" BEGIN(HtmlComment); } {B}*{CMD}"endinternal"{B}* { - warn(yyFileName,yyLineNr, + if (!inInternalDocs) + warn(yyFileName,yyLineNr, "warning: found \\endinternal without matching \\internal" ); + inInternalDocs = FALSE; } {B}*{CMD}[a-z_A-Z]+{B}* { // potentially interesting command // the {B}* in the front was added for bug620924 @@ -1693,7 +1697,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" /* ----- handle arguments of the preformatted block commands ------- */ -{CMD}("endverbatim"|"endlatexonly"|"endhtmlonly"|"endxmlonly"|"endrtfonly"|"endmanonly"|"enddot"|"endcode"|"endmsc"|"endvhdlflow")/{NW} { // possible ends +{CMD}("endverbatim"|"endlatexonly"|"endhtmlonly"|"endxmlonly"|"enddocbookonly"|"endrtfonly"|"endmanonly"|"enddot"|"endcode"|"endmsc"|"endvhdlflow")/{NW} { // possible ends addOutput(yytext); if (&yytext[4]==blockName) // found end of the block { @@ -2569,6 +2573,7 @@ static bool handleInternal(const QCString &) { // re-enabled for bug640828 addOutput("\\internal "); + inInternalDocs = TRUE; } return FALSE; } diff --git a/src/compound.xsd b/src/compound.xsd index d8e2589..fd24fc9 100644 --- a/src/compound.xsd +++ b/src/compound.xsd @@ -279,6 +279,7 @@ + diff --git a/src/compound_xsd.h b/src/compound_xsd.h index 7d0a9d4..7a726ae 100644 --- a/src/compound_xsd.h +++ b/src/compound_xsd.h @@ -279,6 +279,7 @@ " \n" " \n" " \n" +" \n" " \n" " \n" " \n" diff --git a/src/config.xml b/src/config.xml index 26496c9..d7c2f18 100644 --- a/src/config.xml +++ b/src/config.xml @@ -49,7 +49,7 @@ The default language is English, other supported languages are: Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English -messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. '> @@ -76,6 +76,7 @@ Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + @@ -312,11 +313,12 @@ section (for LaTeX and RTF). ' defval='0'/>