summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--INSTALL4
-rw-r--r--Makefile.in2
-rw-r--r--Makefile.win_make.in3
-rw-r--r--Makefile.win_nmake.in3
-rw-r--r--README4
-rw-r--r--addon/doxmlparser/src/basehandler.h2
-rw-r--r--addon/doxmlparser/src/baseiterator.h2
-rw-r--r--addon/doxmlparser/src/compoundhandler.cpp2
-rw-r--r--addon/doxmlparser/src/compoundhandler.h2
-rw-r--r--addon/doxmlparser/src/dochandler.cpp2
-rw-r--r--addon/doxmlparser/src/dochandler.h4
-rw-r--r--addon/doxmlparser/src/graphhandler.h4
-rw-r--r--addon/doxmlparser/src/linkedtexthandler.cpp2
-rw-r--r--addon/doxmlparser/src/linkedtexthandler.h2
-rw-r--r--addon/doxmlparser/src/loamhandler.h4
-rw-r--r--addon/doxmlparser/src/mainhandler.cpp2
-rw-r--r--addon/doxmlparser/src/mainhandler.h4
-rw-r--r--addon/doxmlparser/src/memberhandler.cpp2
-rw-r--r--addon/doxmlparser/src/memberhandler.h4
-rw-r--r--addon/doxmlparser/src/paramhandler.cpp2
-rw-r--r--addon/doxmlparser/src/paramhandler.h4
-rw-r--r--addon/doxmlparser/src/sectionhandler.cpp2
-rw-r--r--addon/doxmlparser/src/sectionhandler.h4
-rw-r--r--addon/doxyapp/doxyapp.cpp2
-rw-r--r--addon/doxywizard/Makefile.in2
-rw-r--r--addon/doxywizard/config.l2
-rw-r--r--addon/doxywizard/doxywizard.cpp2
-rw-r--r--addon/doxywizard/doxywizard.icobin84070 -> 84071 bytes
-rw-r--r--addon/doxywizard/inputbool.cpp2
-rw-r--r--addon/doxywizard/inputbool.h2
-rw-r--r--addon/doxywizard/inputint.cpp2
-rw-r--r--addon/doxywizard/inputint.h2
-rw-r--r--addon/doxywizard/inputstring.cpp2
-rw-r--r--addon/doxywizard/inputstring.h2
-rw-r--r--addon/doxywizard/inputstrlist.cpp2
-rw-r--r--addon/doxywizard/inputstrlist.h2
-rw-r--r--addon/doxywizard/version.h2
-rw-r--r--addon/doxywizard/wizard.h2
-rwxr-xr-xconfigure7
-rw-r--r--doc/Makefile.in2
-rw-r--r--doc/Makefile.latex2
-rw-r--r--doc/Makefile.win_make.in2
-rw-r--r--doc/Makefile.win_nmake.in2
-rw-r--r--doc/arch.doc2
-rw-r--r--doc/autolink.doc6
-rw-r--r--doc/commands.doc52
-rw-r--r--doc/config.doc33
-rw-r--r--doc/custcmd.doc4
-rw-r--r--doc/customize.doc14
-rw-r--r--doc/diagrams.doc2
-rw-r--r--doc/docblocks.doc7
-rw-r--r--doc/doxygen.12
-rw-r--r--doc/doxygen_manual.css54
-rw-r--r--doc/doxygen_manual.tex3
-rw-r--r--doc/doxygen_usage.doc2
-rw-r--r--doc/doxywizard_usage.doc4
-rw-r--r--doc/external.doc2
-rw-r--r--doc/faq.doc2
-rw-r--r--doc/features.doc4
-rw-r--r--doc/formulas.doc2
-rw-r--r--doc/grouping.doc2
-rw-r--r--doc/htmlcmds.doc4
-rw-r--r--doc/index.doc4
-rw-r--r--doc/install.doc22
-rw-r--r--doc/language.doc2
-rw-r--r--doc/markdown.doc76
-rw-r--r--doc/output.doc2
-rw-r--r--doc/preprocessing.doc4
-rw-r--r--doc/searching.doc4
-rw-r--r--doc/starting.doc6
-rw-r--r--doc/translator_report.txt3
-rw-r--r--doc/trouble.doc4
-rw-r--r--doc/xmlcmds.doc2
-rw-r--r--examples/page.doc1
-rw-r--r--qtools/Doxyfile2
-rw-r--r--src/Makefile.in2
-rw-r--r--src/arguments.cpp17
-rw-r--r--src/arguments.h99
-rw-r--r--src/bufstr.h2
-rw-r--r--src/cite.cpp5
-rw-r--r--src/classdef.cpp54
-rw-r--r--src/classdef.h2
-rw-r--r--src/classlist.cpp2
-rw-r--r--src/classlist.h2
-rw-r--r--src/cmdmapper.cpp2
-rw-r--r--src/cmdmapper.h2
-rw-r--r--src/code.h2
-rw-r--r--src/code.l44
-rw-r--r--src/commentcnv.h2
-rw-r--r--src/commentcnv.l2
-rw-r--r--src/commentscan.h2
-rw-r--r--src/commentscan.l20
-rw-r--r--src/config.h2
-rw-r--r--src/config.l2
-rw-r--r--src/config.xml24
-rwxr-xr-xsrc/configgen.py2
-rw-r--r--src/configoptions.cpp31
-rw-r--r--src/configoptions.h2
-rw-r--r--src/constexp.h2
-rw-r--r--src/constexp.l2
-rw-r--r--src/constexp.y2
-rw-r--r--src/cppvalue.cpp2
-rw-r--r--src/cppvalue.h2
-rw-r--r--src/dbusxmlscanner.cpp1
-rw-r--r--src/debug.cpp3
-rw-r--r--src/debug.h5
-rw-r--r--src/declinfo.h2
-rw-r--r--src/declinfo.l2
-rw-r--r--src/defargs.h2
-rw-r--r--src/defargs.l3
-rw-r--r--src/defgen.cpp3
-rw-r--r--src/defgen.h2
-rw-r--r--src/define.cpp2
-rw-r--r--src/define.h2
-rw-r--r--src/definition.cpp67
-rw-r--r--src/definition.h3
-rw-r--r--src/diagram.cpp2
-rw-r--r--src/diagram.h4
-rw-r--r--src/dirdef.cpp87
-rw-r--r--src/dirdef.h4
-rw-r--r--src/docparser.cpp3
-rw-r--r--src/docparser.h2
-rw-r--r--src/docsets.cpp2
-rw-r--r--src/docsets.h2
-rw-r--r--src/doctokenizer.h2
-rw-r--r--src/doctokenizer.l7
-rw-r--r--src/docvisitor.h2
-rw-r--r--src/dot.cpp12
-rw-r--r--src/dot.h2
-rw-r--r--src/doxygen.cpp24
-rw-r--r--src/doxygen.css57
-rw-r--r--src/doxygen.h2
-rw-r--r--src/doxygen.pro.in2
-rw-r--r--src/doxygen_css.h57
-rw-r--r--src/eclipsehelp.cpp2
-rw-r--r--src/eclipsehelp.h2
-rw-r--r--src/entry.cpp20
-rw-r--r--src/entry.h132
-rw-r--r--src/example.h2
-rw-r--r--src/filedef.cpp3
-rw-r--r--src/filedef.h2
-rw-r--r--src/filename.cpp2
-rw-r--r--src/filename.h2
-rw-r--r--src/filestorage.h2
-rw-r--r--src/footer.html2
-rw-r--r--src/footer_html.h2
-rw-r--r--src/formula.cpp2
-rw-r--r--src/formula.h2
-rw-r--r--src/fortrancode.h2
-rw-r--r--src/fortranscanner.h2
-rw-r--r--src/fortranscanner.l9
-rw-r--r--src/ftvhelp.cpp2
-rw-r--r--src/ftvhelp.h2
-rw-r--r--src/groupdef.cpp4
-rw-r--r--src/groupdef.h3
-rw-r--r--src/htags.cpp2
-rw-r--r--src/htags.h2
-rw-r--r--src/htmlattrib.h2
-rw-r--r--src/htmldocvisitor.cpp6
-rw-r--r--src/htmldocvisitor.h2
-rw-r--r--src/htmlgen.cpp39
-rw-r--r--src/htmlgen.h2
-rw-r--r--src/htmlhelp.cpp2
-rw-r--r--src/htmlhelp.h2
-rw-r--r--src/image.cpp2
-rw-r--r--src/image.h2
-rw-r--r--src/index.cpp275
-rw-r--r--src/index.h2
-rw-r--r--src/jquery_fx.js2
-rw-r--r--src/language.cpp2
-rw-r--r--src/language.h2
-rw-r--r--src/latexdocvisitor.cpp6
-rw-r--r--src/latexdocvisitor.h8
-rw-r--r--src/latexgen.cpp96
-rw-r--r--src/latexgen.h2
-rw-r--r--src/layout.cpp2
-rw-r--r--src/layout.h2
-rw-r--r--src/layout_default.h6
-rw-r--r--src/layout_default.xml6
-rw-r--r--src/libdoxycfg.pro.in2
-rw-r--r--src/libdoxycfg.t.in (renamed from src/libdoxycfg.t)6
-rw-r--r--src/libdoxygen.pro.in9
-rw-r--r--src/libdoxygen.t.in (renamed from src/libdoxygen.t)6
-rw-r--r--src/lockingptr.h2
-rw-r--r--src/logos.cpp2
-rw-r--r--src/logos.h2
-rw-r--r--src/main.cpp2
-rw-r--r--src/mandocvisitor.cpp2
-rw-r--r--src/mandocvisitor.h2
-rw-r--r--src/mangen.cpp4
-rw-r--r--src/mangen.h2
-rw-r--r--src/markdown.cpp109
-rw-r--r--src/markdown.h2
-rw-r--r--src/marshal.cpp1
-rw-r--r--src/marshal.h2
-rw-r--r--src/memberdef.cpp25
-rw-r--r--src/memberdef.h4
-rw-r--r--src/membergroup.cpp2
-rw-r--r--src/membergroup.h2
-rw-r--r--src/memberlist.cpp2
-rw-r--r--src/memberlist.h2
-rw-r--r--src/membername.cpp2
-rw-r--r--src/membername.h2
-rw-r--r--src/message.cpp2
-rw-r--r--src/message.h2
-rw-r--r--src/msc.cpp2
-rw-r--r--src/msc.h2
-rw-r--r--src/namespacedef.cpp2
-rw-r--r--src/namespacedef.h2
-rw-r--r--src/navtree.js4
-rw-r--r--src/navtree_js.h4
-rw-r--r--src/objcache.cpp2
-rw-r--r--src/objcache.h2
-rw-r--r--src/outputgen.cpp2
-rw-r--r--src/outputgen.h2
-rw-r--r--src/outputlist.cpp2
-rw-r--r--src/outputlist.h2
-rw-r--r--src/pagedef.cpp11
-rw-r--r--src/pagedef.h13
-rw-r--r--src/parserintf.h2
-rw-r--r--src/perlmodgen.cpp3
-rw-r--r--src/perlmodgen.h2
-rw-r--r--src/pre.h2
-rw-r--r--src/pre.l42
-rw-r--r--src/printdocvisitor.h2
-rw-r--r--src/pycode.h2
-rw-r--r--src/pycode.l2
-rw-r--r--src/pyscanner.h2
-rw-r--r--src/pyscanner.l3
-rw-r--r--src/qtbc.h2
-rw-r--r--src/reflist.cpp2
-rw-r--r--src/reflist.h2
-rw-r--r--src/rtfdocvisitor.cpp31
-rw-r--r--src/rtfdocvisitor.h2
-rw-r--r--src/rtfgen.cpp2
-rw-r--r--src/rtfgen.h2
-rw-r--r--src/rtfstyle.cpp2
-rw-r--r--src/rtfstyle.h2
-rw-r--r--src/scanner.h2
-rw-r--r--src/scanner.l19
-rw-r--r--src/searchindex.cpp2
-rw-r--r--src/searchindex.h2
-rw-r--r--src/section.h2
-rw-r--r--src/sortdict.h2
-rw-r--r--src/store.cpp2
-rw-r--r--src/store.h2
-rw-r--r--src/svgpan.js38
-rw-r--r--src/svgpan_js.h38
-rw-r--r--src/tagreader.cpp3
-rw-r--r--src/tagreader.h2
-rw-r--r--src/tclscanner.h2
-rw-r--r--src/tclscanner.l1
-rw-r--r--src/textdocvisitor.cpp2
-rw-r--r--src/textdocvisitor.h2
-rw-r--r--src/translator.h2
-rw-r--r--src/translator_am.h2
-rw-r--r--src/translator_ar.h2
-rw-r--r--src/translator_br.h2
-rw-r--r--src/translator_ca.h2
-rw-r--r--src/translator_cn.h2
-rw-r--r--src/translator_cz.h2
-rw-r--r--src/translator_de.h2
-rw-r--r--src/translator_dk.h2
-rw-r--r--src/translator_en.h2
-rw-r--r--src/translator_eo.h2
-rw-r--r--src/translator_es.h2
-rw-r--r--src/translator_fa.h2
-rw-r--r--src/translator_fi.h2
-rw-r--r--src/translator_fr.h2
-rw-r--r--src/translator_gr.h2
-rw-r--r--src/translator_hr.h2
-rw-r--r--src/translator_hu.h2
-rw-r--r--src/translator_id.h2
-rw-r--r--src/translator_it.h2
-rw-r--r--src/translator_je.h2
-rw-r--r--src/translator_jp.h2
-rw-r--r--src/translator_ke.h2
-rw-r--r--src/translator_kr.h2
-rw-r--r--src/translator_lt.h2
-rw-r--r--src/translator_mk.h2
-rw-r--r--src/translator_nl.h2
-rw-r--r--src/translator_no.h2
-rw-r--r--src/translator_pl.h2
-rw-r--r--src/translator_pt.h2
-rw-r--r--src/translator_ro.h2
-rw-r--r--src/translator_ru.h2
-rw-r--r--src/translator_sc.h2
-rw-r--r--src/translator_si.h2
-rw-r--r--src/translator_sk.h2
-rw-r--r--src/translator_sr.h2
-rw-r--r--src/translator_sv.h2
-rw-r--r--src/translator_tr.h2
-rw-r--r--src/translator_tw.h2
-rw-r--r--src/translator_ua.h2
-rw-r--r--src/translator_vi.h2
-rw-r--r--src/translator_za.h2
-rw-r--r--src/translatordecoder.h2
-rw-r--r--src/types.h92
-rw-r--r--src/util.cpp78
-rw-r--r--src/util.h26
-rw-r--r--src/version.h2
-rw-r--r--src/vhdlcode.l3
-rw-r--r--src/vhdldocgen.cpp3
-rw-r--r--src/vhdldocgen.h3
-rw-r--r--src/vhdlparser.y1
-rw-r--r--src/vhdlscanner.h2
-rw-r--r--src/xmldocvisitor.cpp2
-rw-r--r--src/xmldocvisitor.h2
-rw-r--r--src/xmlgen.cpp3
-rw-r--r--src/xmlgen.h2
-rw-r--r--winbuild/Doxygen.vcproj12
311 files changed, 1710 insertions, 910 deletions
diff --git a/INSTALL b/INSTALL
index 04476e8..e326ad3 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
-DOXYGEN Version 1.7.6.1-20120122
+DOXYGEN Version 1.7.6.1-20120220
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
-Dimitri van Heesch (22 January 2012)
+Dimitri van Heesch (20 February 2012)
diff --git a/Makefile.in b/Makefile.in
index 0de53ad..62e4ff9 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -31,7 +31,7 @@ distclean: clean
-rm -f latex
-rm -f objects/*.o
-rm -f src/Makefile.doxygen src/Makefile.libdoxygen
- -rm -f src/Makefile.libdoxycfg
+ -rm -f src/Makefile.libdoxycfg src/libdoxycfg.t src/libdoxygen.t
-rm -f libmd5/Makefile.libmd5
-rm -f Makefile qtools/Makefile src/Makefile examples/Makefile doc/Makefile
-rm -f .makeconfig .tmakeconfig
diff --git a/Makefile.win_make.in b/Makefile.win_make.in
index 9b51ada..175dc6f 100644
--- a/Makefile.win_make.in
+++ b/Makefile.win_make.in
@@ -13,7 +13,8 @@ clean:
distclean: clean
-del src\Makefile.libdoxygen \
src\Makefile.doxygen \
- src\Makefile.libdoxycfg
+ src\Makefile.libdoxycfg \
+ src\libdoxycfg.t src\libdoxygen.t
-del Makefile src\Makefile examples\Makefile doc\Makefile
-del src\libdoxygen.pro src\doxygen.pro src\libdoxycfg.pro
-del src\version.cpp
diff --git a/Makefile.win_nmake.in b/Makefile.win_nmake.in
index 0ef6baa..723d4fd 100644
--- a/Makefile.win_nmake.in
+++ b/Makefile.win_nmake.in
@@ -25,7 +25,8 @@ clean: FORCE
distclean: clean
-del src\Makefile.libdoxygen \
src\Makefile.doxygen \
- src\Makefile.libdoxycfg
+ src\Makefile.libdoxycfg \
+ src\libdoxycfg.t src\libdoxygen.t
-del Makefile src\Makefile examples\Makefile doc\Makefile
-del src\libdoxygen.pro src\doxygen.pro src\libdoxycfg.pro
-del src\version.cpp
diff --git a/README b/README
index 293c2c9..d78156c 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-DOXYGEN Version 1.7.6.1_20120122
+DOXYGEN Version 1.7.6.1_20120220
Please read INSTALL for compilation instructions.
@@ -26,4 +26,4 @@ forum.
Enjoy,
-Dimitri van Heesch (dimitri@stack.nl) (22 January 2012)
+Dimitri van Heesch (dimitri@stack.nl) (20 February 2012)
diff --git a/addon/doxmlparser/src/basehandler.h b/addon/doxmlparser/src/basehandler.h
index cc275a6..b1bfe87 100644
--- a/addon/doxmlparser/src/basehandler.h
+++ b/addon/doxmlparser/src/basehandler.h
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 68dbee4..a1d6f87 100644
--- a/addon/doxmlparser/src/baseiterator.h
+++ b/addon/doxmlparser/src/baseiterator.h
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 3246e33..42acc0e 100644
--- a/addon/doxmlparser/src/compoundhandler.cpp
+++ b/addon/doxmlparser/src/compoundhandler.cpp
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 d661dc1..9c081ed 100644
--- a/addon/doxmlparser/src/compoundhandler.h
+++ b/addon/doxmlparser/src/compoundhandler.h
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 ce7cb3f..f277094 100644
--- a/addon/doxmlparser/src/dochandler.cpp
+++ b/addon/doxmlparser/src/dochandler.cpp
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 77fa379..829d977 100644
--- a/addon/doxmlparser/src/dochandler.h
+++ b/addon/doxmlparser/src/dochandler.h
@@ -1,9 +1,9 @@
/******************************************************************************
*
- * $Id:$
+ * $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 f7105ec..acce157 100644
--- a/addon/doxmlparser/src/graphhandler.h
+++ b/addon/doxmlparser/src/graphhandler.h
@@ -1,9 +1,9 @@
/******************************************************************************
*
- * $Id:$
+ * $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 96d1d49..a921b6c 100644
--- a/addon/doxmlparser/src/linkedtexthandler.cpp
+++ b/addon/doxmlparser/src/linkedtexthandler.cpp
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 464b39d..83cc4d8 100644
--- a/addon/doxmlparser/src/linkedtexthandler.h
+++ b/addon/doxmlparser/src/linkedtexthandler.h
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 ce2eda2..b7c6397 100644
--- a/addon/doxmlparser/src/loamhandler.h
+++ b/addon/doxmlparser/src/loamhandler.h
@@ -1,9 +1,9 @@
/******************************************************************************
*
- * $Id:$
+ * $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 81d7d2f..bc211b8 100644
--- a/addon/doxmlparser/src/mainhandler.cpp
+++ b/addon/doxmlparser/src/mainhandler.cpp
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 9ac8b79..7b9e7fc 100644
--- a/addon/doxmlparser/src/mainhandler.h
+++ b/addon/doxmlparser/src/mainhandler.h
@@ -1,9 +1,9 @@
/******************************************************************************
*
- * $Id:$
+ * $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 9ccc014..1b87a2c 100644
--- a/addon/doxmlparser/src/memberhandler.cpp
+++ b/addon/doxmlparser/src/memberhandler.cpp
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 9b409b6..f80a4eb 100644
--- a/addon/doxmlparser/src/memberhandler.h
+++ b/addon/doxmlparser/src/memberhandler.h
@@ -1,9 +1,9 @@
/******************************************************************************
*
- * $Id:$
+ * $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 733dde4..124fde0 100644
--- a/addon/doxmlparser/src/paramhandler.cpp
+++ b/addon/doxmlparser/src/paramhandler.cpp
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 d840679..64b89a2 100644
--- a/addon/doxmlparser/src/paramhandler.h
+++ b/addon/doxmlparser/src/paramhandler.h
@@ -1,9 +1,9 @@
/******************************************************************************
*
- * $Id:$
+ * $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 403cb6f..f9bf147 100644
--- a/addon/doxmlparser/src/sectionhandler.cpp
+++ b/addon/doxmlparser/src/sectionhandler.cpp
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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 c462b91..86aad3b 100644
--- a/addon/doxmlparser/src/sectionhandler.h
+++ b/addon/doxmlparser/src/sectionhandler.h
@@ -1,9 +1,9 @@
/******************************************************************************
*
- * $Id:$
+ * $Id$
*
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doxyapp.cpp b/addon/doxyapp/doxyapp.cpp
index c6b7ed4..ffee3c7 100644
--- a/addon/doxyapp/doxyapp.cpp
+++ b/addon/doxyapp/doxyapp.cpp
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2006 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doxywizard/Makefile.in b/addon/doxywizard/Makefile.in
index 3ae02c8..5b0876e 100644
--- a/addon/doxywizard/Makefile.in
+++ b/addon/doxywizard/Makefile.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2011 by Dimitri van Heesch.
+# Copyright (C) 1997-2012 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/doxywizard/config.l b/addon/doxywizard/config.l
index f8782eb..fa49eba 100644
--- a/addon/doxywizard/config.l
+++ b/addon/doxywizard/config.l
@@ -2,7 +2,7 @@
*
* $Id: config_templ.l,v 1.8 2001/01/01 10:15:16 root Exp $
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doxywizard/doxywizard.cpp b/addon/doxywizard/doxywizard.cpp
index 97979a9..fe8c961 100644
--- a/addon/doxywizard/doxywizard.cpp
+++ b/addon/doxywizard/doxywizard.cpp
@@ -191,7 +191,7 @@ void MainWindow::about()
t << QString::fromAscii("<qt><center>A tool to configure and run doxygen version ")+
QString::fromAscii(versionString)+
QString::fromAscii(" on your source files.</center><p><br>"
- "<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-2011</center><p>"
+ "<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-2012</center><p>"
"</qt>");
QMessageBox::about(this,tr("Doxygen GUI"),msg);
}
diff --git a/addon/doxywizard/doxywizard.ico b/addon/doxywizard/doxywizard.ico
index d91f219..10d1755 100644
--- a/addon/doxywizard/doxywizard.ico
+++ b/addon/doxywizard/doxywizard.ico
Binary files differ
diff --git a/addon/doxywizard/inputbool.cpp b/addon/doxywizard/inputbool.cpp
index efbb5ee..cd83f88 100644
--- a/addon/doxywizard/inputbool.cpp
+++ b/addon/doxywizard/inputbool.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doxywizard/inputbool.h b/addon/doxywizard/inputbool.h
index a19de76..63d16e6 100644
--- a/addon/doxywizard/inputbool.h
+++ b/addon/doxywizard/inputbool.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doxywizard/inputint.cpp b/addon/doxywizard/inputint.cpp
index 48544bb..08df309 100644
--- a/addon/doxywizard/inputint.cpp
+++ b/addon/doxywizard/inputint.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doxywizard/inputint.h b/addon/doxywizard/inputint.h
index 31fcfbd..9ac506d 100644
--- a/addon/doxywizard/inputint.h
+++ b/addon/doxywizard/inputint.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doxywizard/inputstring.cpp b/addon/doxywizard/inputstring.cpp
index 538efce..c0b92b3 100644
--- a/addon/doxywizard/inputstring.cpp
+++ b/addon/doxywizard/inputstring.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doxywizard/inputstring.h b/addon/doxywizard/inputstring.h
index 940c9eb..b957bfa 100644
--- a/addon/doxywizard/inputstring.h
+++ b/addon/doxywizard/inputstring.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doxywizard/inputstrlist.cpp b/addon/doxywizard/inputstrlist.cpp
index 3be7dd5..bca92e2 100644
--- a/addon/doxywizard/inputstrlist.cpp
+++ b/addon/doxywizard/inputstrlist.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doxywizard/inputstrlist.h b/addon/doxywizard/inputstrlist.h
index 9dc43d7..0201aee 100644
--- a/addon/doxywizard/inputstrlist.h
+++ b/addon/doxywizard/inputstrlist.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doxywizard/version.h b/addon/doxywizard/version.h
index 116ecdd..4752520 100644
--- a/addon/doxywizard/version.h
+++ b/addon/doxywizard/version.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doxywizard/wizard.h b/addon/doxywizard/wizard.h
index bdebd2b..99e1db5 100644
--- a/addon/doxywizard/wizard.h
+++ b/addon/doxywizard/wizard.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/configure b/configure
index 96bcbb9..279d262 100755
--- a/configure
+++ b/configure
@@ -2,7 +2,7 @@
#
# $Id$
#
-# Copyright (C) 1997-2011 by Dimitri van Heesch.
+# Copyright (C) 1997-2012 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=7
doxygen_version_revision=6.1
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
-doxygen_version_mmn=20120122
+doxygen_version_mmn=20120220
bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
@@ -626,6 +626,9 @@ EOF
echo " Created $DST from $SRC..."
done
+cat src/libdoxycfg.t.in | sed -e "s|%%FLEX%%|$f_flex|g" -e "s|%%BISON%%|$f_bison|g" > src/libdoxycfg.t
+cat src/libdoxygen.t.in | sed -e "s|%%FLEX%%|$f_flex|g" -e "s|%%BISON%%|$f_bison|g" > src/libdoxygen.t
+
f_inprofiles="qtools/qtools.pro.in src/libdoxygen.pro.in src/libdoxycfg.pro.in src/doxygen.pro.in addon/doxywizard/doxywizard.pro.in addon/doxmlparser/src/doxmlparser.pro.in addon/doxmlparser/test/xmlparse.pro.in addon/doxmlparser/examples/metrics/metrics.pro.in libmd5/libmd5.pro.in addon/doxyapp/doxyapp.pro.in"
for i in $f_inprofiles ; do
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 5e0f9aa..aaa9b0e 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2011 by Dimitri van Heesch.
+# Copyright (C) 1997-2012 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/doc/Makefile.latex b/doc/Makefile.latex
index 55f275d..a13b90f 100644
--- a/doc/Makefile.latex
+++ b/doc/Makefile.latex
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2011 by Dimitri van Heesch.
+# Copyright (C) 1997-2012 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/doc/Makefile.win_make.in b/doc/Makefile.win_make.in
index 02c5335..07c0679 100644
--- a/doc/Makefile.win_make.in
+++ b/doc/Makefile.win_make.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2011 by Dimitri van Heesch.
+# Copyright (C) 1997-2012 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/doc/Makefile.win_nmake.in b/doc/Makefile.win_nmake.in
index e98c46f..af8711c 100644
--- a/doc/Makefile.win_nmake.in
+++ b/doc/Makefile.win_nmake.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2011 by Dimitri van Heesch.
+# Copyright (C) 1997-2012 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/doc/arch.doc b/doc/arch.doc
index cdaf7b7..f89b12a 100644
--- a/doc/arch.doc
+++ b/doc/arch.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doc/autolink.doc b/doc/autolink.doc
index 1f4b617..7dcb328 100644
--- a/doc/autolink.doc
+++ b/doc/autolink.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -16,6 +16,8 @@
*/
/*! \page autolink Automatic link generation
+ \tableofcontents
+
Most documentation systems have special `see also' sections where links
to other pieces of documentation can be inserted.
Although doxygen also has a command to start such a section (See section
@@ -114,7 +116,7 @@
for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly
- \section resolving typedefs.
+ \section resolving typedefs
Typedefs that involve classes, structs and unions, like
\verbatim
diff --git a/doc/commands.doc b/doc/commands.doc
index ad6b2ba..0b758e2 100644
--- a/doc/commands.doc
+++ b/doc/commands.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -31,7 +31,7 @@ Each argument has a certain range:
<li>If {curly} braces are used the argument extends until the next paragraph.
Paragraphs are delimited by a blank line or by a section indicator.
</ul>
-If in addition to the aboveargument specifiers [square] brackets are used the argument is optional.
+If in addition to the above argument specifiers [square] brackets are used the argument is optional.
Here is an alphabetically sorted list of all commands with references to their
documentation:
@@ -166,6 +166,7 @@ documentation:
\refitem cmdsubpage \\subpage
\refitem cmdsubsection \\subsection
\refitem cmdsubsubsection \\subsubsection
+\refitem cmdtableofcontents \\tableofcontents
\refitem cmdtest \\test
\refitem cmdthrow \\throw
\refitem cmdthrows \\throws
@@ -192,6 +193,7 @@ documentation:
\refitem cmdhash \\\#
\refitem cmdperc \\\%
\refitem cmdquot \\\"
+\refitem cmdchardot \\\.
\refitem cmddcolon \::
\endsecreflist
@@ -387,7 +389,7 @@ Structural indicators
\ref cfg_example_path "EXAMPLE_PATH" tag, you can include part of the absolute path
to disambiguate it.
- If more that one source file is needed for the example,
+ If more than one source file is needed for the example,
the \\include command can be used.
\par Example:
@@ -494,7 +496,7 @@ Structural indicators
the documentation is in front of the definition. The arguments of
this command are the same as the second and third argument of
\ref cmdclass "\\class".
- The \<header-file\> name refers to the file that should by included by the
+ The \<header-file\> name refers to the file that should be included by the
application to obtain the definition of the class, struct, or union.
The \<header-name\> argument can be used to overwrite the
name of the link that is used in the class documentation to something other
@@ -535,7 +537,7 @@ Structural indicators
By default the value of a define and the initializer of a variable
are displayed unless they are longer than 30 lines. By putting
this command in a comment block of a define or variable, the
- initializer is always hidden. The maximum number of initalization linens
+ initializer is always hidden. The maximum number of initialization lines
can be changed by means of the configuration parameter
\ref cfg_max_initializer_lines "MAX_INITIALIZER_LINES", the default value is
30.
@@ -922,7 +924,7 @@ Structural indicators
are only displayed if they are less than 30 lines long. By putting
this command in a comment block of a define or variable, the
initializer is shown unconditionally.
- The maximum number of initalization linens
+ The maximum number of initialization lines
can be changed by means of the configuration parameter
\ref cfg_max_initializer_lines "MAX_INITIALIZER_LINES", the default value is
30.
@@ -945,7 +947,7 @@ Structural indicators
\addindex \\typedef
Indicates that a comment block contains documentation for a
typedef (either global or as a member of a class).
- This command is equivalent to \\var, \\propery, and \\fn.
+ This command is equivalent to \\var, \\property, and \\fn.
\sa section \ref cmdfn "\\fn", \ref cmdproperty "\\property", and
\ref cmdvar "\\var".
@@ -966,7 +968,7 @@ Structural indicators
\addindex \\var
Indicates that a comment block contains documentation for a variable or
enum value (either global or as a member of a class).
- This command is equivalent to \\typedef, \\propery, and \\fn.
+ This command is equivalent to \\typedef, \\property, and \\fn.
\sa section \ref cmdfn "\\fn", \ref cmdproperty "\\property", and \ref cmdtypedef "\\typedef".
@@ -1159,7 +1161,7 @@ contains \c TEST, or \c DEV
expected life span, etc.
<hr>
-\section cmddetails \\details { detailed decription }
+\section cmddetails \\details { detailed description }
\addindex \\details
Just like \ref cmdbrief "\\brief" starts a brief description, \\details
@@ -1385,6 +1387,18 @@ void memcpy(void *dest, const void *src, size_t n);
sectioning command is encountered. See section \ref cmdfn "\\fn" for an
example.
+ Note that you can also document multiple parameters with a single
+ \\param command using a comma separated list. Here is an example:
+
+\code
+/** Sets the position.
+ * @param x,y,z Coordinates of the position in 3D space.
+ */
+void setPosition(double x,double y,double z,double t)
+{
+}
+\endcode
+
Note that for PHP one can also specify the type (or types if you
separate them with a pipe symbol) which are allowed for a parameter
(as this is not part of the definition).
@@ -1763,6 +1777,17 @@ Make sure you have first read \ref intro "the introduction".
\endverbatim
<hr>
+\section cmdtableofcontents \\tableofcontents
+
+ \addindex \\tableofcontents
+ Creates a table of contents at the top of a page, listing all
+ sections and subsections in the page.
+
+ \warning This command only works inside related page documentation and
+ \e not in other documentation blocks and only has effect in the
+ HTML output!
+
+<hr>
\section cmdsection \\section <section-name> (section title)
\addindex \\section
@@ -2807,6 +2832,15 @@ class Receiver
to indicate an unformatted text fragment.
<hr>
+\section cmdchardot \\.
+
+ \addindex \\\.
+ This command writes a dot to the output. This can be useful to
+ prevent ending a brief description when JAVADOC_AUTOBRIEF is enabled
+ or to prevent starting a numbered list when the dot follows a number at
+ the start of a line.
+
+<hr>
\section cmddcolon \\::
\addindex \\\::
diff --git a/doc/config.doc b/doc/config.doc
index 9ec918b..c84b19f 100644
--- a/doc/config.doc
+++ b/doc/config.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -16,6 +16,7 @@
*/
/*! \page config Configuration
+\tableofcontents
\section config_format Format
A configuration file is a free-form ASCII text file with a structure
@@ -45,7 +46,7 @@ file using a <code>\@INCLUDE</code> tag as follows:
The include file is searched in the current working directory. You can
also specify a list of directories that should be searched before looking
in the current working directory. Do this by putting a <code>\@INCLUDE_PATH</code> tag
-with these paths before the <code>\@INCLUDE</code> tag, e.g:
+with these paths before the <code>\@INCLUDE</code> tag, e.g.:
\verbatim
@INCLUDE_PATH = my_config_dir
\endverbatim
@@ -274,6 +275,7 @@ followed by the descriptions of the tags grouped by category.
\refitem cfg_toc_expand TOC_EXPAND
\refitem cfg_treeview_width TREEVIEW_WIDTH
\refitem cfg_typedef_hides_struct TYPEDEF_HIDES_STRUCT
+\refitem cfg_uml_limit_num_fields UML_LIMIT_NUM_FIELDS
\refitem cfg_uml_look UML_LOOK
\refitem cfg_use_htags USE_HTAGS
\refitem cfg_use_inline_trees USE_INLINE_TREES
@@ -1181,7 +1183,7 @@ AClass::ANamespace, ANamespace::*Test
filter if there is a match. The filters are a list of the form:
pattern=filter (like `*.cpp=my_cpp_filter`). See \c INPUT_FILTER for further
info on how filters are used. If \c FILTER_PATTERNS is empty or if
- non of the patterns match the file name, \c INPUT_FILTER is applied.
+ none of the patterns match the file name, \c INPUT_FILTER is applied.
\anchor cfg_filter_source_files
<dt>\c FILTER_SOURCE_FILES <dd>
@@ -1808,8 +1810,9 @@ and Class Hierarchy pages using a tree view instead of an ordered list.
(see http://www.mathjax.org) which uses client side Javascript for the
rendering instead of using prerendered bitmaps. Use this if you do not
have LaTeX installed or if you want to formulas look prettier in the HTML
- output. When enabled you also need to install MathJax separately and
- configure the path to it using the \ref cfg_mathjax_relpath "MATHJAX_RELPATH" option.
+ output. When enabled you may also need to install MathJax separately and
+ configure the path to it using the \ref cfg_mathjax_relpath "MATHJAX_RELPATH"
+ option.
\anchor cfg_mathjax_relpath
<dt>\c MATHJAX_RELPATH <dd>
@@ -1819,9 +1822,9 @@ and Class Hierarchy pages using a tree view instead of an ordered list.
directory should contain the MathJax.js script. For instance, if the mathjax
directory is located at the same level as the HTML output directory, then
\c MATHJAX_RELPATH should be <code>../mathjax</code>. The default value points to
- the http://www.mathjax.org site, so you can quickly see the result without installing
- MathJax, but it is strongly recommended to install a local copy of MathJax
- before deployment.
+ the MathJax Content Delivery Network so you can quickly see the result without
+ installing MathJax. However, it is strongly recommended to install a local
+ copy of MathJax from http://www.mathjax.org before deployment.
\anchor cfg_mathjax_extensions
<dt>\c MATHJAX_EXTENSIONS <dd>
@@ -2352,7 +2355,7 @@ The default size is 10pt.
\addindex CLASS_GRAPH
If the \c CLASS_GRAPH and \c HAVE_DOT tags are set to \c YES then doxygen
will generate a graph for each documented class showing the direct and
- indirect inheritance relations. Setting this tag to \c YES will force the
+ indirect inheritance relations. Setting this tag to \c YES will force
the \c CLASS_DIAGRAMS tag to NO.
\anchor cfg_collaboration_graph
@@ -2376,6 +2379,18 @@ The default size is 10pt.
collaboration diagrams in a style similar to the OMG's Unified Modeling
Language.
+\anchor cfg_uml_limit_num_fields
+<dt>\c UML_LIMIT_NUM_FIELDS <dd>
+ \addindex UML_LIMIT_NUM_FIELDS
+ If the \c UML_LOOK tag is enabled, the fields and methods are shown inside
+ the class node. If there are many fields or methods and many nodes the
+ graph may become too big to be useful. The \c UML_LIMIT_NUM_FIELDS
+ threshold limits the number of items for each type to make the size more
+ managable. Set this to 0 for no limit. Note that the threshold may be
+ exceeded by 50% before the limit is enforced. So when you set the threshold
+ to 10, up to 15 fields may appear, but if the number exceeds 15, the
+ total amount of fields shown is limited to 10.
+
\anchor cfg_template_relations
<dt>\c TEMPLATE_RELATIONS <dd>
\addindex TEMPLATE_RELATIONS
diff --git a/doc/custcmd.doc b/doc/custcmd.doc
index 312a307..06ef0d1 100644
--- a/doc/custcmd.doc
+++ b/doc/custcmd.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -16,6 +16,8 @@
*/
/*! \page custcmd Custom Commands
+\tableofcontents
+
Doxygen provides a large number of \ref commands "special commands",
\ref xmlcmds "XML commands", and \ref htmlcmds "HTML commands".
that can be used to enhance or structure the documentation inside a comment block.
diff --git a/doc/customize.doc b/doc/customize.doc
index d1be915..db376a8 100644
--- a/doc/customize.doc
+++ b/doc/customize.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -16,6 +16,8 @@
*/
/*! \page customize Customizing the output
+\tableofcontents
+
Doxygen provides various levels of customization.
The section \ref minor_tweaks "Minor Tweaks" discusses what to
do if you want to do minor tweaking to the look and feel of the output.
@@ -84,7 +86,7 @@ that are disabled by default:
with \ref cfg_interactive_svg "INTERACTIVE_SVG" while setting
\ref cfg_dot_image_format "DOT_IMAGE_FORMAT" to \c svg, will make doxygen
produce SVG images that will allow the user to zoom and pan (this only
- happens when th size of the images exceeds a certain size).
+ happens when the size of the images exceeds a certain size).
\subsection minor_tweaks_header_css Header, Footer, and Stylesheet changes
@@ -92,7 +94,7 @@ To tweak things like fonts or colors, margins, or other look \& feel
aspects of the HTML output in detail, you can create a different
<a href="http://www.w3schools.com/css/default.asp">cascading style sheet</a>.
You can also let doxygen use a custom header and footer for each HTML
-page it generates, for instance to make the output comform to the style
+page it generates, for instance to make the output conform to the style
used on the rest of your web site.
To do this first run doxygen as follows:
@@ -121,13 +123,17 @@ for more information about the possible meta commands you can use inside
your custom header.
\note You should not put the style sheet in the HTML output directory. Treat
-it is a source file. Doxygen will copy it for you.
+it as a source file. Doxygen will copy it for you.
\note If you use images or other external content in a custom header you
need to make sure these end up in the HTML output directory yourself,
for instance by writing a script that runs doxygen can then copies the
images to the output.
+\warning The structure of headers and footers may change after upgrading to
+a newer version of doxygen, so if you are using a custom header or footer,
+it might not produce valid output anymore after upgrading.
+
\section layout Changing the layout of pages
In some cases you may want to change the way the output is structured.
diff --git a/doc/diagrams.doc b/doc/diagrams.doc
index 0f5c607..7d488fa 100644
--- a/doc/diagrams.doc
+++ b/doc/diagrams.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doc/docblocks.doc b/doc/docblocks.doc
index 093122b..facd1b5 100644
--- a/doc/docblocks.doc
+++ b/doc/docblocks.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -15,6 +15,7 @@
*
*/
/*! \page docblocks Documenting the code
+\tableofcontents
This chapter covers two topics:
1. How to put comments in your code such that doxygen incorporates them in
@@ -504,7 +505,7 @@ lower then sign). The brief documentation also ends at a line not starting
with a \c # (hash sign).
Inside doxygen comment blocks all normal doxygen markings are supported.
-The only expections are described in the following two paragraphs.
+The only exceptions are described in the following two paragraphs.
If a doxygen comment block ends with a line containing only
\c #\\code or \c #\@code all code until a line only containing \c #\\endcode
@@ -560,7 +561,7 @@ Go to the <a href="lists.html">next</a> section or return to the
\section docstructure Anatomy of a comment block
-The previous section focussed on how to make the comments in your code known
+The previous section focused on how to make the comments in your code known
to doxygen, it explained the difference between a brief and a detailed description, and
the use of structural commands.
diff --git a/doc/doxygen.1 b/doc/doxygen.1
index deb0c20..45090f4 100644
--- a/doc/doxygen.1
+++ b/doc/doxygen.1
@@ -41,6 +41,6 @@ doxygen \fB\-e\fR rtf extensionsFile
If \fB\-s\fR is specified the comments in the config file will be omitted.
If configName is omitted `Doxyfile' will be used as a default.
.SH AUTHOR
-Doxygen version VERSION, Copyright Dimitri van Heesch 1997-2011
+Doxygen version VERSION, Copyright Dimitri van Heesch 1997-2012
.SH SEE ALSO
doxywizard(1).
diff --git a/doc/doxygen_manual.css b/doc/doxygen_manual.css
index 8dfe6dd..1f22b59 100644
--- a/doc/doxygen_manual.css
+++ b/doc/doxygen_manual.css
@@ -822,7 +822,7 @@ dl
padding: 0 0 0 10px;
}
-dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug
+dl.section
{
border-left:4px solid;
padding: 0 0 0 6px;
@@ -863,6 +863,10 @@ dl.bug
border-color: #C08050;
}
+dl.section dd {
+ margin-bottom: 1em;
+}
+
#projectlogo
{
text-align: center;
@@ -946,6 +950,54 @@ dl.citelist dd {
padding:5px 0;
}
+div.toc {
+ padding: 14px 25px;
+ background-color: #F6F6F6;
+ border: 1px solid #DDDDDD;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 20px 10px 10px;
+ width: 200px;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ border-bottom: 0 none;
+ color: #606060;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
@media print
{
#top { display: none; }
diff --git a/doc/doxygen_manual.tex b/doc/doxygen_manual.tex
index 54898e8..8e47015 100644
--- a/doc/doxygen_manual.tex
+++ b/doc/doxygen_manual.tex
@@ -12,7 +12,8 @@
% Documents produced by Doxygen are derivative works derived from the
% input used in their production; they are not affected by this license.
-\documentclass[a4paper]{book}
+\documentclass{book}
+\usepackage[a4paper,left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}
\usepackage{makeidx}
\usepackage{natbib}
\usepackage{graphicx}
diff --git a/doc/doxygen_usage.doc b/doc/doxygen_usage.doc
index 0cffb3d..40e5163 100644
--- a/doc/doxygen_usage.doc
+++ b/doc/doxygen_usage.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doc/doxywizard_usage.doc b/doc/doxywizard_usage.doc
index de24add..435661b 100644
--- a/doc/doxywizard_usage.doc
+++ b/doc/doxywizard_usage.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -28,7 +28,7 @@ The first step is to choose one of the ways to configure doxygen.
<dl>
<dt>Wizard<dd>Click this button to quickly configure the most important
settings and leave the rest of the options to their defaults.
-<dt>Expert<dd>Click this button to to gain access to the
+<dt>Expert<dd>Click this button to gain access to the
\ref config "full range of configuration options".
<dt>Load<dd>Click this button to load an existing configuration file
from disk.
diff --git a/doc/external.doc b/doc/external.doc
index 2a6426e..013b7c2 100644
--- a/doc/external.doc
+++ b/doc/external.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doc/faq.doc b/doc/faq.doc
index 7547d16..0475aa7 100644
--- a/doc/faq.doc
+++ b/doc/faq.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doc/features.doc b/doc/features.doc
index 688a1b1..46a6219 100644
--- a/doc/features.doc
+++ b/doc/features.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -63,7 +63,7 @@
the Qt specific signal and slots sections. Extraction of private class
members is optional.
<li>Automatically generates references to documented classes, files, namespaces
- and members. Documentation of global functions, globals variables,
+ and members. Documentation of global functions, global variables,
typedefs, defines and enumerations is also supported.
<li>References to base/super classes and inherited/overridden members are
generated automatically.
diff --git a/doc/formulas.doc b/doc/formulas.doc
index 9f049eb..bc23a11 100644
--- a/doc/formulas.doc
+++ b/doc/formulas.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doc/grouping.doc b/doc/grouping.doc
index 825a289..56f19f7 100644
--- a/doc/grouping.doc
+++ b/doc/grouping.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doc/htmlcmds.doc b/doc/htmlcmds.doc
index aa03498..7b3ff71 100644
--- a/doc/htmlcmds.doc
+++ b/doc/htmlcmds.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -123,7 +123,7 @@ The special HTML character entities that are recognized by Doxygen:
<li><tt>\&rsquo;</tt> right single quotation mark
<li><tt>\&ldquo;</tt> left double quotation mark
<li><tt>\&rdquo;</tt> right double quotation mark
-<li><tt>\&ndash;</tt> n-dash (for numeric ranges, eg. 2&ndash;8)
+<li><tt>\&ndash;</tt> n-dash (for numeric ranges, e.g. 2&ndash;8)
<li><tt>\&mdash;</tt> m-dash (for parenthetical punctuation &mdash; like this)
<li><tt>\&?uml;</tt> where ? is one of {A,E,I,O,U,Y,a,e,i,o,u,y},
writes a character with a diaeresis accent (like &auml;).
diff --git a/doc/index.doc b/doc/index.doc
index 48f01e6..e604ee5 100644
--- a/doc/index.doc
+++ b/doc/index.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -113,7 +113,7 @@ The third part provides information for developers:
\addindex license
\addindex GPL
-Copyright &copy; 1997-2011 by
+Copyright &copy; 1997-2012 by
<a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>.<p>
Permission to use, copy, modify, and distribute this software and its
diff --git a/doc/install.doc b/doc/install.doc
index 6a18784..d076cf3 100644
--- a/doc/install.doc
+++ b/doc/install.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -17,21 +17,13 @@
/*! \page install Installation
\addindex installation
+\tableofcontents
+
First go to the
<a href="http://www.doxygen.org/download.html">download</a> page
-to get the latest distribution, if you did not have it already.
-
-This section is divided into the following sections:
-<ul>
-<li>\ref install_src_unix "Compiling from source on UNIX"
-<li>\ref install_bin_unix "Installing the binaries on UNIX"
-<li>\ref unix_problems "Known compilation problems for UNIX"
-<li>\ref install_src_windows "Compiling from source on Windows"
-<li>\ref install_bin_windows "Installing the binaries on Windows"
-<li>\ref build_tools "Tools used to develop doxygen"
-</ul>
+to get the latest distribution, if you did not downloaded doxygen already.
-\section install_src_unix Compiling from source on UNIX
+\section install_src_unix Compiling from source on UNIX
If you downloaded the source distribution, you need at least the
following to build the executable:
@@ -357,7 +349,7 @@ Now you need to add/adjust the following environment variables
- add <code>c:\\tools\\unxutils\\usr\\local\\wbin;</code> to the start of <code>PATH</code>
- set <code>BISON_SIMPLE</code> to <code>c:\\tools\\unxutils\\usr\\local\\share\\bison.simple</code>
-Download doxygen's source tarball and put it somewhere (e.g use <code>c:\\tools</code>)
+Download doxygen's source tarball and put it somewhere (e.g. use <code>c:\\tools</code>)
Now start a new command shell and type
\verbatim
@@ -371,7 +363,7 @@ Now your environment is setup to build \c doxygen.
Inside the \c doxygen-x.y.z directory you will find a \c winbuild directory
containing a \c Doxygen.sln file. Open this file in Visual Studio.
-You can now build the Release or Debug flavor of Doxygen and Doxytag by right-clicking
+You can now build the Release or Debug flavor of Doxygen by right-clicking
the project in the solutions explorer, and selecting Build.
Note that compiling Doxywizard currently requires Qt version 4
diff --git a/doc/language.doc b/doc/language.doc
index a155d48..7fa38e4 100644
--- a/doc/language.doc
+++ b/doc/language.doc
@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other
than English (the default). The output language is chosen through the
configuration file (with default name and known as Doxyfile).
-Currently (version 1.7.5), 39 languages
+Currently (version 1.7.6.1), 39 languages
are supported (sorted alphabetically):
Afrikaans, Arabic, Armenian, Brazilian Portuguese, Catalan, Chinese,
Chinese Traditional, Croatian, Czech, Danish, Dutch, English,
diff --git a/doc/markdown.doc b/doc/markdown.doc
index ea6776e..07378ef 100644
--- a/doc/markdown.doc
+++ b/doc/markdown.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -16,34 +16,7 @@
*/
/*! \page markdown Markdown support
-Table of contents
-- \ref markdown_std
- - \ref md_para
- - \ref md_headers
- - \ref md_blockquotes
- - \ref md_lists
- - \ref md_codeblock
- - \ref md_rulers
- - \ref md_emphasis
- - \ref md_codespan
- - \ref md_links
- - \ref md_inlinelinks
- - \ref md_reflinks
- - \ref md_images
- - \ref md_autolink
-- \ref markdown_extra
- - \ref md_tables
- - \ref md_fenced
- - \ref md_header_id
-- \ref markdown_dox
- - \ref md_page_header
- - \ref md_html_blocks
- - \ref mddox_code_blocks
- - \ref mddox_code_spans
- - \ref mddox_lists
- - \ref mddox_stars
- - \ref mddox_limits
-- \ref markdown_debug
+[TOC]
[Markdown] support
was introduced in doxygen version 1.8.0. It is a plain text formatting
@@ -57,7 +30,7 @@ syntax written by John Gruber, with the following underlying design goal:
> text-to-HTML filters, the single biggest source of inspiration
> for Markdown’s syntax is the format of plain text email.
-In the \ref markdown_std "next section" the standard markdown features
+In the \ref markdown_std "next section" the standard Markdown features
are briefly discussed. The reader is referred to the [Markdown site][markdown]
for more details.
@@ -128,7 +101,7 @@ to avoid false positives, i.e. when writing
0 if OK\n
>1 if NOK
-the second line will not seen as a block quote.
+the second line will not be seen as a block quote.
\subsection md_lists Lists
@@ -315,13 +288,21 @@ Note that doxygen will also produce the links without the angle brackets.
\section markdown_extra Markdown Extensions
+\subsection md_toc Table of Contents
+
+Doxygen supports a special link marker `[TOC]` which can be placed in a page
+to produce a table of contents at the start of the page, listing all sections.
+
+Note that using `[TOC]` is the same as using a
+\ref cmdtableofcontents "\\tableofcontents" command.
+
\subsection md_tables Tables
Of the features defined by "Markdown Extra" is support for
<a href="http://michelf.com/projects/php-markdown/extra/#table">simple tables</a>:
A table consists of a header line, a separator line, and at least one
-row line. Table columns are separated by the pipe (!) character.
+row line. Table columns are separated by the pipe (|) character.
Here is an example:
@@ -360,7 +341,7 @@ fenced code blocks</a>:
A fenced code block does not require indentation, and is
defined by a pair of "fence lines". Such a line consists of 3 or
-more tile (~) characters on a line. The end of the block should have the
+more tilde (~) characters on a line. The end of the block should have the
same number of tildes. Here is an example:
@@ -370,12 +351,13 @@ same number of tildes. Here is an example:
a one-line code block
~~~~~~~~~~~~~~~~~~~~~
-The contents of the code block is syntax highlighted.
-The default language is based on the file it was found in
-(i.e. a fenced block in a Python file is assumed to be Python code).
-In case the language is not clear from the context or you want to
-indicate a specific language you can add the language's extension after
-the opening fence:
+By default the output is the same as for a normal code block.
+
+For languages supported by doxygen you can also make the code block
+appear with syntax highlighting. To do so you need to
+indicate the typical file extension that corresponds to the
+programming language after the opening fence. For highlighting according
+to the Python language for instance, you would need to write the following:
~~~~~~~~~~~~~{.py}
# A class
@@ -383,26 +365,26 @@ the opening fence:
pass
~~~~~~~~~~~~~
-will produce:
+which will produce:
~~~~~~~~~~~~~{.py}
# A class
class Dummy:
pass
~~~~~~~~~~~~~
-and
+and for C you would write:
~~~~~~~~~~~~~~~{.c}
int func(int a,int b) { return a*b; }
~~~~~~~~~~~~~~~
-will produce:
+which will produce:
~~~~~~~~~~~~~~~{.c}
int func(int a,int b) { return a*b; }
~~~~~~~~~~~~~~~
-The curly brances and dot are optional by the way.
+The curly braces and dot are optional by the way.
\subsection md_header_id Header Id Attributes
@@ -429,7 +411,7 @@ Note this only works for the headers of level 1 to 4.
\section markdown_dox Doxygen specifics
-Even doxygen tries to following the Markdown standard as closely as
+Even though doxygen tries to following the Markdown standard as closely as
possible, there are couple of deviation and doxygen specifics additions.
\subsection md_page_header Including Markdown files as pages
@@ -479,7 +461,7 @@ and in other sections that need to be processed without changes
\subsection mddox_code_blocks Code Block Indentation
-With markdown any block that is indented by 4 spaces (and 8 spaces
+With Markdown any block that is indented by 4 spaces (and 8 spaces
inside lists) is treated as a code block. This indentation amount
is absolute, i.e. counting from the start of the line.
@@ -580,13 +562,13 @@ To avoid that a stray * or _ matches something many paragraphs later,
and shows everything in between with emphasis, doxygen limits the scope
of a * and _ to a single paragraph.
-For code span, between the starting and ending backtick only two
+For a code span, between the starting and ending backtick only two
new lines are allowed.
Also for links there are limits; the link text, and link title each can
contain only one new line, the URL may not contain any newlines.
-\section markdown_debug Debugging problems
+\section markdown_debug Debugging of problems
When doxygen parses the source code it first extracts the comments blocks,
then passes these through the Markdown preprocessor. The output of the
diff --git a/doc/output.doc b/doc/output.doc
index f2c742c..d34e057 100644
--- a/doc/output.doc
+++ b/doc/output.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/doc/preprocessing.doc b/doc/preprocessing.doc
index 603c683..49dd0f1 100644
--- a/doc/preprocessing.doc
+++ b/doc/preprocessing.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -47,7 +47,7 @@ Then by default doxygen will feed the following to its parser:
You can disable all preprocessing by setting
\ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" to \c
NO in the configuration file. In the case above doxygen will then read
-both statements, i.e:
+both statements, i.e.:
\verbatim
static CONST_STRING version = "2.xx";
diff --git a/doc/searching.doc b/doc/searching.doc
index dc0dd9e..b3e4fd9 100644
--- a/doc/searching.doc
+++ b/doc/searching.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -139,7 +139,7 @@ has its own advantages and disadvantages:
To enable the help plugin set
\ref cfg_generate_eclipsehelp "GENERATE_ECLIPSEHELP" to \c YES,
and define a unique identifier for your project via
- \ref cfg_eclipse_doc_id "ECLIPSE_DOC_ID", i.e:
+ \ref cfg_eclipse_doc_id "ECLIPSE_DOC_ID", i.e.:
\verbatim
GENERATE_ECLIPSEHELP = YES
ECLIPSE_DOC_ID = com.yourcompany.yourproject
diff --git a/doc/starting.doc b/doc/starting.doc
index a60093f..4e5481e 100644
--- a/doc/starting.doc
+++ b/doc/starting.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -15,6 +15,7 @@
*
*/
/*! \page starting Getting started
+\tableofcontents
The executable \c doxygen is the main program that parses the sources and
generates the documentation. See section \ref doxygen_usage for more
@@ -196,7 +197,8 @@ The generated \f$\mbox{\LaTeX}\f$ documentation must first be compiled by
a \f$\mbox{\LaTeX}\f$ compiler (I use a recent teTeX distribution for Linux
and MacOSX and MikTex for Windows).
To simplify the process of compiling the generated
-documentation, \c doxygen writes a \c Makefile into the \c latex directory.
+documentation, \c doxygen writes a \c Makefile into the \c latex directory
+(on the Windows platform also a \c make.bat batch file is generated).
The contents and targets in the \c Makefile depend on the setting of
\ref cfg_use_pdflatex "USE_PDFLATEX". If it is disabled (set to \c NO), then
diff --git a/doc/translator_report.txt b/doc/translator_report.txt
index f53d003..382c066 100644
--- a/doc/translator_report.txt
+++ b/doc/translator_report.txt
@@ -1,4 +1,4 @@
-(1.7.5)
+(1.7.6.1)
Doxygen supports the following 39 languages (sorted alphabetically):
@@ -112,6 +112,7 @@ for occurence of the method identifiers:
QCString trAlphabeticalList()
QCString trDCOPMethods()
QCString trDirDependency(const char *)
+ QCString trFuncProtos()
QCString trFunctionPrototypeDocumentation()
QCString trGraphicalHierarchy()
QCString trSearchForIndex()
diff --git a/doc/trouble.doc b/doc/trouble.doc
index 4fb41d2..c795b0f 100644
--- a/doc/trouble.doc
+++ b/doc/trouble.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -31,7 +31,7 @@
or unions with the same name in your code. It should not crash however,
rather it should ignore all of the classes with the same name except one.
<li>Some commands do not work inside the arguments of other commands.
- Inside a HTML link (i.e \<a href="..."\>...\<a\>) for instance
+ Inside a HTML link (i.e. \<a href="..."\>...\<a\>) for instance
other commands (including other HTML commands) do not work!
The sectioning commands are an important exception.
<li>Redundant braces can confuse doxygen in some cases.
diff --git a/doc/xmlcmds.doc b/doc/xmlcmds.doc
index 5116209..526fce7 100644
--- a/doc/xmlcmds.doc
+++ b/doc/xmlcmds.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/examples/page.doc b/examples/page.doc
index 747a4b8..f83f896 100644
--- a/examples/page.doc
+++ b/examples/page.doc
@@ -1,4 +1,5 @@
/*! \page page1 A documentation page
+ \tableofcontents
Leading text.
\section sec An example section
This page contains the subsections \ref subsection1 and \ref subsection2.
diff --git a/qtools/Doxyfile b/qtools/Doxyfile
index 8980dfe..2a5deb8 100644
--- a/qtools/Doxyfile
+++ b/qtools/Doxyfile
@@ -173,7 +173,7 @@ EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
USE_MATHJAX = NO
-MATHJAX_RELPATH = http://www.mathjax.org/mathjax
+MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
SEARCHENGINE = YES
SERVER_BASED_SEARCH = NO
#---------------------------------------------------------------------------
diff --git a/src/Makefile.in b/src/Makefile.in
index eb0c170..2ecffd2 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -2,7 +2,7 @@
#
#
#
-# Copyright (C) 1997-2011 by Dimitri van Heesch.
+# Copyright (C) 1997-2012 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/src/arguments.cpp b/src/arguments.cpp
new file mode 100644
index 0000000..128223b
--- /dev/null
+++ b/src/arguments.cpp
@@ -0,0 +1,17 @@
+#include "arguments.h"
+
+/*! the argument list is documented if one of its
+ * arguments is documented
+ */
+bool ArgumentList::hasDocumentation() const
+{
+ bool hasDocs=FALSE;
+ ArgumentListIterator ali(*this);
+ Argument *a;
+ for (ali.toFirst();!hasDocs && (a=ali.current());++ali)
+ {
+ hasDocs = a->hasDocumentation();
+ }
+ return hasDocs;
+}
+
diff --git a/src/arguments.h b/src/arguments.h
new file mode 100644
index 0000000..c5ca942
--- /dev/null
+++ b/src/arguments.h
@@ -0,0 +1,99 @@
+/******************************************************************************
+ *
+ * Copyright (C) 1997-2012 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
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ * Documents produced by Doxygen are derivative works derived from the
+ * input used in their production; they are not affected by this license.
+ *
+ */
+
+#ifndef ARGUMENTS_H
+#define ARGUMENTS_H
+
+#include "qtbc.h"
+#include <qlist.h>
+
+/*! \brief This class contains the information about the argument of a
+ * function or template
+ *
+ */
+struct Argument
+{
+ /*! Construct a new argument. */
+ Argument() {}
+ /*! Copy an argument (does a deep copy of all strings). */
+ Argument(const Argument &a)
+ {
+ attrib=a.attrib.copy();
+ type=a.type.copy();
+ name=a.name.copy();
+ defval=a.defval.copy();
+ docs=a.docs.copy();
+ array=a.array.copy();
+ }
+ /*! Assignment of an argument (does a deep copy of all strings). */
+ Argument &operator=(const Argument &a)
+ {
+ if (this!=&a)
+ {
+ attrib=a.attrib.copy();
+ type=a.type.copy();
+ name=a.name.copy();
+ defval=a.defval.copy();
+ docs=a.docs.copy();
+ array=a.array.copy();
+ }
+ return *this;
+ }
+ /*! return TRUE if this argument is documentation and the argument has a
+ * non empty name.
+ */
+ bool hasDocumentation() const
+ {
+ return !name.isEmpty() && !docs.isEmpty();
+ }
+
+ QCString attrib; /*!< Argument's attribute (IDL only) */
+ QCString type; /*!< Argument's type */
+ QCString canType; /*!< Cached value of canonical type (after type resolution). Empty initially. */
+ QCString name; /*!< Argument's name (may be empty) */
+ QCString array; /*!< Argument's array specifier (may be empty) */
+ QCString defval; /*!< Argument's default value (may be empty) */
+ QCString docs; /*!< Argument's documentation (may be empty) */
+};
+
+/*! \brief This class represents an function or template argument list.
+ *
+ * This class also stores some information about member that is typically
+ * put after the argument list, such as wether the member is const,
+ * volatile or pure virtual.
+ */
+class ArgumentList : public QList<Argument>
+{
+ public:
+ /*! Creates an empty argument list */
+ ArgumentList() : QList<Argument>(),
+ constSpecifier(FALSE),
+ volatileSpecifier(FALSE),
+ pureSpecifier(FALSE)
+ { setAutoDelete(TRUE); }
+ /*! Destroys the argument list */
+ ~ArgumentList() {}
+ bool hasDocumentation() const;
+ /*! Does the member modify the state of the class? default: FALSE. */
+ bool constSpecifier;
+ /*! Is the member volatile? default: FALSE. */
+ bool volatileSpecifier;
+ /*! Is this a pure virtual member? default: FALSE */
+ bool pureSpecifier;
+};
+
+typedef QListIterator<Argument> ArgumentListIterator;
+
+#endif
diff --git a/src/bufstr.h b/src/bufstr.h
index d9a93f0..2945b5b 100644
--- a/src/bufstr.h
+++ b/src/bufstr.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/cite.cpp b/src/cite.cpp
index c684083..96e88ae 100644
--- a/src/cite.cpp
+++ b/src/cite.cpp
@@ -52,11 +52,16 @@ static QCString getListOfBibFiles(const QCString &sep,bool stripExtension)
const char *bibdata = citeDataList.first();
while (bibdata)
{
+ int i;
QCString bibFile = bibdata;
if (stripExtension && bibFile.right(4)==".bib")
{
bibFile = bibFile.left(bibFile.length()-4);
}
+ if (stripExtension && (i=bibFile.findRev('/'))!=-1)
+ {
+ bibFile = bibFile.mid(i+1);
+ }
if (!bibFile.isEmpty())
{
result+=bibFile;
diff --git a/src/classdef.cpp b/src/classdef.cpp
index c5ff60d..bd44c87 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -38,6 +38,7 @@
#include "searchindex.h"
#include "vhdldocgen.h"
#include "layout.h"
+#include "arguments.h"
//-----------------------------------------------------------------------------
@@ -404,14 +405,12 @@ void ClassDef::internalInsertMember(MemberDef *md,
if (1 /*!isReference()*/) // changed to 1 for showing members of external
// classes when HAVE_DOT and UML_LOOK are enabled.
{
- static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
-
bool isSimple=FALSE;
/********************************************/
/* insert member in the declaration section */
/********************************************/
- if (md->isRelated() && (extractPrivate || prot!=Private))
+ if (md->isRelated() && protectionLevelVisible(prot))
{
addMemberToList(MemberList::related,md,TRUE);
}
@@ -560,7 +559,7 @@ void ClassDef::internalInsertMember(MemberDef *md,
/*******************************************************/
/* insert member in the detailed documentation section */
/*******************************************************/
- if ((md->isRelated() && (extractPrivate || prot!=Private)) || md->isFriend())
+ if ((md->isRelated() && protectionLevelVisible(prot)) || md->isFriend())
{
addMemberToList(MemberList::relatedMembers,md,FALSE);
}
@@ -579,23 +578,13 @@ void ClassDef::internalInsertMember(MemberDef *md,
addMemberToList(MemberList::functionMembers,md,FALSE);
break;
case MemberDef::Slot:
- switch (prot)
+ if (protectionLevelVisible(prot))
{
- case Protected:
- case Package:
- case Public:
- addMemberToList(MemberList::functionMembers,md,FALSE);
- break;
- case Private:
- if (extractPrivate)
- {
- addMemberToList(MemberList::functionMembers,md,FALSE);
- }
- break;
+ addMemberToList(MemberList::functionMembers,md,FALSE);
}
break;
default: // any of the other members
- if (prot!=Private || extractPrivate)
+ if (protectionLevelVisible(prot))
{
switch (md->memberType())
{
@@ -2047,7 +2036,7 @@ void ClassDef::writeDocumentationForInnerClasses(OutputList &ol)
for (cli.toFirst();(innerCd=cli.current());++cli)
{
if (innerCd->isLinkableInProject() && innerCd->templateMaster()==0 &&
- (innerCd->protection()!=Private || Config_getBool("EXTRACT_PRIVATE")) &&
+ protectionLevelVisible(innerCd->protection()) &&
!innerCd->isEmbeddedInOuterScope()
)
{
@@ -2162,7 +2151,7 @@ void ClassDef::writeMemberList(OutputList &ol)
memberWritten=TRUE;
}
else if (!Config_getBool("HIDE_UNDOC_MEMBERS") &&
- (md->protection()!=Private || Config_getBool("EXTRACT_PRIVATE") || md->isFriend())
+ (protectionLevelVisible(md->protection()) || md->isFriend())
) // no documentation,
// generate link to the class instead.
{
@@ -2429,6 +2418,8 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup)
mg->writePlainDeclarations(ol,this,0,0,0);
}
}
+ static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
+ static bool extractPackage = Config_getBool("EXTRACT_PACKAGE");
writePlainMemberDeclaration(ol,MemberList::pubTypes,inGroup);
writePlainMemberDeclaration(ol,MemberList::pubMethods,inGroup);
@@ -2446,12 +2437,15 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup)
writePlainMemberDeclaration(ol,MemberList::proSlots,inGroup);
writePlainMemberDeclaration(ol,MemberList::proStaticMethods,inGroup);
writePlainMemberDeclaration(ol,MemberList::proStaticAttribs,inGroup);
- writePlainMemberDeclaration(ol,MemberList::pacTypes,inGroup);
- writePlainMemberDeclaration(ol,MemberList::pacMethods,inGroup);
- writePlainMemberDeclaration(ol,MemberList::pacAttribs,inGroup);
- writePlainMemberDeclaration(ol,MemberList::pacStaticMethods,inGroup);
- writePlainMemberDeclaration(ol,MemberList::pacStaticAttribs,inGroup);
- if (Config_getBool("EXTRACT_PRIVATE"))
+ if (extractPackage)
+ {
+ writePlainMemberDeclaration(ol,MemberList::pacTypes,inGroup);
+ writePlainMemberDeclaration(ol,MemberList::pacMethods,inGroup);
+ writePlainMemberDeclaration(ol,MemberList::pacAttribs,inGroup);
+ writePlainMemberDeclaration(ol,MemberList::pacStaticMethods,inGroup);
+ writePlainMemberDeclaration(ol,MemberList::pacStaticAttribs,inGroup);
+ }
+ if (extractPrivate)
{
writePlainMemberDeclaration(ol,MemberList::priTypes,inGroup);
writePlainMemberDeclaration(ol,MemberList::priMethods,inGroup);
@@ -2467,7 +2461,6 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup)
/*! a link to this class is possible within this project */
bool ClassDef::isLinkableInProject() const
{
- static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
static bool extractLocal = Config_getBool("EXTRACT_LOCAL_CLASSES");
static bool extractStatic = Config_getBool("EXTRACT_STATIC");
static bool hideUndoc = Config_getBool("HIDE_UNDOC_CLASSES");
@@ -2480,7 +2473,7 @@ bool ClassDef::isLinkableInProject() const
return !name().isEmpty() && /* has a name */
!isArtificial() && !isHidden() && /* not hidden */
name().find('@')==-1 && /* not anonymous */
- (m_impl->prot!=Private || extractPrivate) && /* private */
+ protectionLevelVisible(m_impl->prot) && /* private/internal */
(!m_impl->isLocal || extractLocal) && /* local */
(hasDocumentation() || !hideUndoc) && /* documented */
(!m_impl->isStatic || extractStatic) && /* static */
@@ -2505,7 +2498,6 @@ bool ClassDef::isLinkable() const
bool ClassDef::isVisibleInHierarchy()
{
static bool allExternals = Config_getBool("ALLEXTERNALS");
- static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
static bool hideUndocClasses = Config_getBool("HIDE_UNDOC_CLASSES");
static bool extractStatic = Config_getBool("EXTRACT_STATIC");
@@ -2516,7 +2508,7 @@ bool ClassDef::isVisibleInHierarchy()
// not an artificially introduced class
!isArtificial() &&
// and not privately inherited
- (m_impl->prot!=Private || extractPrivate) &&
+ protectionLevelVisible(m_impl->prot) &&
// documented or shown anyway or documentation is external
(hasDocumentation() ||
!hideUndocClasses ||
@@ -2587,7 +2579,7 @@ void ClassDef::mergeMembers()
//static bool optimizeOutputForJava = Config_getBool("OPTIMIZE_OUTPUT_JAVA");
//static bool vhdlOpt = Config_getBool("OPTIMIZE_OUTPUT_VHDL");
SrcLangExt lang = getLanguage();
- QCString sep=getLanguageSpecificSeparator(lang);
+ QCString sep=getLanguageSpecificSeparator(lang,TRUE);
int sepLen = sep.length();
m_impl->membersMerged=TRUE;
diff --git a/src/classdef.h b/src/classdef.h
index fb37e0b..205b437 100644
--- a/src/classdef.h
+++ b/src/classdef.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/classlist.cpp b/src/classlist.cpp
index cb52541..b85b178 100644
--- a/src/classlist.cpp
+++ b/src/classlist.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/classlist.h b/src/classlist.h
index b54d510..9b76c39 100644
--- a/src/classlist.h
+++ b/src/classlist.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/cmdmapper.cpp b/src/cmdmapper.cpp
index b42ca4b..5b47db5 100644
--- a/src/cmdmapper.cpp
+++ b/src/cmdmapper.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/cmdmapper.h b/src/cmdmapper.h
index b2950ce..8ff3b22 100644
--- a/src/cmdmapper.h
+++ b/src/cmdmapper.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/code.h b/src/code.h
index 982d829..f811f55 100644
--- a/src/code.h
+++ b/src/code.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/code.l b/src/code.l
index 6c9bcef..46e881b 100644
--- a/src/code.l
+++ b/src/code.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -34,6 +34,7 @@
#include "util.h"
#include "membername.h"
#include "searchindex.h"
+#include "arguments.h"
#define YY_NEVER_INTERACTIVE 1
@@ -546,10 +547,10 @@ static void nextCodeLine()
/*! write a code fragment `text' that may span multiple lines, inserting
* line numbers for each line.
*/
-static void codifyLines(char *text)
+static void codifyLines(const char *text)
{
//printf("codifyLines(%d,\"%s\")\n",g_yyLineNr,text);
- char *p=text,*sp=p;
+ const char *p=text,*sp=p;
char c;
bool done=FALSE;
while (!done)
@@ -559,8 +560,13 @@ static void codifyLines(char *text)
if (c=='\n')
{
g_yyLineNr++;
- *(p-1)='\0';
- g_code->codify(sp);
+ //*(p-1)='\0';
+ int l = p-sp-1;
+ char *tmp = (char*)malloc(l+1);
+ memcpy(tmp,sp,l);
+ tmp[l]='\0';
+ g_code->codify(tmp);
+ free(tmp);
nextCodeLine();
}
else
@@ -874,6 +880,7 @@ static bool getLinkInScope(const QCString &c, // scope
if (getDefs(c,m,"()",md,cd,fd,nd,gd,FALSE,g_sourceFileDef,FALSE,g_forceTagReference) &&
md->isLinkable() && (!varOnly || md->isVariable()))
{
+ //printf("found it!\n");
if (g_exampleBlock)
{
QCString anchor;
@@ -939,7 +946,7 @@ static bool getLink(const char *className,
return TRUE;
}
-static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
+static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName,
bool typeOnly=FALSE,bool varOnly=FALSE)
{
int i=0;
@@ -954,6 +961,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
{
className+="-p";
}
+ className = substitute(className,"\\","::"); // for PHP namespaces
ClassDef *cd=0,*lcd=0;
MemberDef *md=0;
bool isLocal=FALSE;
@@ -1277,7 +1285,18 @@ static void generateMemberLink(CodeOutputInterface &ol,const QCString &varName,
return;
}
-static void generateFunctionLink(CodeOutputInterface &ol,char *funcName)
+static void generatePHPVariableLink(CodeOutputInterface &ol,const char *varName)
+{
+ QCString name = varName+7; // strip $this->
+ name.prepend("$");
+ //printf("generatePHPVariableLink(%s) name=%s scope=%s\n",varName,name.data(),g_classScope.data());
+ if (!getLink(g_classScope,name,ol,varName))
+ {
+ codifyLines(varName);
+ }
+}
+
+static void generateFunctionLink(CodeOutputInterface &ol,const char *funcName)
{
//CodeClassDef *ccd=0;
ClassDef *ccd=0;
@@ -2105,6 +2124,8 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
}
<ClassName>{ID}("\\"{ID})* { // PHP namespace
g_curClassName=substitute(yytext,"\\","::");
+ g_scopeStack.push(CLASSBLOCK);
+ pushScope(g_curClassName);
addType();
generateClassOrGlobalLink(*g_code,yytext);
BEGIN( ClassVar );
@@ -2204,8 +2225,8 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
g_code->codify(yytext);
endFontClass();
}
-<Bases>{ID} {
- //printf("%s:addBase(%s)\n",g_ccd.name.data(),yytext);
+<Bases>{SEP}?({ID}{SEP})*{ID} {
+ //fprintf(stderr,"%s:addBase(%s)\n",g_curClassName.data(),yytext);
g_curClassBases.inSort(yytext);
generateClassOrGlobalLink(*g_code,yytext);
}
@@ -2421,6 +2442,11 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
g_lastTemplCastContext = YY_START;
BEGIN(TemplCast);
}
+<Body>"$this->"{SCOPENAME}/{BN}*[;,)\]] { // PHP member variable
+ addType();
+ generatePHPVariableLink(*g_code,yytext);
+ g_name+=yytext+7;
+ }
<Body,TemplCast>{SCOPENAME}{B}*"<"[^\n\/\-\.\{\"\>]*">"("::"{ID})*/{B}* { // A<T> *pt;
int i=QCString(yytext).find('<');
QCString kw = QCString(yytext).left(i).stripWhiteSpace();
diff --git a/src/commentcnv.h b/src/commentcnv.h
index ae113a3..5277524 100644
--- a/src/commentcnv.h
+++ b/src/commentcnv.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/commentcnv.l b/src/commentcnv.l
index fa392bf..1ae07c0 100644
--- a/src/commentcnv.l
+++ b/src/commentcnv.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/commentscan.h b/src/commentscan.h
index a34dfc7..41cf766 100644
--- a/src/commentscan.h
+++ b/src/commentscan.h
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/commentscan.l b/src/commentscan.l
index 85b378a..966183d 100644
--- a/src/commentscan.l
+++ b/src/commentscan.l
@@ -1,6 +1,6 @@
/*****************************************************************************
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -109,6 +109,7 @@ static bool handleProtected(const QCString &);
static bool handleProtectedSection(const QCString &);
static bool handlePublic(const QCString &s);
static bool handlePublicSection(const QCString &s);
+static bool handleToc(const QCString &s);
static bool handleInherit(const QCString &);
static bool handleExtends(const QCString &);
static bool handleCopyDoc(const QCString &);
@@ -203,6 +204,7 @@ static DocCmdMap docCmdMap[] =
{ "protectedsection",&handleProtectedSection, FALSE },
{ "public", &handlePublic, FALSE },
{ "publicsection", &handlePublicSection, FALSE },
+ { "tableofcontents", &handleToc, FALSE },
{ "inherit", &handleInherit, TRUE },
{ "extends", &handleExtends, TRUE },
{ "implements", &handleExtends, TRUE },
@@ -590,9 +592,9 @@ static QCString addFormula()
formLabel.sprintf("\\form#%d",f->getId());
}
int i;
- for (i=0;i<formulaNewLines;i++) formLabel+="\\_fakenl"; // add fake newlines to
- // keep the warnings
- // correctly aligned.
+ for (i=0;i<formulaNewLines;i++) formLabel+="@_fakenl"; // add fake newlines to
+ // keep the warnings
+ // correctly aligned.
return formLabel;
}
@@ -2560,6 +2562,16 @@ static bool handlePublicSection(const QCString &)
return FALSE;
}
+static bool handleToc(const QCString &)
+{
+ if (current->section==Entry::PAGEDOC_SEC ||
+ current->section==Entry::MAINPAGEDOC_SEC)
+ {
+ current->stat=TRUE; // we 'abuse' stat to pass whether or the TOC is enabled
+ }
+ return FALSE;
+}
+
static bool handleInherit(const QCString &)
{
BEGIN(InheritParam);
diff --git a/src/config.h b/src/config.h
index ffa912f..ccbf713 100644
--- a/src/config.h
+++ b/src/config.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/config.l b/src/config.l
index ee535e9..2e23ea1 100644
--- a/src/config.l
+++ b/src/config.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/config.xml b/src/config.xml
index adbb326..20eb5ac 100644
--- a/src/config.xml
+++ b/src/config.xml
@@ -355,6 +355,10 @@ the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
If the EXTRACT_PRIVATE tag is set to YES all private members of a class
will be included in the documentation.
' defval='0'/>
+ <option type='bool' id='EXTRACT_PACKAGE' docs='
+If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
+scope will be included in the documentation.
+' defval='0'/>
<option type='bool' id='EXTRACT_STATIC' docs='
If the EXTRACT_STATIC tag is set to YES all static members of a file
will be included in the documentation.
@@ -1084,7 +1088,7 @@ Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
(see http://www.mathjax.org) which uses client side Javascript for the
rendering instead of using prerendered bitmaps. Use this if you do not
have LaTeX installed or if you want to formulas look prettier in the HTML
-output. When enabled you also need to install MathJax separately and
+output. When enabled you may also need to install MathJax separately and
configure the path to it using the MATHJAX_RELPATH option.
' defval='0'/>
<option type='string' id='MATHJAX_RELPATH' docs='
@@ -1092,11 +1096,11 @@ When MathJax is enabled you need to specify the location relative to the
HTML output directory using the MATHJAX_RELPATH option. The destination
directory should contain the MathJax.js script. For instance, if the mathjax
directory is located at the same level as the HTML output directory, then
-MATHJAX_RELPATH should be ../mathjax. The default value points to the
-mathjax.org site, so you can quickly see the result without installing
-MathJax, but it is strongly recommended to install a local copy of MathJax
-before deployment.
-' defval='http://www.mathjax.org/mathjax'/>
+MATHJAX_RELPATH should be ../mathjax. The default value points to
+the MathJax Content Delivery Network so you can quickly see the result without
+installing MathJax. However, it is strongly recommended to install a local
+copy of MathJax from http://www.mathjax.org before deployment.
+' defval='http://cdn.mathjax.org/mathjax/latest'/>
<option type='list' id='MATHJAX_EXTENSIONS' format='string' docs='
The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
names that should be enabled during MathJax rendering.
@@ -1493,6 +1497,14 @@ If the UML_LOOK tag is set to YES doxygen will generate inheritance and
collaboration diagrams in a style similar to the OMG&apos;s Unified Modeling
Language.
' defval='0' depends='HAVE_DOT'/>
+ <option type='int' id='UML_LIMIT_NUM_FIELDS' docs='
+If the UML_LOOK tag is enabled, the fields and methods are shown inside
+the class node. If there are many fields or methods and many nodes the
+graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS
+threshold limits the number of items for each type to make the size more
+managable. Set this to 0 for no limit. Note that the threshold may be
+exceeded by 50% before the limit is enforced.
+' defval='10' minval='0' maxval='100' depends='HAVE_DOT'/>
<option type='bool' id='TEMPLATE_RELATIONS' docs='
If set to YES, the inheritance and collaboration graphs will show the
relations between templates and their instances.
diff --git a/src/configgen.py b/src/configgen.py
index f567127..2b06d9e 100755
--- a/src/configgen.py
+++ b/src/configgen.py
@@ -1,6 +1,6 @@
# python script to generate configoptions.cpp from config.xml
#
-# Copyright (C) 1997-2008 by Dimitri van Heesch.
+# Copyright (C) 1997-2012 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/src/configoptions.cpp b/src/configoptions.cpp
index e211418..d34de2a 100644
--- a/src/configoptions.cpp
+++ b/src/configoptions.cpp
@@ -500,6 +500,12 @@ void addConfigOptions(Config *cfg)
);
//----
cb = cfg->addBool(
+ "EXTRACT_PACKAGE",
+ "If the EXTRACT_PACKAGE tag is set to YES all members with package or internal scope will be included in the documentation.",
+ FALSE
+ );
+ //----
+ cb = cfg->addBool(
"EXTRACT_STATIC",
"If the EXTRACT_STATIC tag is set to YES all static members of a file\n"
"will be included in the documentation.",
@@ -1596,7 +1602,7 @@ void addConfigOptions(Config *cfg)
"(see http://www.mathjax.org) which uses client side Javascript for the\n"
"rendering instead of using prerendered bitmaps. Use this if you do not\n"
"have LaTeX installed or if you want to formulas look prettier in the HTML\n"
- "output. When enabled you also need to install MathJax separately and\n"
+ "output. When enabled you may also need to install MathJax separately and\n"
"configure the path to it using the MATHJAX_RELPATH option.",
FALSE
);
@@ -1607,12 +1613,13 @@ void addConfigOptions(Config *cfg)
"HTML output directory using the MATHJAX_RELPATH option. The destination\n"
"directory should contain the MathJax.js script. For instance, if the mathjax\n"
"directory is located at the same level as the HTML output directory, then\n"
- "MATHJAX_RELPATH should be ../mathjax. The default value points to the\n"
- "mathjax.org site, so you can quickly see the result without installing\n"
- "MathJax, but it is strongly recommended to install a local copy of MathJax\n"
- "before deployment."
+ "MATHJAX_RELPATH should be ../mathjax. The default value points to\n"
+ "the MathJax Content Delivery Network so you can quickly see the result without\n"
+ "installing MathJax.\n"
+ "However, it is strongly recommended to install a local\n"
+ "copy of MathJax from http://www.mathjax.org before deployment."
);
- cs->setDefaultValue("http://www.mathjax.org/mathjax");
+ cs->setDefaultValue("http://cdn.mathjax.org/mathjax/latest");
//----
cl = cfg->addList(
"MATHJAX_EXTENSIONS",
@@ -2260,6 +2267,18 @@ void addConfigOptions(Config *cfg)
);
cb->addDependency("HAVE_DOT");
//----
+ ci = cfg->addInt(
+ "UML_LIMIT_NUM_FIELDS",
+ "If the UML_LOOK tag is enabled, the fields and methods are shown inside\n"
+ "the class node. If there are many fields or methods and many nodes the\n"
+ "graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS\n"
+ "threshold limits the number of items for each type to make the size more\n"
+ "managable. Set this to 0 for no limit. Note that the threshold may be\n"
+ "exceeded by 50% before the limit is enforced.",
+ 0,100,10
+ );
+ ci->addDependency("HAVE_DOT");
+ //----
cb = cfg->addBool(
"TEMPLATE_RELATIONS",
"If set to YES, the inheritance and collaboration graphs will show the\n"
diff --git a/src/configoptions.h b/src/configoptions.h
index d0b17f7..8bf94d5 100644
--- a/src/configoptions.h
+++ b/src/configoptions.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/constexp.h b/src/constexp.h
index 9f762b8..8fedc34 100644
--- a/src/constexp.h
+++ b/src/constexp.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/constexp.l b/src/constexp.l
index 8ebd10b..fae99cf 100644
--- a/src/constexp.l
+++ b/src/constexp.l
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/constexp.y b/src/constexp.y
index b5fa9d1..c8b35e5 100644
--- a/src/constexp.y
+++ b/src/constexp.y
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/cppvalue.cpp b/src/cppvalue.cpp
index 9df5d2a..69b8be4 100644
--- a/src/cppvalue.cpp
+++ b/src/cppvalue.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/cppvalue.h b/src/cppvalue.h
index c759453..d3e2a1d 100644
--- a/src/cppvalue.h
+++ b/src/cppvalue.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/dbusxmlscanner.cpp b/src/dbusxmlscanner.cpp
index 9cc3d93..51b0a59 100644
--- a/src/dbusxmlscanner.cpp
+++ b/src/dbusxmlscanner.cpp
@@ -26,6 +26,7 @@
#include "message.h"
#include "util.h"
+#include "arguments.h"
// -----------------------------------------------------------------------
// Convenience defines:
diff --git a/src/debug.cpp b/src/debug.cpp
index 1c23737..1c3c1c1 100644
--- a/src/debug.cpp
+++ b/src/debug.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -45,6 +45,7 @@ static LabelMap s_labels[] =
{ "time", Debug::Time },
{ "extcmd", Debug::ExtCmd },
{ "markdown", Debug::Markdown },
+ { "filteroutput", Debug::FilterOutput },
{ 0, (Debug::DebugMask)0 }
};
diff --git a/src/debug.h b/src/debug.h
index 98b80b9..f624628 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -34,7 +34,8 @@ class Debug
PrintTree = 0x00000100,
Time = 0x00000200,
ExtCmd = 0x00000400,
- Markdown = 0x00000800
+ Markdown = 0x00000800,
+ FilterOutput = 0x00001000
};
static void print(DebugMask mask,int prio,const char *fmt,...);
static void setFlag(const char *label);
diff --git a/src/declinfo.h b/src/declinfo.h
index 9562456..a91f5bb 100644
--- a/src/declinfo.h
+++ b/src/declinfo.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/declinfo.l b/src/declinfo.l
index 8bd57b8..746aaae 100644
--- a/src/declinfo.l
+++ b/src/declinfo.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/defargs.h b/src/defargs.h
index aabbf79..b2bc198 100644
--- a/src/defargs.h
+++ b/src/defargs.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/defargs.l b/src/defargs.l
index 86f6484..acada87 100644
--- a/src/defargs.l
+++ b/src/defargs.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -55,6 +55,7 @@
#include "defargs.h"
#include "entry.h"
#include "util.h"
+#include "arguments.h"
#define YY_NEVER_INTERACTIVE 1
diff --git a/src/defgen.cpp b/src/defgen.cpp
index 5a6133e..c3b17ba 100644
--- a/src/defgen.cpp
+++ b/src/defgen.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -28,6 +28,7 @@
#include "defargs.h"
#include "outputgen.h"
#include "dot.h"
+#include "arguments.h"
#include <qdir.h>
#include <qfile.h>
diff --git a/src/defgen.h b/src/defgen.h
index b4a77a5..5b26cd0 100644
--- a/src/defgen.h
+++ b/src/defgen.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/define.cpp b/src/define.cpp
index 9bc9755..e5dd154 100644
--- a/src/define.cpp
+++ b/src/define.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/define.h b/src/define.h
index 2e8a996..b5e4f6e 100644
--- a/src/define.h
+++ b/src/define.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/definition.cpp b/src/definition.cpp
index 4bca129..b917cfe 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -367,7 +367,7 @@ void Definition::addSectionsToIndex()
//printf("Definition::addSectionsToIndex()\n");
SDict<SectionInfo>::Iterator li(*m_impl->sectionDict);
SectionInfo *si;
- int level=0;
+ int level=1;
for (li.toFirst();(si=li.current());++li)
{
if (si->type==SectionInfo::Section ||
@@ -394,13 +394,70 @@ void Definition::addSectionsToIndex()
level = nextLevel;
}
}
- while (level>0)
+ while (level>1)
{
Doxygen::indexList.decContentsDepth();
level--;
}
}
+void Definition::writeToc(OutputList &ol)
+{
+ makeResident();
+ if (m_impl->sectionDict==0) return;
+ ol.pushGeneratorState();
+ ol.disableAllBut(OutputGenerator::Html);
+ ol.writeString("<div class=\"toc\">");
+ ol.writeString("<h3>");
+ ol.writeString(theTranslator->trRTFTableOfContents());
+ ol.writeString("</h3>\n");
+ ol.writeString("<ul>");
+ SDict<SectionInfo>::Iterator li(*m_impl->sectionDict);
+ SectionInfo *si;
+ int level=1;
+ char cs[2];
+ cs[1]='\0';
+ bool inLi[5]={ FALSE, FALSE, FALSE, FALSE };
+ for (li.toFirst();(si=li.current());++li)
+ {
+ if (si->type==SectionInfo::Section ||
+ si->type==SectionInfo::Subsection ||
+ si->type==SectionInfo::Subsubsection ||
+ si->type==SectionInfo::Paragraph)
+ {
+ //printf(" level=%d title=%s\n",level,si->title.data());
+ int nextLevel = (int)si->type;
+ if (nextLevel>level)
+ {
+ ol.writeString("<ul>");
+ }
+ else if (nextLevel<level)
+ {
+ if (inLi[level]) ol.writeString("</li>\n");
+ inLi[level]=FALSE;
+ ol.writeString("</ul>\n");
+ }
+ cs[0]='0'+nextLevel;
+ if (inLi[nextLevel]) ol.writeString("</li>\n");
+ ol.writeString("<li class=\"level"+QCString(cs)+"\"><a href=\"#"+si->label+"\">"+si->title+"</a>");
+ inLi[nextLevel]=TRUE;
+ level = nextLevel;
+ }
+ }
+ while (level>1)
+ {
+ if (inLi[level]) ol.writeString("</li>\n");
+ inLi[level]=FALSE;
+ ol.writeString("</ul>\n");
+ level--;
+ }
+ if (inLi[level]) ol.writeString("</li>\n");
+ inLi[level]=FALSE;
+ ol.writeString("</ul>\n");
+ ol.writeString("</div>\n");
+ ol.popGeneratorState();
+}
+
void Definition::writeDocAnchorsToTagFile()
{
makeResident();
@@ -679,7 +736,7 @@ static bool readCodeFragment(const char *fileName,
cn=fgetc(f);
if (cn!=':') found=TRUE;
}
- else if (c=='{')
+ else if (c=='{') // } so vi matching brackets has no problem
{
found=TRUE;
}
@@ -743,6 +800,8 @@ static bool readCodeFragment(const char *fileName,
if (usePipe)
{
portable_pclose(f);
+ Debug::print(Debug::FilterOutput, 0, "Filter output\n");
+ Debug::print(Debug::FilterOutput,0,"-------------\n%s\n-------------\n",result.data());
}
else
{
diff --git a/src/definition.h b/src/definition.h
index c07eb3e..e09a478 100644
--- a/src/definition.h
+++ b/src/definition.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -330,6 +330,7 @@ class Definition : public DefinitionIntf, public LockableObj
void setLocalName(const QCString name);
void addSectionsToIndex();
+ void writeToc(OutputList &ol);
protected:
diff --git a/src/diagram.cpp b/src/diagram.cpp
index 487e44a..c40002c 100644
--- a/src/diagram.cpp
+++ b/src/diagram.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/diagram.h b/src/diagram.h
index b2dacb3..3e2cac2 100644
--- a/src/diagram.h
+++ b/src/diagram.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -17,7 +17,7 @@
*/
#include "qtbc.h"
-#include "entry.h"
+#include "types.h"
class ClassDef;
class DiagramRow;
diff --git a/src/dirdef.cpp b/src/dirdef.cpp
index 05ab52f..c2739f2 100644
--- a/src/dirdef.cpp
+++ b/src/dirdef.cpp
@@ -22,6 +22,7 @@ DirDef::DirDef(const char *path) : Definition(path,1,path)
m_dispName = stripFromPath(path);
// get short name (last part of path)
m_shortName = path;
+ m_diskName = path;
if (m_shortName.at(m_shortName.length()-1)=='/')
{ // strip trailing /
m_shortName = m_shortName.left(m_shortName.length()-1);
@@ -105,8 +106,9 @@ static QCString encodeDirName(const QCString &anchor)
QCString DirDef::getOutputFileBase() const
{
- return "dir_"+encodeDirName(name());
- //return QCString().sprintf("dir_%06d",m_dirCount);
+ //printf("DirDef::getOutputFileBase() %s->dir_%s\n",
+ // m_diskName.data(),encodeDirName(m_diskName).data());
+ return "dir_"+encodeDirName(m_diskName);
}
void DirDef::writeDetailedDescription(OutputList &ol,const QCString &title)
@@ -737,6 +739,86 @@ void DirRelation::writeDocumentation(OutputList &ol)
//----------------------------------------------------------------------
// external functions
+/** In order to create stable, but unique directory names,
+ * we compute the common part of the path shared by all directories.
+ */
+static void computeCommonDirPrefix()
+{
+ QCString path;
+ DirDef *dir;
+ DirSDict::Iterator sdi(*Doxygen::directories);
+ if (Doxygen::directories->count()>0) // we have at least one dir
+ {
+ // start will full path of first dir
+ sdi.toFirst();
+ dir=sdi.current();
+ path=dir->name();
+ int i=path.findRev('/',path.length()-2);
+ path=path.left(i+1);
+ bool done=FALSE;
+ if (i==-1)
+ {
+ path="";
+ }
+ else
+ {
+ while (!done)
+ {
+ int l = path.length();
+ int count=0;
+ for (sdi.toFirst();(dir=sdi.current());++sdi)
+ {
+ QCString dirName = dir->name();
+ if (dirName.length()>path.length())
+ {
+ if (strncmp(dirName,path,l)!=0) // dirName does not start with path
+ {
+ int i=path.findRev('/',l-2);
+ if (i==-1) // no unique prefix -> stop
+ {
+ path="";
+ done=TRUE;
+ }
+ else // restart with shorter path
+ {
+ path=path.left(i+1);
+ break;
+ }
+ }
+ }
+ else // dir is shorter than path -> take path of dir as new start
+ {
+ path=dir->name();
+ int i=path.findRev('/',l-2);
+ if (i==-1) // no unique prefix -> stop
+ {
+ path="";
+ done=TRUE;
+ }
+ else // restart with shorter path
+ {
+ path=path.left(i+1);
+ }
+ break;
+ }
+ count++;
+ }
+ if (count==Doxygen::directories->count())
+ // path matches for all directories -> found the common prefix
+ {
+ done=TRUE;
+ }
+ }
+ }
+ }
+ for (sdi.toFirst();(dir=sdi.current());++sdi)
+ {
+ QCString diskName = dir->name().right(dir->name().length()-path.length());
+ dir->setDiskName(diskName);
+ //printf("set disk name: %s -> %s\n",dir->name().data(),diskName.data());
+ }
+}
+
void buildDirectories()
{
// for each input file
@@ -786,6 +868,7 @@ void buildDirectories()
}
}
}
+ computeCommonDirPrefix();
}
void computeDirDependencies()
diff --git a/src/dirdef.h b/src/dirdef.h
index 445e3ff..e7a6b0e 100644
--- a/src/dirdef.h
+++ b/src/dirdef.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -74,6 +74,7 @@ class DirDef : public Definition
static DirDef *mergeDirectoryInTree(const QCString &path);
bool visited;
+ void setDiskName(const QCString &name) { m_diskName = name; }
private:
friend void computeDirDependencies();
@@ -96,6 +97,7 @@ class DirDef : public Definition
DirList m_subdirs;
QCString m_dispName;
QCString m_shortName;
+ QCString m_diskName;
FileList *m_fileList; // list of files in the group
int m_dirCount;
int m_level;
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 526e349..12b6e1c 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -42,6 +42,7 @@
#include "language.h"
#include "portable.h"
#include "cite.h"
+#include "arguments.h"
// debug off
#define DBG(x) do {} while(0)
diff --git a/src/docparser.h b/src/docparser.h
index 1e7f7d8..bc42389 100644
--- a/src/docparser.h
+++ b/src/docparser.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/docsets.cpp b/src/docsets.cpp
index 7a6ff9d..272ed69 100644
--- a/src/docsets.cpp
+++ b/src/docsets.cpp
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/docsets.h b/src/docsets.h
index 4a13d88..97457f6 100644
--- a/src/docsets.h
+++ b/src/docsets.h
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/doctokenizer.h b/src/doctokenizer.h
index f86020a..e5ae26a 100644
--- a/src/doctokenizer.h
+++ b/src/doctokenizer.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/doctokenizer.l b/src/doctokenizer.l
index c9e5756..a183377 100644
--- a/src/doctokenizer.l
+++ b/src/doctokenizer.l
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -322,6 +322,7 @@ NONWS [^ \t\r\n]
BLANK [ \t\r]
ID "$"?[a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]*
LABELID [a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF\-]*
+PHPTYPE [\\:a-z_A-Z0-9\x80-\xFF\-]+
CITEID [a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF\-:/]*
MAILADR ("mailto:")?[a-z_A-Z0-9.+-]+"@"[a-z_A-Z0-9-]+("."[a-z_A-Z0-9\-]+)+[a-z_A-Z0-9\-]+
OPTSTARS ("//"{BLANK}*)?"*"*{BLANK}*
@@ -518,7 +519,7 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}
g_token->name = "inheritdoc";
return TK_COMMAND;
}
-<St_Para>"\\_fakenl" { // artificial new line
+<St_Para>"@_fakenl" { // artificial new line
yylineno++;
}
<St_Para>{SPCMD3} {
@@ -958,7 +959,7 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}
g_token->name = g_token->name.left(yyleng-2);
return TK_WORD;
}
-<St_Param>({LABELID}"|")*{LABELID}{WS}+("&")?"$"{LABELID} {
+<St_Param>({PHPTYPE}{BLANK}*"|"{BLANK}*)*{PHPTYPE}{WS}+("&")?"$"{LABELID} {
QCString params = yytext;
int j = params.find('&');
int i = params.find('$');
diff --git a/src/docvisitor.h b/src/docvisitor.h
index 057da5f..c9acf64 100644
--- a/src/docvisitor.h
+++ b/src/docvisitor.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/dot.cpp b/src/dot.cpp
index f3e524d..62d1831 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -115,6 +115,13 @@ static const char svgZoomFooter[] =
" <path fill=\"none\" stroke=\"white\" stroke-width=\"1.5\" d=\"M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5\"/>\n"
" </g>\n"
" </g>\n"
+" <svg viewBox=\"0 0 25 25\" width=\"100%\" height=\"30px\" preserveAspectRatio=\"xMaxYMin meet\"> \n"
+" <g id=\"printButton\" transform=\"scale(0.4 0.4)\" onmousedown=\"handlePrint(evt)\">\n"
+" <rect height=\"23.33753581\" id=\"paper\" rx=\"2\" style=\"fill:#f2f5e9;fill-rule:evenodd;stroke:#111111;stroke-width:3.224;stroke-linejoin:round;\" transform=\"matrix(1.000000,0.000000,-0.339266,0.940691,0.000000,0.000000)\" width=\"25.55231285\" x=\"26.69387353\" y=\"7.36162977\"/>\n"
+" <rect height=\"26.272097\" id=\"body\" rx=\"2\" style=\"fill:#404040;fill-rule:evenodd;stroke:#111111;stroke-width:3.125;stroke-linejoin:round;\" width=\"50\" x=\"4.5295201\" y=\"27.078951\"/>\n"
+" <rect height=\"8.27750969\" id=\"tray\" style=\"fill:#d2d5c9;fill-rule:evenodd;stroke:#111111;stroke-width:3.125;stroke-linecap:round;stroke-linejoin:round;\" width=\"40\" x=\"10.28778839\" y=\"44.96812282\"/>\n"
+" </g>\n"
+" </svg>\n"
"</svg>\n"
;
@@ -1540,7 +1547,8 @@ static void writeBoxMemberList(FTextStream &t,
if (mma->getClassDef() == scope &&
(skipNames==0 || skipNames->find(mma->name())==0))
{
- if (totalCount>=15 && count>=10)
+ static int limit = Config_getInt("UML_LIMIT_NUM_FIELDS");
+ if (limit==0 || (totalCount>=limit*3/2 && count>=limit))
{
t << "and " << (totalCount-count-1) << " more...";
// TODO: TRANSLATE ME
diff --git a/src/dot.h b/src/dot.h
index 1ea1f66..e4acd5a 100644
--- a/src/dot.h
+++ b/src/dot.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/doxygen.cpp b/src/doxygen.cpp
index 34fe2d1..98f076b 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -82,6 +82,7 @@
#include "cite.h"
#include "filestorage.h"
#include "markdown.h"
+#include "arguments.h"
#include "layout.h"
@@ -507,6 +508,7 @@ static void addRelatedPage(EntryNav *rootNav)
if (pd)
{
pd->addSectionsToDefinition(root->anchors);
+ pd->setShowToc(root->stat);
addPageToContext(pd,rootNav);
}
}
@@ -898,7 +900,7 @@ static Definition *findScope(Entry *root,int level=0)
* full qualified name \a name. Creates an artificial scope if the scope is
* not found and set the parent/child scope relation if the scope is found.
*/
-static Definition *buildScopeFromQualifiedName(const QCString name,int level)
+static Definition *buildScopeFromQualifiedName(const QCString name,int level,SrcLangExt lang)
{
int i=0;
int p=0,l;
@@ -922,9 +924,10 @@ static Definition *buildScopeFromQualifiedName(const QCString name,int level)
else if (nd==0 && cd==0) // scope is not known!
{
// introduce bogus namespace
- printf("++ adding dummy namespace %s to %s\n",nsName.data(),prevScope->name().data());
+ //printf("++ adding dummy namespace %s to %s\n",nsName.data(),prevScope->name().data());
nd=new NamespaceDef(
"[generated]",1,fullScope);
+ nd->setLanguage(lang);
// add namespace to the list
Doxygen::namespaceSDict->inSort(fullScope,nd);
@@ -1010,7 +1013,7 @@ static Definition *findScopeFromQualifiedName(Definition *startScope,const QCStr
// so use this instead.
QCString fqn = QCString(ui.currentKey())+
scope.right(scope.length()-p);
- resultScope = buildScopeFromQualifiedName(fqn,fqn.contains("::"));
+ resultScope = buildScopeFromQualifiedName(fqn,fqn.contains("::"),startScope->getLanguage());
//printf("Creating scope from fqn=%s result %p\n",fqn.data(),resultScope);
if (resultScope)
{
@@ -1322,7 +1325,7 @@ static void resolveClassNestingRelations()
//printf("processing unresolved=%s, iteration=%d\n",cd->name().data(),iteration);
/// create the scope artificially
// anyway, so we can at least relate scopes properly.
- Definition *d = buildScopeFromQualifiedName(name,name.contains("::"));
+ Definition *d = buildScopeFromQualifiedName(name,name.contains("::"),cd->getLanguage());
if (d!=cd && !cd->getDefFileName().isEmpty())
// avoid recursion in case of redundant scopes, i.e: namespace N { class N::C {}; }
// for this case doxygen assumes the exitance of a namespace N::N in which C is to be found!
@@ -1641,7 +1644,7 @@ static void buildNamespaceList(EntryNav *rootNav)
if (d==0) // we didn't find anything, create the scope artificially
// anyway, so we can at least relate scopes properly.
{
- Definition *d = buildScopeFromQualifiedName(fullName,fullName.contains("::"));
+ Definition *d = buildScopeFromQualifiedName(fullName,fullName.contains("::"),nd->getLanguage());
d->addInnerCompound(nd);
nd->setOuterScope(d);
// TODO: Due to the order in which the tag file is written
@@ -3186,7 +3189,7 @@ static void buildFunctionList(EntryNav *rootNav)
)
);
// otherwise, allow a duplicate global member with the same argument list
- if (!found && gd && gd==md->getGroupDef())
+ if (!found && gd && gd==md->getGroupDef() && nsName==rnsName)
{
// member is already in the group, so we don't want to add it again.
found=TRUE;
@@ -4749,8 +4752,8 @@ static void computeClassRelations()
if (!root->name.isEmpty() && root->name.find('@')==-1 && // normal name
(guessSection(root->fileName)==Entry::HEADER_SEC ||
Config_getBool("EXTRACT_LOCAL_CLASSES")) && // not defined in source file
- (root->protection!=Private || Config_getBool("EXTRACT_PRIVATE")) && // hidden by protection
- !Config_getBool("HIDE_UNDOC_CLASSES") // undocumented class are visible
+ protectionLevelVisible(root->protection) && // hidden by protection
+ !Config_getBool("HIDE_UNDOC_CLASSES") // undocumented class are visible
)
warn_undoc(
root->fileName,root->startLine,
@@ -8224,6 +8227,7 @@ static void findMainPage(EntryNav *rootNav)
indexName, root->brief+root->doc+root->inbodyDocs,title);
//setFileNameForSections(root->anchors,"index",Doxygen::mainPage);
Doxygen::mainPage->setFileName(indexName);
+ Doxygen::mainPage->setShowToc(root->stat);
addPageToContext(Doxygen::mainPage,rootNav);
// a page name is a label as well!
@@ -9274,7 +9278,7 @@ void dumpConfigAsXML()
static void usage(const char *name)
{
- msg("Doxygen version %s\nCopyright Dimitri van Heesch 1997-2011\n\n",versionString);
+ msg("Doxygen version %s\nCopyright Dimitri van Heesch 1997-2012\n\n",versionString);
msg("You can use doxygen in a number of ways:\n\n");
msg("1) Use doxygen to generate a template configuration file:\n");
msg(" %s [-s] -g [configName]\n\n",name);
diff --git a/src/doxygen.css b/src/doxygen.css
index b146398..30b6261 100644
--- a/src/doxygen.css
+++ b/src/doxygen.css
@@ -802,7 +802,8 @@ dl
padding: 0 0 0 10px;
}
-dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
{
border-left:4px solid;
padding: 0 0 0 6px;
@@ -843,6 +844,11 @@ dl.bug
border-color: #C08050;
}
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+
#projectlogo
{
text-align: center;
@@ -926,6 +932,55 @@ dl.citelist dd {
padding:5px 0;
}
+div.toc {
+ padding: 14px 25px;
+ background-color: ##F6;
+ border: 1px solid ##DD;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 20px 10px 10px;
+ width: 200px;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: ##60;
+ border-bottom: 0 none;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
+
@media print
{
#top { display: none; }
diff --git a/src/doxygen.h b/src/doxygen.h
index b06d205..0e436ec 100644
--- a/src/doxygen.h
+++ b/src/doxygen.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/doxygen.pro.in b/src/doxygen.pro.in
index d3e6459..42ffaa0 100644
--- a/src/doxygen.pro.in
+++ b/src/doxygen.pro.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2011 by Dimitri van Heesch.
+# Copyright (C) 1997-2012 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/src/doxygen_css.h b/src/doxygen_css.h
index 15c68da..a3e3589 100644
--- a/src/doxygen_css.h
+++ b/src/doxygen_css.h
@@ -802,7 +802,8 @@
" padding: 0 0 0 10px;\n"
"}\n"
"\n"
-"dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug\n"
+"/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */\n"
+"dl.section\n"
"{\n"
" border-left:4px solid;\n"
" padding: 0 0 0 6px;\n"
@@ -843,6 +844,11 @@
" border-color: #C08050;\n"
"}\n"
"\n"
+"dl.section dd {\n"
+" margin-bottom: 6px;\n"
+"}\n"
+"\n"
+"\n"
"#projectlogo\n"
"{\n"
" text-align: center;\n"
@@ -926,6 +932,55 @@
" padding:5px 0;\n"
"}\n"
"\n"
+"div.toc {\n"
+" padding: 14px 25px;\n"
+" background-color: ##F6;\n"
+" border: 1px solid ##DD;\n"
+" border-radius: 7px 7px 7px 7px;\n"
+" float: right;\n"
+" height: auto;\n"
+" margin: 0 20px 10px 10px;\n"
+" width: 200px;\n"
+"}\n"
+"\n"
+"div.toc li {\n"
+" background: url(\"bdwn.png\") no-repeat scroll 0 5px transparent;\n"
+" font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;\n"
+" margin-top: 5px;\n"
+" padding-left: 10px;\n"
+" padding-top: 2px;\n"
+"}\n"
+"\n"
+"div.toc h3 {\n"
+" font: bold 12px/1.2 Arial,FreeSans,sans-serif;\n"
+" color: ##60;\n"
+" border-bottom: 0 none;\n"
+" margin: 0;\n"
+"}\n"
+"\n"
+"div.toc ul {\n"
+" list-style: none outside none;\n"
+" border: medium none;\n"
+" padding: 0px;\n"
+"} \n"
+"\n"
+"div.toc li.level1 {\n"
+" margin-left: 0px;\n"
+"}\n"
+"\n"
+"div.toc li.level2 {\n"
+" margin-left: 15px;\n"
+"}\n"
+"\n"
+"div.toc li.level3 {\n"
+" margin-left: 30px;\n"
+"}\n"
+"\n"
+"div.toc li.level4 {\n"
+" margin-left: 45px;\n"
+"}\n"
+"\n"
+"\n"
"@media print\n"
"{\n"
" #top { display: none; }\n"
diff --git a/src/eclipsehelp.cpp b/src/eclipsehelp.cpp
index 9f708bc..ea05885 100644
--- a/src/eclipsehelp.cpp
+++ b/src/eclipsehelp.cpp
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/eclipsehelp.h b/src/eclipsehelp.h
index 7be3502..0629810 100644
--- a/src/eclipsehelp.h
+++ b/src/eclipsehelp.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/entry.cpp b/src/entry.cpp
index 8741ec2..01c9742 100644
--- a/src/entry.cpp
+++ b/src/entry.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -23,6 +23,7 @@
#include "section.h"
#include "doxygen.h"
#include "filestorage.h"
+#include "arguments.h"
//------------------------------------------------------------------
@@ -30,23 +31,6 @@
//------------------------------------------------------------------
-/*! the argument list is documented if one of its
- * arguments is documented
- */
-bool ArgumentList::hasDocumentation() const
-{
- bool hasDocs=FALSE;
- ArgumentListIterator ali(*this);
- Argument *a;
- for (ali.toFirst();!hasDocs && (a=ali.current());++ali)
- {
- hasDocs = a->hasDocumentation();
- }
- return hasDocs;
-}
-
-//------------------------------------------------------------------
-
int Entry::num=0;
Entry::Entry()
diff --git a/src/entry.h b/src/entry.h
index b9a91df..63ddc5a 100644
--- a/src/entry.h
+++ b/src/entry.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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,9 +20,9 @@
#include "qtbc.h"
#include <qlist.h>
+#include "types.h"
#include <qgstring.h>
-#include "util.h"
struct SectionInfo;
class QFile;
@@ -30,18 +30,8 @@ class EntryNav;
class FileDef;
class FileStorage;
class StorageIntf;
-
-enum Protection { Public, Protected, Private, Package } ;
-enum Specifier { Normal, Virtual, Pure } ;
-enum MethodTypes { Method, Signal, Slot, DCOP, Property, Event };
-enum RelatesType { Simple, Duplicate, MemberOf };
-enum Relationship { Member, Related, Foreign };
-
-struct ListItemInfo
-{
- QCString type;
- int itemId;
-};
+class ArgumentList;
+class ListItemInfo;
/*! \brief This class stores information about an inheritance relation
*/
@@ -55,83 +45,6 @@ struct BaseInfo
Specifier virt; //!< virtualness
};
-/*! \brief This class contains the information about the argument of a
- * function or template
- *
- */
-struct Argument
-{
- /*! Construct a new argument. */
- Argument() {}
- /*! Copy an argument (does a deep copy of all strings). */
- Argument(const Argument &a)
- {
- attrib=a.attrib.copy();
- type=a.type.copy();
- name=a.name.copy();
- defval=a.defval.copy();
- docs=a.docs.copy();
- array=a.array.copy();
- }
- /*! Assignment of an argument (does a deep copy of all strings). */
- Argument &operator=(const Argument &a)
- {
- if (this!=&a)
- {
- attrib=a.attrib.copy();
- type=a.type.copy();
- name=a.name.copy();
- defval=a.defval.copy();
- docs=a.docs.copy();
- array=a.array.copy();
- }
- return *this;
- }
- /*! return TRUE if this argument is documentation and the argument has a
- * non empty name.
- */
- bool hasDocumentation() const
- {
- return !name.isEmpty() && !docs.isEmpty();
- }
-
- QCString attrib; /*!< Argument's attribute (IDL only) */
- QCString type; /*!< Argument's type */
- QCString canType; /*!< Cached value of canonical type (after type resolution). Empty initially. */
- QCString name; /*!< Argument's name (may be empty) */
- QCString array; /*!< Argument's array specifier (may be empty) */
- QCString defval; /*!< Argument's default value (may be empty) */
- QCString docs; /*!< Argument's documentation (may be empty) */
-};
-
-/*! \brief This class represents an function or template argument list.
- *
- * This class also stores some information about member that is typically
- * put after the argument list, such as wether the member is const,
- * volatile or pure virtual.
- */
-class ArgumentList : public QList<Argument>
-{
- public:
- /*! Creates an empty argument list */
- ArgumentList() : QList<Argument>(),
- constSpecifier(FALSE),
- volatileSpecifier(FALSE),
- pureSpecifier(FALSE)
- { setAutoDelete(TRUE); }
- /*! Destroys the argument list */
- ~ArgumentList() {}
- bool hasDocumentation() const;
- /*! Does the member modify the state of the class? default: FALSE. */
- bool constSpecifier;
- /*! Is the member volatile? default: FALSE. */
- bool volatileSpecifier;
- /*! Is this a pure virtual member? default: FALSE */
- bool pureSpecifier;
-};
-
-typedef QListIterator<Argument> ArgumentListIterator;
-
/*! \brief This struct is used to capture the tag file information
* for an Entry.
*/
@@ -142,43 +55,6 @@ struct TagInfo
QCString anchor;
};
-struct Grouping
-{
- enum GroupPri_t
- {
- GROUPING_LOWEST,
- GROUPING_AUTO_WEAK =
- GROUPING_LOWEST, //!< membership in group was defined via \@weakgroup
- GROUPING_AUTO_ADD, //!< membership in group was defined via \@add[to]group
- GROUPING_AUTO_DEF, //!< membership in group was defined via \@defgroup
- GROUPING_AUTO_HIGHEST = GROUPING_AUTO_DEF,
- GROUPING_INGROUP, //!< membership in group was defined by \@ingroup
- GROUPING_HIGHEST = GROUPING_INGROUP
- };
-
- static const char *getGroupPriName( GroupPri_t priority )
- {
- switch( priority )
- {
- case GROUPING_AUTO_WEAK:
- return "@weakgroup";
- case GROUPING_AUTO_ADD:
- return "@addtogroup";
- case GROUPING_AUTO_DEF:
- return "@defgroup";
- case GROUPING_INGROUP:
- return "@ingroup";
- }
- return "???";
- }
-
- Grouping( const char *gn, GroupPri_t p ) : groupname(gn), pri(p) {}
- Grouping( const Grouping &g ) : groupname(g.groupname), pri(g.pri) {}
- QCString groupname; //!< name of the group
- GroupPri_t pri; //!< priority of this definition
-
-};
-
/*! \brief Represents an unstructured piece of information, about an
* entity found in the sources.
*
diff --git a/src/example.h b/src/example.h
index 745045c..a780326 100644
--- a/src/example.h
+++ b/src/example.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/filedef.cpp b/src/filedef.cpp
index 52c5f0c..e25e04f 100644
--- a/src/filedef.cpp
+++ b/src/filedef.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -36,6 +36,7 @@
#include "vhdldocgen.h"
#include "debug.h"
#include "layout.h"
+#include "entry.h"
//---------------------------------------------------------------------------
diff --git a/src/filedef.h b/src/filedef.h
index 34b6424..08b8480 100644
--- a/src/filedef.h
+++ b/src/filedef.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/filename.cpp b/src/filename.cpp
index 73ca911..dddeeca 100644
--- a/src/filename.cpp
+++ b/src/filename.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/filename.h b/src/filename.h
index f1a563d..29e90c0 100644
--- a/src/filename.h
+++ b/src/filename.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/filestorage.h b/src/filestorage.h
index 17d4498..ddffeda 100644
--- a/src/filestorage.h
+++ b/src/filestorage.h
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/footer.html b/src/footer.html
index d476078..c93cb56 100644
--- a/src/footer.html
+++ b/src/footer.html
@@ -13,4 +13,4 @@ $generatedby &#160;<a href="http://www.doxygen.org/index.html">
</small></address>
<!--END !GENERATE_TREEVIEW-->
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/src/footer_html.h b/src/footer_html.h
index adcf367..86a2e91 100644
--- a/src/footer_html.h
+++ b/src/footer_html.h
@@ -13,4 +13,4 @@
"</small></address>\n"
"<!--END !GENERATE_TREEVIEW-->\n"
"</body>\n"
-"</html>\n" \ No newline at end of file
+"</html>\n"
diff --git a/src/formula.cpp b/src/formula.cpp
index ff93951..adc1d42 100644
--- a/src/formula.cpp
+++ b/src/formula.cpp
@@ -1,7 +1,7 @@
/******************************************************************************
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/formula.h b/src/formula.h
index 79b9e7e..ca68e6e 100644
--- a/src/formula.h
+++ b/src/formula.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/fortrancode.h b/src/fortrancode.h
index d89d846..887fe65 100644
--- a/src/fortrancode.h
+++ b/src/fortrancode.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/fortranscanner.h b/src/fortranscanner.h
index 6557045..392a75d 100644
--- a/src/fortranscanner.h
+++ b/src/fortranscanner.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/fortranscanner.l b/src/fortranscanner.l
index a512647..036769a 100644
--- a/src/fortranscanner.l
+++ b/src/fortranscanner.l
@@ -64,9 +64,12 @@
#include "commentscan.h"
#include "fortrancode.h"
#include "pre.h"
+#include "arguments.h"
#define YY_NEVER_INTERACTIVE 1
+class Arguments;
+
enum ScanVar { V_IGNORE, V_VARIABLE, V_PARAMETER};
enum InterfaceType { IF_NONE, IF_SPECIFIC, IF_GENERIC, IF_ABSTRACT };
@@ -868,14 +871,16 @@ private {
<Variable>";".*"\n" { currentModifiers = SymbolModifiers();
yy_pop_state(); // end variable declaration list
docBlock.resize(0);
- inputStringSemi =(const char*)(yytext+1);
+ inputStringSemi =(const char*)(QCString(" \n") + QCString(yytext+1)).data();
+ yyLineNr--;
pushBuffer(inputStringSemi);
}
<*>";".*"\n" {
if (YY_START == Variable) REJECT; // Just be on the safe side
if (YY_START == String) REJECT; // ";" ignored in strings
if (YY_START == StrIgnore) REJECT; // ";" ignored in regular comments
- inputStringSemi =(const char*)(yytext+1);
+ inputStringSemi =(const char*)(QCString(" \n") + QCString(yytext+1)).data();
+ yyLineNr--;
pushBuffer(inputStringSemi);
}
diff --git a/src/ftvhelp.cpp b/src/ftvhelp.cpp
index a8f9de3..4951b03 100644
--- a/src/ftvhelp.cpp
+++ b/src/ftvhelp.cpp
@@ -1,7 +1,7 @@
/******************************************************************************
* ftvhelp.cpp,v 1.0 2000/09/06 16:09:00
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/ftvhelp.h b/src/ftvhelp.h
index 78e8b7b..89e9e62 100644
--- a/src/ftvhelp.h
+++ b/src/ftvhelp.h
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/groupdef.cpp b/src/groupdef.cpp
index 8452aa2..60f5104 100644
--- a/src/groupdef.cpp
+++ b/src/groupdef.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -36,6 +36,8 @@
#include "dot.h"
#include "vhdldocgen.h"
#include "layout.h"
+#include "arguments.h"
+#include "entry.h"
//---------------------------------------------------------------------------
diff --git a/src/groupdef.h b/src/groupdef.h
index 002b037..a55137f 100644
--- a/src/groupdef.h
+++ b/src/groupdef.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -40,6 +40,7 @@ class PageDef;
class DirDef;
class DirList;
class FTVHelp;
+class Entry;
class GroupDef : public Definition
{
diff --git a/src/htags.cpp b/src/htags.cpp
index 036dcc9..caa4535 100644
--- a/src/htags.cpp
+++ b/src/htags.cpp
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/htags.h b/src/htags.h
index cb6d58f..458adec 100644
--- a/src/htags.h
+++ b/src/htags.h
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/htmlattrib.h b/src/htmlattrib.h
index b25489c..b391861 100644
--- a/src/htmlattrib.h
+++ b/src/htmlattrib.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp
index 70fa3f8..4c76be3 100644
--- a/src/htmldocvisitor.cpp
+++ b/src/htmldocvisitor.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -954,7 +954,7 @@ void HtmlDocVisitor::visitPre(DocSimpleSect *s)
{
if (m_hide) return;
forceEndParagraph(s);
- m_t << "<dl class=\"" << s->typeString() << "\"><dt><b>";
+ m_t << "<dl class=\"section " << s->typeString() << "\"><dt>";
switch(s->type())
{
case DocSimpleSect::See:
@@ -995,7 +995,7 @@ void HtmlDocVisitor::visitPre(DocSimpleSect *s)
// special case 1: user defined title
if (s->type()!=DocSimpleSect::User && s->type()!=DocSimpleSect::Rcs)
{
- m_t << ":</b></dt><dd>";
+ m_t << ":</dt><dd>";
}
}
diff --git a/src/htmldocvisitor.h b/src/htmldocvisitor.h
index cf71e22..33d1177 100644
--- a/src/htmldocvisitor.h
+++ b/src/htmldocvisitor.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/htmlgen.cpp b/src/htmlgen.cpp
index c3921af..eac4a20 100644
--- a/src/htmlgen.cpp
+++ b/src/htmlgen.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -615,6 +615,30 @@ static unsigned char open_a_png[81] =
0, 0, 0, 0,255, 0, 0, 0, 0
};
+static unsigned char bdwn_png[7*8] =
+{
+ 0, 0, 0,142, 0, 0, 0,
+ 0, 0, 0,142, 0, 0, 0,
+ 0, 0, 0,142, 0, 0, 0,
+ 142, 0, 0,142, 0, 0,142,
+ 142,142, 0,142, 0,142,142,
+ 142,142,142,142,142,142,142,
+ 0,142,142,142,142,142, 0,
+ 0, 0,142,142,142, 0, 0,
+};
+
+static unsigned char bdwn_a_png[7*8] =
+{
+ 0, 0, 0,255, 0, 0, 0,
+ 0, 0, 0,255, 0, 0, 0,
+ 0, 0, 0,255, 0, 0, 0,
+ 128, 0, 0,255, 0, 0,128,
+ 255,128, 0,255, 0,128,255,
+ 128,255,128,255,128,255,128,
+ 0,128,255,255,255,128, 0,
+ 0, 0,128,255,128, 0, 0,
+};
+
//------------------------------------------------------------------------
@@ -722,6 +746,7 @@ static ColoredImgDataItem colored_tab_data[] =
{ "doxygen.png", 104,31, doxygen_png, doxygen_a_png },
{ "closed.png", 9, 9, closed_png, closed_a_png },
{ "open.png", 9, 9, open_png, open_a_png },
+ { "bdwn.png", 7, 8, bdwn_png, bdwn_a_png },
{ 0, 0, 0, 0, 0 }
};
@@ -928,6 +953,18 @@ static QCString substituteHtmlKeywords(const QCString &s,const char *title,
{
cssFile = "doxygen.css";
}
+ else
+ {
+ QFileInfo cssfi(cssFile);
+ if (cssfi.exists())
+ {
+ cssFile = cssfi.fileName();
+ }
+ else
+ {
+ cssFile = "doxygen.css";
+ }
+ }
if (timeStamp) {
generatedBy = theTranslator->trGeneratedAt(dateToString(TRUE), Config_getString("PROJECT_NAME"));
diff --git a/src/htmlgen.h b/src/htmlgen.h
index b5d82da..dbbdc11 100644
--- a/src/htmlgen.h
+++ b/src/htmlgen.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/htmlhelp.cpp b/src/htmlhelp.cpp
index dd2311e..af06445 100644
--- a/src/htmlhelp.cpp
+++ b/src/htmlhelp.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/htmlhelp.h b/src/htmlhelp.h
index 8dafd15..ef5fb67 100644
--- a/src/htmlhelp.h
+++ b/src/htmlhelp.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/image.cpp b/src/image.cpp
index 04d5247..20fa868 100644
--- a/src/image.cpp
+++ b/src/image.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/image.h b/src/image.h
index 1728485..a73be0d 100644
--- a/src/image.h
+++ b/src/image.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/index.cpp b/src/index.cpp
index 68725aa..8f725d5 100644
--- a/src/index.cpp
+++ b/src/index.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -2718,10 +2718,6 @@ static void writeSubPages(PageDef *pd)
LayoutNavEntry *lne = LayoutDocManager::instance().rootNavEntry()->find(LayoutNavEntry::Pages);
bool addToIndex = lne==0 || lne->visible();
//printf("Write subpages(%s #=%d)\n",pd->name().data(),pd->getSubPages() ? pd->getSubPages()->count() : 0 );
- if (addToIndex)
- {
- Doxygen::indexList.incContentsDepth();
- }
PageSDict *subPages = pd->getSubPages();
if (subPages)
{
@@ -2737,18 +2733,29 @@ static void writeSubPages(PageDef *pd)
pageTitle=subPage->title();
bool hasSubPages = subPage->hasSubPages();
+ bool hasSections = subPage->hasSections();
if (addToIndex)
{
- Doxygen::indexList.addContentsItem(hasSubPages,pageTitle,subPage->getReference(),subPage->getOutputFileBase(),0,hasSubPages,TRUE);
+ Doxygen::indexList.addContentsItem(hasSubPages,pageTitle,
+ subPage->getReference(),subPage->getOutputFileBase(),
+ 0,hasSubPages,TRUE);
+ if (hasSections || hasSubPages)
+ {
+ Doxygen::indexList.incContentsDepth();
+ }
+ if (hasSections)
+ {
+ subPage->addSectionsToIndex();
+ }
}
writeSubPages(subPage);
+ if (addToIndex && (hasSections || hasSubPages))
+ {
+ Doxygen::indexList.decContentsDepth();
+ }
}
}
- if (addToIndex)
- {
- Doxygen::indexList.decContentsDepth();
- }
}
static void writePageIndex(OutputList &ol)
@@ -2810,12 +2817,20 @@ static void writePageIndex(OutputList &ol)
0, // anchor
hasSubPages || hasSections, // separateIndex
TRUE); // addToNavIndex
+ if (hasSections || hasSubPages)
+ {
+ Doxygen::indexList.incContentsDepth();
+ }
if (hasSections)
{
pd->addSectionsToIndex();
}
}
writeSubPages(pd);
+ if (addToIndex && (hasSections || hasSubPages))
+ {
+ Doxygen::indexList.decContentsDepth();
+ }
ol.endIndexListItem();
}
}
@@ -2896,33 +2911,7 @@ void writeGraphInfo(OutputList &ol)
ol.popGeneratorState();
}
-static void writeGroupIndexItem(GroupDef *gd,MemberList *ml,const QCString &title)
-{
- if (ml && ml->count()>0)
- {
- bool first=TRUE;
- MemberDef *md=ml->first();
- while (md)
- {
- if (md->isDetailedSectionVisible(TRUE,FALSE))
- {
- if (first)
- {
- first=FALSE;
- Doxygen::indexList.addContentsItem(TRUE, convertToHtml(title,TRUE), gd->getReference(), gd->getOutputFileBase(), 0,TRUE,FALSE);
- Doxygen::indexList.incContentsDepth();
- }
- Doxygen::indexList.addContentsItem(FALSE,md->name(),md->getReference(),md->getOutputFileBase(),md->anchor(),FALSE,TRUE);
- }
- md=ml->next();
- }
- if (!first)
- {
- Doxygen::indexList.decContentsDepth();
- }
- }
-}
//----------------------------------------------------------------------------
/*!
@@ -2930,8 +2919,8 @@ static void writeGroupIndexItem(GroupDef *gd,MemberList *ml,const QCString &titl
*/
static void writeGroupTreeNode(OutputList &ol, GroupDef *gd, int level, FTVHelp* ftv, bool addToIndex)
{
- bool fortranOpt = Config_getBool("OPTIMIZE_FOR_FORTRAN");
- bool vhdlOpt = Config_getBool("OPTIMIZE_OUTPUT_VHDL");
+ //bool fortranOpt = Config_getBool("OPTIMIZE_FOR_FORTRAN");
+ //bool vhdlOpt = Config_getBool("OPTIMIZE_OUTPUT_VHDL");
if (level>20)
{
warn(gd->getDefFileName(),gd->getDefLine(),
@@ -2952,7 +2941,7 @@ static void writeGroupTreeNode(OutputList &ol, GroupDef *gd, int level, FTVHelp*
bool hasSubGroups = gd->getSubGroups()->count()>0;
bool hasSubPages = gd->getPages()->count()>0;
int numSubItems = 0;
- if ( Config_getBool("TOC_EXPAND"))
+ if (1 /*Config_getBool("TOC_EXPAND")*/)
{
QListIterator<MemberList> mli(gd->getMemberLists());
MemberList *ml;
@@ -2966,7 +2955,8 @@ static void writeGroupTreeNode(OutputList &ol, GroupDef *gd, int level, FTVHelp*
numSubItems += gd->getNamespaces()->count();
numSubItems += gd->getClasses()->count();
numSubItems += gd->getFiles()->count();
- numSubItems += gd->getExamples()->count();
+ numSubItems += gd->getDirs()->count();
+ numSubItems += gd->getPages()->count();
}
bool isDir = hasSubGroups || hasSubPages || numSubItems>0;
@@ -2978,7 +2968,7 @@ static void writeGroupTreeNode(OutputList &ol, GroupDef *gd, int level, FTVHelp*
}
if (ftv)
{
- ftv->addContentsItem(isDir,gd->groupTitle(),gd->getReference(),gd->getOutputFileBase(),0);
+ ftv->addContentsItem(hasSubGroups,gd->groupTitle(),gd->getReference(),gd->getOutputFileBase(),0);
ftv->incContentsDepth();
}
@@ -2997,133 +2987,128 @@ static void writeGroupTreeNode(OutputList &ol, GroupDef *gd, int level, FTVHelp*
ol.docify(" [external]");
ol.endTypewriter();
}
-
-
- // write pages
- if (addToIndex)
+
+ QListIterator<LayoutDocEntry> eli(LayoutDocManager::instance().docEntries(LayoutDocManager::Group));
+ LayoutDocEntry *lde;
+ for (eli.toFirst();(lde=eli.current());++eli)
{
- PageSDict::Iterator pli(*gd->getPages());
- PageDef *pd = 0;
- for (pli.toFirst();(pd=pli.current());++pli)
+ if (lde->kind()==LayoutDocEntry::MemberDef && addToIndex)
+ {
+ LayoutDocEntryMemberDef *lmd = (LayoutDocEntryMemberDef*)lde;
+ MemberList *ml = gd->getMemberList(lmd->type);
+ if (ml)
+ {
+ MemberListIterator mi(*ml);
+ MemberDef *md;
+ for (mi.toFirst();(md=mi.current());++mi)
+ {
+ if (md->name().find('@')==-1)
+ {
+ Doxygen::indexList.addContentsItem(FALSE,
+ md->name(),md->getReference(),
+ md->getOutputFileBase(),md->anchor(),FALSE);
+ }
+ }
+ }
+ }
+ else if (lde->kind()==LayoutDocEntry::GroupClasses && addToIndex)
{
- SectionInfo *si=0;
- if (!pd->name().isEmpty()) si=Doxygen::sectionDict[pd->name()];
- Doxygen::indexList.addContentsItem(FALSE,
- convertToHtml(pd->title(),TRUE),
- gd->getReference(),
- gd->getOutputFileBase(),
- si ? si->label.data() : 0,
- FALSE,
- TRUE); // addToNavIndex
+ ClassSDict::Iterator it(*gd->getClasses());
+ ClassDef *cd;
+ for (;(cd=it.current());++it)
+ {
+ Doxygen::indexList.addContentsItem(FALSE,
+ cd->localName(),cd->getReference(),
+ cd->getOutputFileBase(),cd->anchor(),FALSE,FALSE);
+ }
}
- }
-
- // write subgroups
- if (hasSubGroups)
- {
- startIndexHierarchy(ol,level+1);
- if (Config_getBool("SORT_GROUP_NAMES")) gd->sortSubGroups();
- QListIterator<GroupDef> gli(*gd->getSubGroups());
- GroupDef *subgd = 0;
- for (gli.toFirst();(subgd=gli.current());++gli)
+ else if (lde->kind()==LayoutDocEntry::GroupNamespaces && addToIndex)
{
- writeGroupTreeNode(ol,subgd,level+1,ftv,addToIndex);
+ NamespaceSDict::Iterator it(*gd->getNamespaces());
+ NamespaceDef *nd;
+ for (;(nd=it.current());++it)
+ {
+ Doxygen::indexList.addContentsItem(FALSE,
+ nd->localName(),nd->getReference(),
+ nd->getOutputFileBase(),0,FALSE,FALSE);
+ }
}
- endIndexHierarchy(ol,level+1);
- }
-
-
- if (Config_getBool("TOC_EXPAND") && addToIndex)
- {
- writeGroupIndexItem(gd,gd->getMemberList(MemberList::docDefineMembers),
- theTranslator->trDefines());
- writeGroupIndexItem(gd,gd->getMemberList(MemberList::docTypedefMembers),
- theTranslator->trTypedefs());
- writeGroupIndexItem(gd,gd->getMemberList(MemberList::docEnumMembers),
- theTranslator->trEnumerations());
- writeGroupIndexItem(gd,gd->getMemberList(MemberList::docFuncMembers),
- fortranOpt ? theTranslator->trSubprograms() :
- vhdlOpt ? VhdlDocGen::trFunctionAndProc() :
- theTranslator->trFunctions()
- );
- writeGroupIndexItem(gd,gd->getMemberList(MemberList::docVarMembers),
- theTranslator->trVariables());
- writeGroupIndexItem(gd,gd->getMemberList(MemberList::docProtoMembers),
- theTranslator->trFuncProtos());
-
- // write namespaces
- NamespaceSDict *namespaceSDict=gd->getNamespaces();
- if (namespaceSDict->count()>0)
+ else if (lde->kind()==LayoutDocEntry::GroupFiles && addToIndex)
{
- Doxygen::indexList.addContentsItem(TRUE,convertToHtml(fortranOpt?theTranslator->trModules():theTranslator->trNamespaces(),TRUE),gd->getReference(), gd->getOutputFileBase(), 0);
- Doxygen::indexList.incContentsDepth();
-
- NamespaceSDict::Iterator ni(*namespaceSDict);
- NamespaceDef *nsd;
- for (ni.toFirst();(nsd=ni.current());++ni)
+ QListIterator<FileDef> it(*gd->getFiles());
+ FileDef *fd;
+ for (;(fd=it.current());++it)
{
- Doxygen::indexList.addContentsItem(FALSE, convertToHtml(nsd->name(),TRUE), nsd->getReference(), nsd->getOutputFileBase(), 0);
+ Doxygen::indexList.addContentsItem(FALSE,
+ fd->displayName(),fd->getReference(),
+ fd->getOutputFileBase(),0,FALSE,FALSE);
}
- Doxygen::indexList.decContentsDepth();
}
-
- // write classes
- if (gd->getClasses()->count()>0)
+ else if (lde->kind()==LayoutDocEntry::GroupDirs && addToIndex)
{
- Doxygen::indexList.addContentsItem(TRUE,convertToHtml(fortranOpt?theTranslator->trDataTypes():theTranslator->trClasses(),TRUE), gd->getReference(), gd->getOutputFileBase(), 0);
- Doxygen::indexList.incContentsDepth();
-
- ClassDef *cd;
- ClassSDict::Iterator cdi(*gd->getClasses());
- for (cdi.toFirst();(cd=cdi.current());++cdi)
+ static bool showDirs = Config_getBool("SHOW_DIRECTORIES");
+ if (showDirs)
{
- if (cd->isLinkable())
+ QListIterator<DirDef> it(*gd->getDirs());
+ DirDef *dd;
+ for (;(dd=it.current());++it)
{
- //printf("node: Has children %s\n",cd->name().data());
- Doxygen::indexList.addContentsItem(FALSE,cd->displayName(),cd->getReference(),cd->getOutputFileBase(),cd->anchor());
+ Doxygen::indexList.addContentsItem(FALSE,
+ dd->shortName(),dd->getReference(),
+ dd->getOutputFileBase(),0,FALSE,FALSE);
}
}
-
- //writeClassTree(gd->classSDict,1);
- Doxygen::indexList.decContentsDepth();
}
-
- // write file list
- FileList *fileList=gd->getFiles();
- if (fileList->count()>0)
+ else if (lde->kind()==LayoutDocEntry::GroupPageDocs && addToIndex)
{
- Doxygen::indexList.addContentsItem(TRUE,
- theTranslator->trFile(TRUE,FALSE),
- gd->getReference(),
- gd->getOutputFileBase(), 0);
- Doxygen::indexList.incContentsDepth();
-
- FileDef *fd=fileList->first();
- while (fd)
+ SDict<PageDef>::Iterator it(*gd->getPages());
+ PageDef *pd;
+ for (;(pd=it.current());++it)
{
- Doxygen::indexList.addContentsItem(FALSE, convertToHtml(fd->name(),TRUE),fd->getReference(), fd->getOutputFileBase(), 0);
- fd=fileList->next();
+ SectionInfo *si=0;
+ if (!pd->name().isEmpty()) si=Doxygen::sectionDict[pd->name()];
+ bool hasSubPages = pd->hasSubPages();
+ bool hasSections = pd->hasSections();
+ Doxygen::indexList.addContentsItem(
+ hasSubPages || hasSections,
+ convertToHtml(pd->title(),TRUE),
+ gd->getReference(),
+ gd->getOutputFileBase(),
+ si ? si->label.data() : 0,
+ hasSubPages || hasSections,
+ TRUE); // addToNavIndex
+ if (hasSections || hasSubPages)
+ {
+ Doxygen::indexList.incContentsDepth();
+ }
+ if (hasSections)
+ {
+ pd->addSectionsToIndex();
+ }
+ writeSubPages(pd);
+ if (hasSections || hasSubPages)
+ {
+ Doxygen::indexList.decContentsDepth();
+ }
}
- Doxygen::indexList.decContentsDepth();
}
-
- // write examples
- if (gd->getExamples()->count()>0)
+ else if (lde->kind()==LayoutDocEntry::GroupNestedGroups)
{
- Doxygen::indexList.addContentsItem(TRUE, convertToHtml(theTranslator->trExamples(),TRUE),gd->getReference(), gd->getOutputFileBase(), 0);
- Doxygen::indexList.incContentsDepth();
-
- PageSDict::Iterator eli(*(gd->getExamples()));
- PageDef *pd=eli.toFirst();
- while (pd)
+ if (gd->getSubGroups()->count()>0)
{
- Doxygen::indexList.addContentsItem(FALSE,pd->name(),pd->getReference(),pd->getOutputFileBase(),0);
- pd=++eli;
+ startIndexHierarchy(ol,level+1);
+ if (Config_getBool("SORT_GROUP_NAMES")) gd->sortSubGroups();
+ QListIterator<GroupDef> gli(*gd->getSubGroups());
+ GroupDef *subgd = 0;
+ for (gli.toFirst();(subgd=gli.current());++gli)
+ {
+ writeGroupTreeNode(ol,subgd,level+1,ftv,addToIndex);
+ }
+ endIndexHierarchy(ol,level+1);
}
-
- Doxygen::indexList.decContentsDepth();
}
}
+
ol.endIndexListItem();
if (addToIndex)
@@ -3175,7 +3160,7 @@ static void writeDirTreeNode(OutputList &ol, DirDef *dd, int level, FTVHelp* ftv
return;
}
- static bool tocExpand = Config_getBool("TOC_EXPAND");
+ static bool tocExpand = TRUE; //Config_getBool("TOC_EXPAND");
bool isDir = dd->subDirs().count()>0 || // there are subdirs
(tocExpand && // or toc expand and
dd->getFiles() && dd->getFiles()->count()>0 // there are files
diff --git a/src/index.h b/src/index.h
index 9288f5d..54f7f35 100644
--- a/src/index.h
+++ b/src/index.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/jquery_fx.js b/src/jquery_fx.js
index 4fd051a..d373e6a 100644
--- a/src/jquery_fx.js
+++ b/src/jquery_fx.js
@@ -43,4 +43,4 @@ a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
*/
(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&&
this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-; \ No newline at end of file
+;
diff --git a/src/language.cpp b/src/language.cpp
index e893c3f..3afa5b9 100644
--- a/src/language.cpp
+++ b/src/language.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/language.h b/src/language.h
index e134b20..17f5800 100644
--- a/src/language.h
+++ b/src/language.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/latexdocvisitor.cpp b/src/latexdocvisitor.cpp
index 3dab3ce..e060da1 100644
--- a/src/latexdocvisitor.cpp
+++ b/src/latexdocvisitor.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -915,7 +915,7 @@ void LatexDocVisitor::visitPost(DocHtmlRow *)
it.data()--;
if (it.data () <= 0)
{
- m_rowspanIndices.remove (it);
+ m_rowspanIndices.remove(it);
}
else if (0 < it.data() - col)
{
@@ -940,7 +940,7 @@ void LatexDocVisitor::visitPre(DocHtmlCell *c)
m_currentColumn++;
//Skip columns that span from above.
QMap<int, int>::Iterator it = m_rowspanIndices.find(m_currentColumn);
- while (0 < it.data() && it != m_rowspanIndices.end())
+ while (it!=m_rowspanIndices.end() && 0<it.data())
{
m_t << "&";
m_currentColumn++;
diff --git a/src/latexdocvisitor.h b/src/latexdocvisitor.h
index fc0218e..b325b21 100644
--- a/src/latexdocvisitor.h
+++ b/src/latexdocvisitor.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -168,9 +168,9 @@ class LatexDocVisitor : public DocVisitor
bool m_insideTabbing;
QStack<bool> m_enabled;
QCString m_langExt;
- QMap<int, int> m_rowspanIndices;
- int m_currentColumn;
- bool m_inRowspan;
+ QMap<int, int> m_rowspanIndices;
+ int m_currentColumn;
+ bool m_inRowspan;
};
#endif
diff --git a/src/latexgen.cpp b/src/latexgen.cpp
index 65ed16b..cb36b20 100644
--- a/src/latexgen.cpp
+++ b/src/latexgen.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -104,13 +104,7 @@ static void writeLatexMakefile()
<< "\tdvips -o refman.ps refman.dvi" << endl
<< endl;
t << "refman.pdf: refman.ps" << endl;
-#if defined(_MSC_VER)
- // ps2pdf.bat does not work properly from a makefile using GNU make!
- t << "\tgswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite "
- "-sOutputFile=refman.pdf -c save pop -f refman.ps" << endl << endl;
-#else
t << "\tps2pdf refman.ps refman.pdf" << endl << endl;
-#endif
t << "refman.dvi: clean refman.tex doxygen.sty" << endl
<< "\techo \"Running latex...\"" << endl
<< "\t" << latex_command << " refman.tex" << endl
@@ -121,7 +115,7 @@ static void writeLatexMakefile()
t << "\techo \"Running bibtex...\"" << endl;
t << "\tbibtex refman" << endl;
t << "\techo \"Rerunning latex....\"" << endl;
- t << "\tpdflatex refman" << endl;
+ t << "\t" << latex_command << " refman.tex" << endl;
}
t << "\techo \"Rerunning latex....\"" << endl
<< "\t" << latex_command << " refman.tex" << endl
@@ -136,13 +130,7 @@ static void writeLatexMakefile()
<< "\tpsnup -2 refman.ps >refman_2on1.ps" << endl
<< endl
<< "refman_2on1.pdf: refman_2on1.ps" << endl
-#if defined(_MSC_VER)
- // ps2pdf.bat does not work properly from a makefile using GNU make!
- << "\tgswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite "
- "-sOutputFile=refman_2on1.pdf -c save pop -f refman_2on1.ps" << endl;
-#else
<< "\tps2pdf refman_2on1.ps refman_2on1.pdf" << endl;
-#endif
}
else // use pdflatex for higher quality output
{
@@ -168,38 +156,64 @@ static void writeLatexMakefile()
t << endl
<< "clean:" << endl
-#if defined(_MSC_VER)
- << "\tdel /s/y "
-#else
<< "\trm -f "
-#endif
<< "*.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf" << endl;
}
-static void writeMakePdfBat()
+static void writeMakeBat()
{
#if defined(_MSC_VER)
- if (Config_getBool("USE_PDFLATEX")) // use plain old latex
- {
- bool generateBib = !Doxygen::citeDict->isEmpty();
- QCString mkidx_command = Config_getString("MAKEINDEX_CMD_NAME");
- QCString dir=Config_getString("LATEX_OUTPUT");
- QCString fileName=dir+"/makepdf.bat";
- QFile file(fileName);
- if (!file.open(IO_WriteOnly))
+ QCString dir=Config_getString("LATEX_OUTPUT");
+ QCString fileName=dir+"/make.bat";
+ QCString latex_command = Config_getString("LATEX_CMD_NAME");
+ QCString mkidx_command = Config_getString("MAKEINDEX_CMD_NAME");
+ QFile file(fileName);
+ bool generateBib = !Doxygen::citeDict->isEmpty();
+ if (!file.open(IO_WriteOnly))
+ {
+ err("Could not open file %s for writing\n",fileName.data());
+ exit(1);
+ }
+ FTextStream t(&file);
+ t << "del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf\n\n";
+ if (!Config_getBool("USE_PDFLATEX")) // use plain old latex
+ {
+ t << latex_command << " refman.tex\n";
+ t << "echo ----\n";
+ t << mkidx_command << " refman.idx\n";
+ if (generateBib)
{
- err("Could not open file %s for writing\n",fileName.data());
- exit(1);
+ t << "bibtex refman\n";
+ t << "echo ----\n";
+ t << latex_command << " refman.tex\n";
}
- FTextStream t(&file);
- t << "del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf\n\n";
+ t << "setlocal enabledelayedexpansion\n";
+ t << "set count=5\n";
+ t << ":repeat\n";
+ t << "set content=X\n";
+ t << "for /F \"tokens=*\" %%T in ( 'findstr /C:\"Rerun LaTeX\" refman.log' ) do set content=\"%%~T\"\n";
+ t << "if !content! == X for /F \"tokens=*\" %%T in ( 'findstr /C:\"Rerun to get cross-references right\" refman.log' ) do set content=\"%%~T\"\n";
+ t << "if !content! == X goto :skip\n";
+ t << "set /a count-=1\n";
+ t << "if !count! EQU 0 goto :skip\n\n";
+ t << "echo ----\n";
+ t << latex_command << " refman.tex\n";
+ t << "goto :repeat\n";
+ t << ":skip\n";
+ t << "endlocal\n";
+ t << "dvips -o refman.ps refman.dvi\n";
+ t << "gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite "
+ "-sOutputFile=refman.pdf -c save pop -f refman.ps\n";
+ }
+ else // use pdflatex
+ {
t << "pdflatex refman\n";
t << "echo ----\n";
t << mkidx_command << " refman.idx\n";
if (generateBib)
{
- t << "\tbibtex refman" << endl;
- t << "\tpdflatex refman" << endl;
+ t << "bibtex refman" << endl;
+ t << "pdflatex refman" << endl;
}
t << "echo ----\n";
t << "pdflatex refman\n\n";
@@ -233,7 +247,7 @@ void LatexGenerator::init()
}
writeLatexMakefile();
- writeMakePdfBat();
+ writeMakeBat();
createSubDirs(d);
}
@@ -249,14 +263,16 @@ static void writeDefaultHeaderPart1(FTextStream &t)
paperName="a4";
else
paperName=paperType;
- t << "\\documentclass[" << paperName << "paper";
- //if (Config_getBool("PDF_HYPERLINKS")) t << ",ps2pdf";
- t << "]{";
+ t << "\\documentclass";
+ //"[" << paperName << "paper";
+ //t << "]";
+ t << "{";
if (Config_getBool("COMPACT_LATEX")) t << "article"; else t << "book";
t << "}\n";
// the next package is obsolete (see bug 563698)
//if (paperType=="a4wide") t << "\\usepackage{a4wide}\n";
t <<
+ "\\usepackage["<<paperName<<"paper,top=2.5cm,bottom=2.5cm,left=2.5cm,right=2.5cm]{geometry}\n"
"\\usepackage{makeidx}\n"
"\\usepackage{natbib}\n"
"\\usepackage{graphicx}\n"
@@ -958,12 +974,12 @@ void LatexGenerator::writeStyleSheetFile(QFile &f)
t << theTranslator->trGeneratedAt( dateToString(TRUE), projectName );
t << " doxygen";
//t << " " << theTranslator->trWrittenBy() << " ";
- //t << "Dimitri van Heesch \\copyright~1997-2011";
+ //t << "Dimitri van Heesch \\copyright~1997-2012";
writeDefaultStyleSheetPart2(t);
t << theTranslator->trGeneratedAt( dateToString(TRUE), projectName );
t << " doxygen";
//t << " << theTranslator->trWrittenBy() << " ";
- //t << "Dimitri van Heesch \\copyright~1997-2011";
+ //t << "Dimitri van Heesch \\copyright~1997-2012";
writeDefaultStyleSheetPart3(t);
}
@@ -2561,7 +2577,7 @@ void LatexGenerator::lineBreak(const char *)
}
else
{
- t << "\\*\n";
+ t << "\\\\*\n";
}
}
diff --git a/src/latexgen.h b/src/latexgen.h
index 91b4740..36246fd 100644
--- a/src/latexgen.h
+++ b/src/latexgen.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/layout.cpp b/src/layout.cpp
index 1fa6a41..b4a94f2 100644
--- a/src/layout.cpp
+++ b/src/layout.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/layout.h b/src/layout.h
index 0b26690..e0ea4ca 100644
--- a/src/layout.h
+++ b/src/layout.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/layout_default.h b/src/layout_default.h
index 7ed1629..6a1ff8f 100644
--- a/src/layout_default.h
+++ b/src/layout_default.h
@@ -134,11 +134,11 @@
" <briefdescription visible=\"yes\"/>\n"
" <groupgraph visible=\"$GROUP_GRAPHS\"/>\n"
" <memberdecl>\n"
-" <classes visible=\"yes\" title=\"\"/>\n"
-" <namespaces visible=\"yes\" title=\"\"/>\n"
-" <dirs visible=\"yes\" title=\"\"/>\n"
" <nestedgroups visible=\"yes\" title=\"\"/>\n"
+" <dirs visible=\"yes\" title=\"\"/>\n"
" <files visible=\"yes\" title=\"\"/>\n"
+" <namespaces visible=\"yes\" title=\"\"/>\n"
+" <classes visible=\"yes\" title=\"\"/>\n"
" <defines title=\"\"/>\n"
" <typedefs title=\"\"/>\n"
" <enums title=\"\"/>\n"
diff --git a/src/layout_default.xml b/src/layout_default.xml
index 5b60278..7f62755 100644
--- a/src/layout_default.xml
+++ b/src/layout_default.xml
@@ -134,11 +134,11 @@
<briefdescription visible="yes"/>
<groupgraph visible="$GROUP_GRAPHS"/>
<memberdecl>
- <classes visible="yes" title=""/>
- <namespaces visible="yes" title=""/>
- <dirs visible="yes" title=""/>
<nestedgroups visible="yes" title=""/>
+ <dirs visible="yes" title=""/>
<files visible="yes" title=""/>
+ <namespaces visible="yes" title=""/>
+ <classes visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
diff --git a/src/libdoxycfg.pro.in b/src/libdoxycfg.pro.in
index 2adead6..800c373 100644
--- a/src/libdoxycfg.pro.in
+++ b/src/libdoxycfg.pro.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2011 by Dimitri van Heesch.
+# Copyright (C) 1997-2012 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/src/libdoxycfg.t b/src/libdoxycfg.t.in
index 6682956..29b1623 100644
--- a/src/libdoxycfg.t
+++ b/src/libdoxycfg.t.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2011 by Dimitri van Heesch.
+# Copyright (C) 1997-2012 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
@@ -16,8 +16,8 @@
#!
#$ IncludeTemplate("lib.t");
-LEX = flex
-YACC = bison
+LEX = %%FLEX%%
+YACC = %%BISON%%
#${
sub GenerateDep {
diff --git a/src/libdoxygen.pro.in b/src/libdoxygen.pro.in
index 1446a17..b6c7dec 100644
--- a/src/libdoxygen.pro.in
+++ b/src/libdoxygen.pro.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2011 by Dimitri van Heesch.
+# Copyright (C) 1997-2012 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
@@ -16,7 +16,8 @@
TEMPLATE = libdoxygen.t
CONFIG = console warn_on staticlib $extraopts
-HEADERS = bufstr.h \
+HEADERS = arguments.h \
+ bufstr.h \
cite.h \
classdef.h \
classlist.h \
@@ -158,6 +159,7 @@ HEADERS = bufstr.h \
translator_ua.h \
translator_vi.h \
translator_za.h \
+ types.h \
unistd.h \
util.h \
version.h \
@@ -167,7 +169,8 @@ HEADERS = bufstr.h \
xmldocvisitor.h \
xmlgen.h
-SOURCES = ce_lex.cpp \
+SOURCES = arguments.cpp \
+ ce_lex.cpp \
ce_parse.cpp \
cite.cpp \
classdef.cpp \
diff --git a/src/libdoxygen.t b/src/libdoxygen.t.in
index 200d39b..accf5cf 100644
--- a/src/libdoxygen.t
+++ b/src/libdoxygen.t.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2011 by Dimitri van Heesch.
+# Copyright (C) 1997-2012 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
@@ -16,8 +16,8 @@
#!
#$ IncludeTemplate("lib.t");
-LEX = flex
-YACC = bison
+LEX = %%FLEX%%
+YACC = %%BISON%%
INCBUFSIZE = $(PERL) increasebuffer.pl
#${
diff --git a/src/lockingptr.h b/src/lockingptr.h
index b16e5ca..5fc328d 100644
--- a/src/lockingptr.h
+++ b/src/lockingptr.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/logos.cpp b/src/logos.cpp
index 8f2dbd0..afc93cb 100644
--- a/src/logos.cpp
+++ b/src/logos.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/logos.h b/src/logos.h
index 438df13..3050819 100644
--- a/src/logos.h
+++ b/src/logos.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/main.cpp b/src/main.cpp
index 854eed7..dd1ea1e 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/mandocvisitor.cpp b/src/mandocvisitor.cpp
index 9a630b7..06fe9df 100644
--- a/src/mandocvisitor.cpp
+++ b/src/mandocvisitor.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/mandocvisitor.h b/src/mandocvisitor.h
index 14559d5..acd0663 100644
--- a/src/mandocvisitor.h
+++ b/src/mandocvisitor.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/mangen.cpp b/src/mangen.cpp
index c44044b..fb2898c 100644
--- a/src/mangen.cpp
+++ b/src/mangen.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -436,7 +436,7 @@ void ManGenerator::startDoxyAnchor(const char *,const char *manName,
void ManGenerator::endMemberDoc(bool)
{
- t << "\"";
+ t << "\"\n";
}
void ManGenerator::startSubsection()
diff --git a/src/mangen.h b/src/mangen.h
index d7c58a5..5c8a863 100644
--- a/src/mangen.h
+++ b/src/mangen.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/markdown.cpp b/src/markdown.cpp
index 95cf3c1..16dbe6d 100644
--- a/src/markdown.cpp
+++ b/src/markdown.cpp
@@ -47,10 +47,24 @@
//-----------
+// is character at position i in data part of an identifier?
#define isIdChar(i) \
- ((data[(i)]>='a' && data[(i)]<='z') || \
- (data[(i)]>='A' && data[(i)]<='Z') || \
- (data[(i)]>='0' && data[(i)]<='9')) \
+ ((data[i]>='a' && data[i]<='z') || \
+ (data[i]>='A' && data[i]<='Z') || \
+ (data[i]>='0' && data[i]<='9')) \
+
+// is character at position i in data allowed before an emphasis section
+#define isOpenEmphChar(i) \
+ (data[i]=='\n' || data[i]==' ' || data[i]=='\'' || data[i]=='<' || \
+ data[i]=='{' || data[i]=='(' || data[i]=='[' || data[i]==',' || \
+ data[i]==':' || data[i]==';')
+
+// is character at position i in data an escape that prevents ending an emphasis section
+// so for example *bla (*.txt) is cool*
+#define ignoreCloseEmphChar(i) \
+ (data[i]=='(' || data[i]=='{' || data[i]=='[' || data[i]=='<' || \
+ data[i]=='=' || data[i]=='+' || data[i]=='-' || data[i]=='\\' || \
+ data[i]=='@')
//----------
@@ -199,7 +213,6 @@ static QCString isBlockCommand(const char *data,int offset,int size)
return QCString();
}
-
/** looks for the next emph char, skipping other constructs, and
* stopping when either it is found, or we are at the end of a paragraph.
*/
@@ -209,12 +222,19 @@ static int findEmphasisChar(const char *data, int size, char c)
while (i<size)
{
- while (i<size && data[i]!=c && data[i]!='`' &&
+ while (i<size && data[i]!=c && data[i]!='`' &&
data[i]!='\\' && data[i]!='@' &&
data[i]!='\n') i++;
//printf("findEmphasisChar: data=[%s] i=%d c=%c\n",data,i,data[i]);
- if (data[i] == c)
+ // not counting escaped chars or characters that are unlikely
+ // to appear as the end of the emphasis char
+ if (i>0 && ignoreCloseEmphChar(i-1))
+ {
+ i++;
+ continue;
+ }
+ else if (data[i] == c)
{
if (i<size-1 && isIdChar(i+1)) // to prevent touching some_underscore_identifier
{
@@ -224,12 +244,6 @@ static int findEmphasisChar(const char *data, int size, char c)
return i; // found it
}
- // not counting escaped chars
- if (i>0 && (data[i-1]=='\\' || data[i-1]=='@'))
- {
- i++;
- continue;
- }
// skipping a code span
if (data[i]=='`')
@@ -489,6 +503,14 @@ static int processHtmlTag(GrowBuf &out,const char *data,int offset,int size)
static int processEmphasis(GrowBuf &out,const char *data,int offset,int size)
{
+ if ((offset>0 && !isOpenEmphChar(-1)) || // invalid char before * or _
+ (size>1 && data[0]!=data[1] && !isIdChar(1)) || // invalid char after * or _
+ (size>2 && data[0]==data[1] && !isIdChar(2))) // invalid char after ** or __
+ {
+ return 0;
+ }
+
+#if 0
if (offset>0 && size>1 && (isIdChar(-1) || data[-1]==data[0]))
{
if (isIdChar(1) || data[-1]==data[0])
@@ -504,6 +526,7 @@ static int processEmphasis(GrowBuf &out,const char *data,int offset,int size)
return 0;
}
}
+#endif
char c = data[0];
int ret;
if (size>2 && data[1]!=c) // _bla or *bla
@@ -544,6 +567,7 @@ static int processLink(GrowBuf &out,const char *data,int,int size)
QCString title;
int contentStart,contentEnd,linkStart,titleStart,titleEnd;
bool isImageLink = FALSE;
+ bool isToc = FALSE;
int i=1;
if (data[0]=='!')
{
@@ -704,6 +728,11 @@ static int processLink(GrowBuf &out,const char *data,int,int size)
explicitTitle=TRUE;
i=contentEnd;
}
+ else if (content=="TOC")
+ {
+ isToc=TRUE;
+ i=contentEnd;
+ }
else
{
return 0;
@@ -715,7 +744,11 @@ static int processLink(GrowBuf &out,const char *data,int,int size)
return 0;
}
static QRegExp re("^[@\\]ref ");
- if (isImageLink)
+ if (isToc) // special case for [TOC]
+ {
+ if (g_current) g_current->stat=TRUE;
+ }
+ else if (isImageLink)
{
if (link.find("@ref ")!=-1 || link.find("\\ref ")!=-1)
// assume doxygen symbol link
@@ -893,11 +926,11 @@ static int processSpecialCommand(GrowBuf &out, const char *data, int offset, int
i++;
}
}
- if (size>1)
+ if (size>1 && data[0]=='\\')
{
char c=data[1];
- if (c=='[' || c==']' || c=='*' || c=='_' || c=='+' || c=='-' ||
- c=='!' || c=='(' || c==')' || c=='.' || c=='`')
+ if (c=='[' || c==']' || c=='*' || c=='+' || c=='-' ||
+ c=='!' || c=='(' || c==')' || c=='.' || c=='`' || c=='_')
{
out.addStr(&data[1],1);
return 2;
@@ -1144,7 +1177,7 @@ static int isAtxHeader(const char *data,int size,
if (!id.isEmpty()) // strip #'s between title and id
{
i=header.length()-1;
- while (i>=0 && header.at(i)=='#' || header.at(i)==' ') i--;
+ while (i>=0 && (header.at(i)=='#' || header.at(i)==' ')) i--;
header=header.left(i+1);
}
@@ -1241,7 +1274,6 @@ static int computeIndentExcludingListMarkers(const char *data,int size)
static bool isFencedCodeBlock(const char *data,int size,int refIndent,
QCString &lang,int &start,int &end,int &offset)
{
- // TODO: implement me...
// rules: at least 3 ~~~, end of the block same amount of ~~~'s, otherwise
// return FALSE
int i=0;
@@ -1537,7 +1569,7 @@ static int writeTableBlock(GrowBuf &out,const char *data,int size)
out.addStr("</table>\n");
- delete columnAlignment;
+ delete[] columnAlignment;
return i;
}
@@ -1689,7 +1721,8 @@ static void findEndOfLine(GrowBuf &out,const char *data,int size,
{
// find end of the line
int nb=0;
- for (end=i+1; end<size && data[end-1]!='\n'; end++)
+ end=i+1;
+ while (end<size && data[end-1]!='\n')
{
// while looking for the end of the line we might encounter a block
// that needs to be passed unprocessed.
@@ -1700,12 +1733,8 @@ static void findEndOfLine(GrowBuf &out,const char *data,int size,
QCString endBlockName = isBlockCommand(data+end-1,end-1,size-(end-1));
if (!endBlockName.isEmpty())
{
- if (pi!=-1) // output previous line if available
- {
- out.addStr(data+pi,i-pi);
- }
int l = endBlockName.length();
- for (;end<size-l-1;end++) // search for end of block marker
+ for (;end<size-l;end++) // search for end of block marker
{
if ((data[end]=='\\' || data[end]=='@') &&
data[end-1]!='\\' && data[end-1]!='@'
@@ -1713,7 +1742,13 @@ static void findEndOfLine(GrowBuf &out,const char *data,int size,
{
if (strncmp(&data[end+1],endBlockName,l)==0)
{
+ if (pi!=-1) // output previous line if available
+ {
+ //printf("feol out={%s}\n",QCString(data+pi).left(i-pi).data());
+ out.addStr(data+pi,i-pi);
+ }
// found end marker, skip over this block
+ //printf("feol.block out={%s}\n",QCString(data+i).left(end+l+1-i).data());
out.addStr(data+i,end+l+1-i);
pi=-1;
i=end+l+1; // continue after block
@@ -1723,6 +1758,10 @@ static void findEndOfLine(GrowBuf &out,const char *data,int size,
}
}
}
+ else
+ {
+ end++;
+ }
}
else if (nb==0 && data[end-1]=='<' && end<size-6 &&
(end<=1 || (data[end-2]!='\\' && data[end-2]!='@'))
@@ -1743,6 +1782,10 @@ static void findEndOfLine(GrowBuf &out,const char *data,int size,
end = i+1;
break;
}
+ else
+ {
+ end++;
+ }
}
else if (nb==0 && data[end-1]=='`')
{
@@ -1754,7 +1797,12 @@ static void findEndOfLine(GrowBuf &out,const char *data,int size,
while (end<size && data[end-1]=='`') end++,enb++;
if (enb==nb) nb=0;
}
+ else
+ {
+ end++;
+ }
}
+ //printf("findEndOfLine pi=%d i=%d end=%d {%s}\n",pi,i,end,QCString(data+i).left(end-i).data());
}
static QCString processQuotations(const QCString &s,int refIndent)
@@ -1779,6 +1827,7 @@ static QCString processQuotations(const QCString &s,int refIndent)
}
else
{
+ //printf("quote out={%s}\n",QCString(data+pi).left(i-pi).data());
out.addStr(data+pi,i-pi);
}
}
@@ -1837,6 +1886,8 @@ static QCString processBlocks(const QCString &s,int indent)
findEndOfLine(out,data,size,pi,i,end);
// line is now found at [i..end)
+ //printf("findEndOfLine: pi=%d i=%d end=%d\n",pi,i,end);
+
if (pi!=-1)
{
int blockStart,blockEnd,blockOffset;
@@ -1894,24 +1945,24 @@ static QCString processBlocks(const QCString &s,int indent)
{
//printf("Found FencedCodeBlock lang='%s' start=%d end=%d code={%s}\n",
// lang.data(),blockStart,blockEnd,QCString(data+pi+blockStart).left(blockEnd-blockStart).data());
- out.addStr("@code");
if (!lang.isEmpty() && lang.at(0)=='.') lang=lang.mid(1);
+ if (lang.isEmpty()) out.addStr("@verbatim"); else out.addStr("@code");
if (!lang.isEmpty())
{
out.addStr("{"+lang+"}");
}
out.addStr(data+pi+blockStart,blockEnd-blockStart);
- out.addStr("\n@endcode");
+ out.addStr("\n");
+ if (lang.isEmpty()) out.addStr("@endverbatim"); else out.addStr("@endcode");
i=pi+blockOffset;
pi=-1;
end=i+1;
continue;
}
else if (isCodeBlock(data+i,i,end-i,blockIndent))
- //if (isCodeBlock(data+pi,pi,end-pi,blockIndent))
{
// skip previous line (it is empty anyway)
- i=pi+writeCodeBlock(out,data+pi,size-pi,blockIndent);
+ i+=writeCodeBlock(out,data+i,size-i,blockIndent);
pi=-1;
end=i+1;
continue;
diff --git a/src/markdown.h b/src/markdown.h
index 885d659..bff1100 100644
--- a/src/markdown.h
+++ b/src/markdown.h
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/marshal.cpp b/src/marshal.cpp
index d366c57..3ef97b8 100644
--- a/src/marshal.cpp
+++ b/src/marshal.cpp
@@ -9,6 +9,7 @@
#include "definition.h"
#include "groupdef.h"
#include "example.h"
+#include "arguments.h"
#define HEADER ('D'<<24)+('O'<<16)+('X'<<8)+'!'
diff --git a/src/marshal.h b/src/marshal.h
index ad25b5d..0360dca 100644
--- a/src/marshal.h
+++ b/src/marshal.h
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/memberdef.cpp b/src/memberdef.cpp
index 70e5bb9..39a71f8 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -41,6 +41,7 @@
#include "objcache.h"
#include "vhdlscanner.h"
#include "vhdldocgen.h"
+#include "arguments.h"
#define START_MARKER 0x4D454D5B // MEM[
#define END_MARKER 0x4D454D5D // MEM]
@@ -889,7 +890,6 @@ QCString MemberDef::anchor() const
void MemberDef::_computeLinkableInProject()
{
KEEP_RESIDENT_DURING_CALL;
- static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
static bool extractStatic = Config_getBool("EXTRACT_STATIC");
m_isLinkableCached = 2; // linkable
//printf("MemberDef::isLinkableInProject(name=%s)\n",name().data());
@@ -942,7 +942,7 @@ void MemberDef::_computeLinkableInProject()
m_isLinkableCached = 1; // in file (and not in namespace) but file not linkable
return;
}
- if (m_impl->prot==Private && !extractPrivate && m_impl->mtype!=Friend)
+ if (!protectionLevelVisible(m_impl->prot) && m_impl->mtype!=Friend)
{
//printf("private and invisible!\n");
m_isLinkableCached = 1; // hidden due to protection
@@ -1028,7 +1028,7 @@ void MemberDef::writeLink(OutputList &ol,ClassDef *,NamespaceDef *,
SrcLangExt lang = getLanguage();
//static bool optimizeOutputJava = Config_getBool("OPTIMIZE_OUTPUT_JAVA");
static bool hideScopeNames = Config_getBool("HIDE_SCOPE_NAMES");
- QCString sep = getLanguageSpecificSeparator(lang);
+ QCString sep = getLanguageSpecificSeparator(lang,TRUE);
QCString n = name();
if (!hideScopeNames)
{
@@ -1139,7 +1139,6 @@ bool MemberDef::isBriefSectionVisible() const
static bool briefMemberDesc = Config_getBool("BRIEF_MEMBER_DESC");
static bool repeatBrief = Config_getBool("REPEAT_BRIEF");
static bool hideFriendCompounds = Config_getBool("HIDE_FRIEND_COMPOUNDS");
- static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
//printf("Member %s grpId=%d docs=%s file=%s args=%s\n",
// name().data(),
@@ -1189,8 +1188,7 @@ bool MemberDef::isBriefSectionVisible() const
// only include members that are non-private unless EXTRACT_PRIVATE is
// set to YES or the member is part of a group
- bool visibleIfPrivate = (protection()!=Private ||
- extractPrivate ||
+ bool visibleIfPrivate = (protectionLevelVisible(protection()) ||
m_impl->mtype==Friend
);
@@ -1689,7 +1687,6 @@ bool MemberDef::isDetailedSectionLinkable() const
static bool briefMemberDesc = Config_getBool("BRIEF_MEMBER_DESC");
static bool hideUndocMembers = Config_getBool("HIDE_UNDOC_MEMBERS");
static bool extractStatic = Config_getBool("EXTRACT_STATIC");
- static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
KEEP_RESIDENT_DURING_CALL;
@@ -1727,9 +1724,7 @@ bool MemberDef::isDetailedSectionLinkable() const
// only include members that are non-private unless EXTRACT_PRIVATE is
// set to YES or the member is part of a group
- bool privateFilter = (protection()!=Private || extractPrivate ||
- m_impl->mtype==Friend
- );
+ bool privateFilter = protectionLevelVisible(protection()) || m_impl->mtype==Friend;
// member is part of an anonymous scope that is the type of
// another member in the list.
@@ -1797,7 +1792,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
SrcLangExt lang = getLanguage();
//printf("member=%s lang=%d\n",name().data(),lang);
bool optVhdl = lang==SrcLangExt_VHDL;
- QCString sep = getLanguageSpecificSeparator(lang);
+ QCString sep = getLanguageSpecificSeparator(lang,TRUE);
QCString scopeName = scName;
QCString memAnchor = anchor();
@@ -2671,7 +2666,7 @@ void MemberDef::warnIfUndocumented()
if ((!hasUserDocumentation() && !extractAll) &&
!isFriendClass() &&
name().find('@')==-1 && d->name().find('@')==-1 &&
- (m_impl->prot!=Private || Config_getBool("EXTRACT_PRIVATE"))
+ protectionLevelVisible(m_impl->prot)
)
{
warn_undoc(getDefFileName(),getDefLine(),"warning: Member %s%s (%s) of %s %s is not documented.",
@@ -2947,7 +2942,7 @@ void MemberDef::addListReference(Definition *)
Definition *pd=getOuterScope();
QCString pdName = pd->definitionType()==Definition::TypeClass ?
((ClassDef*)pd)->displayName() : pd->name();
- QCString sep = getLanguageSpecificSeparator(lang);
+ QCString sep = getLanguageSpecificSeparator(lang,TRUE);
QCString memArgs;
if (!isRelated()
/* && commented out as a result of bug 597016
@@ -3304,6 +3299,7 @@ void MemberDef::enableCallerGraph(bool e)
if (e) Doxygen::parseSourcesNeeded = TRUE;
}
+#if 0
bool MemberDef::protectionVisible() const
{
makeResident();
@@ -3312,6 +3308,7 @@ bool MemberDef::protectionVisible() const
(m_impl->prot==Protected && Config_getBool("EXTRACT_PROTECTED")) ||
(m_impl->prot==Package && Config_getBool("EXTRACT_PACKAGE"));
}
+#endif
#if 0
void MemberDef::setInbodyDocumentation(const char *docs,
diff --git a/src/memberdef.h b/src/memberdef.h
index 5ec91b3..2e85d47 100644
--- a/src/memberdef.h
+++ b/src/memberdef.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -23,7 +23,7 @@
#include <qdict.h>
#include <qstack.h>
-#include "entry.h"
+#include "types.h"
#include "definition.h"
#include "sortdict.h"
diff --git a/src/membergroup.cpp b/src/membergroup.cpp
index 2f821f8..6f9cbe7 100644
--- a/src/membergroup.cpp
+++ b/src/membergroup.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/membergroup.h b/src/membergroup.h
index bf9ff97..12d1383 100644
--- a/src/membergroup.h
+++ b/src/membergroup.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/memberlist.cpp b/src/memberlist.cpp
index f3cfe54..8cfad19 100644
--- a/src/memberlist.cpp
+++ b/src/memberlist.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/memberlist.h b/src/memberlist.h
index 09ac656..e832ad5 100644
--- a/src/memberlist.h
+++ b/src/memberlist.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/membername.cpp b/src/membername.cpp
index 8c6b735..506313e 100644
--- a/src/membername.cpp
+++ b/src/membername.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/membername.h b/src/membername.h
index aeebf23..e5fbaa3 100644
--- a/src/membername.h
+++ b/src/membername.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/message.cpp b/src/message.cpp
index 7c0679c..5a452cc 100644
--- a/src/message.cpp
+++ b/src/message.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/message.h b/src/message.h
index 5325e81..46b736c 100644
--- a/src/message.h
+++ b/src/message.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/msc.cpp b/src/msc.cpp
index cce6178..51875ba 100644
--- a/src/msc.cpp
+++ b/src/msc.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/msc.h b/src/msc.h
index e26ed8b..f1fc78b 100644
--- a/src/msc.h
+++ b/src/msc.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/namespacedef.cpp b/src/namespacedef.cpp
index 18d2801..4d53a12 100644
--- a/src/namespacedef.cpp
+++ b/src/namespacedef.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/namespacedef.h b/src/namespacedef.h
index 67cffaf..f1db108 100644
--- a/src/namespacedef.h
+++ b/src/namespacedef.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/navtree.js b/src/navtree.js
index eb18215..505ca61 100644
--- a/src/navtree.js
+++ b/src/navtree.js
@@ -19,7 +19,9 @@ function getScript(scriptName,func,show)
script.onload = func;
script.src = scriptName+'.js';
script.onreadystatechange = function() {
- if (script.readyState == 'complete') { func(); if (show) showRoot(); }
+ if (script.readyState=='complete' || script.readyState=='loaded') {
+ func(); if (show) showRoot();
+ }
};
head.appendChild(script);
}
diff --git a/src/navtree_js.h b/src/navtree_js.h
index 63c104b..746b39d 100644
--- a/src/navtree_js.h
+++ b/src/navtree_js.h
@@ -19,7 +19,9 @@
" script.onload = func; \n"
" script.src = scriptName+'.js'; \n"
" script.onreadystatechange = function() {\n"
-" if (script.readyState == 'complete') { func(); if (show) showRoot(); }\n"
+" if (script.readyState=='complete' || script.readyState=='loaded') { \n"
+" func(); if (show) showRoot(); \n"
+" }\n"
" };\n"
" head.appendChild(script); \n"
"}\n"
diff --git a/src/objcache.cpp b/src/objcache.cpp
index 23c14ec..a08d649 100644
--- a/src/objcache.cpp
+++ b/src/objcache.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/objcache.h b/src/objcache.h
index c89ec2c..71e7178 100644
--- a/src/objcache.h
+++ b/src/objcache.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/outputgen.cpp b/src/outputgen.cpp
index fbe6b3e..74ba116 100644
--- a/src/outputgen.cpp
+++ b/src/outputgen.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/outputgen.h b/src/outputgen.h
index ba77605..58d1384 100644
--- a/src/outputgen.h
+++ b/src/outputgen.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/outputlist.cpp b/src/outputlist.cpp
index 738d540..cb1bba1 100644
--- a/src/outputlist.cpp
+++ b/src/outputlist.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/outputlist.h b/src/outputlist.h
index 2e863e3..1b5b8ec 100644
--- a/src/outputlist.h
+++ b/src/outputlist.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/pagedef.cpp b/src/pagedef.cpp
index 63b24d8..f280c81 100644
--- a/src/pagedef.cpp
+++ b/src/pagedef.cpp
@@ -17,6 +17,7 @@ PageDef::PageDef(const char *f,int l,const char *n,
m_subPageDict = new PageSDict(7);
m_pageScope = 0;
m_nestingLevel = 0;
+ m_showToc = FALSE;
}
PageDef::~PageDef()
@@ -139,6 +140,11 @@ void PageDef::writeDocumentation(OutputList &ol)
ol.popGeneratorState();
//2.}
+ if (m_showToc && hasSections())
+ {
+ writeToc(ol);
+ }
+
writePageDocumentation(ol);
ol.popGeneratorState();
@@ -270,3 +276,8 @@ void PageDef::setNestingLevel(int l)
m_nestingLevel = l;
}
+void PageDef::setShowToc(bool b)
+{
+ m_showToc = b;
+}
+
diff --git a/src/pagedef.h b/src/pagedef.h
index 136a997..b4eded5 100644
--- a/src/pagedef.h
+++ b/src/pagedef.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -26,6 +26,12 @@ class PageDef : public Definition
public:
PageDef(const char *f,int l,const char *n,const char *d,const char *t);
~PageDef();
+
+ // setters
+ void setFileName(const char *name) { m_fileName = name; }
+ void setShowToc(bool b);
+
+ // getters
DefType definitionType() const { return TypePage; }
bool isLinkableInProject() const
{
@@ -35,7 +41,6 @@ class PageDef : public Definition
{
return isLinkableInProject() || isReference();
}
- void writeDocumentation(OutputList &ol);
// functions to get a uniform interface with Definitions
QCString getOutputFileBase() const;
@@ -44,7 +49,6 @@ class PageDef : public Definition
QCString title() const { return m_title; }
GroupDef * getGroupDef() const;
PageSDict * getSubPages() const { return m_subPageDict; }
- void setFileName(const char *name) { m_fileName = name; }
void addInnerCompound(Definition *d);
bool visibleInIndex() const;
bool documentedPage() const;
@@ -54,6 +58,8 @@ class PageDef : public Definition
Definition *getPageScope() const { return m_pageScope; }
QCString displayName() const { return !m_title.isEmpty() ? m_title : Definition::name(); }
+ void writeDocumentation(OutputList &ol);
+
private:
void setNestingLevel(int l);
void writePageDocumentation(OutputList &ol);
@@ -63,6 +69,7 @@ class PageDef : public Definition
PageSDict *m_subPageDict; // list of pages in the group
Definition *m_pageScope;
int m_nestingLevel;
+ bool m_showToc;
};
class PageSDict : public SDict<PageDef>
diff --git a/src/parserintf.h b/src/parserintf.h
index 2e5397e..db22088 100644
--- a/src/parserintf.h
+++ b/src/parserintf.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/perlmodgen.cpp b/src/perlmodgen.cpp
index 30e4788..78fa313 100644
--- a/src/perlmodgen.cpp
+++ b/src/perlmodgen.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 by Dimitri van Heesch.
* Authors: Dimitri van Heesch, Miguel Lobo.
*
* Permission to use, copy, modify, and distribute this software and its
@@ -30,6 +30,7 @@
#include <qdict.h>
#include <qfile.h>
#include "ftextstream.h"
+#include "arguments.h"
#define PERLOUTPUT_MAX_INDENTATION 40
diff --git a/src/perlmodgen.h b/src/perlmodgen.h
index 2f13ec5..4307d9b 100644
--- a/src/perlmodgen.h
+++ b/src/perlmodgen.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/pre.h b/src/pre.h
index cbb68ad..18c57c8 100644
--- a/src/pre.h
+++ b/src/pre.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/pre.l b/src/pre.l
index fea32f8..217ed80 100644
--- a/src/pre.l
+++ b/src/pre.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -47,6 +47,8 @@
#include "bufstr.h"
#include "portable.h"
#include "bufstr.h"
+#include "arguments.h"
+#include "entry.h"
#define YY_NEVER_INTERACTIVE 1
@@ -1552,7 +1554,10 @@ static void readIncludeFile(const QCString &inc)
//printf("Found include file!\n");
if (Debug::isFlagSet(Debug::Preprocessor))
{
- for (i=0;i<g_includeStack.count();i++) msg(" ");
+ for (i=0;i<g_includeStack.count();i++)
+ {
+ Debug::print(Debug::Preprocessor,0," ");
+ }
//msg("#include %s: parsing...\n",incFileName.data());
}
if (oldFileDef)
@@ -1625,11 +1630,11 @@ static void readIncludeFile(const QCString &inc)
{
if (alreadyIncluded)
{
- msg("#include %s: already included! skipping...\n",incFileName.data());
+ Debug::print(Debug::Preprocessor,0,"#include %s: already included! skipping...\n",incFileName.data());
}
else
{
- msg("#include %s: not found! skipping...\n",incFileName.data());
+ Debug::print(Debug::Preprocessor,0,"#include %s: not found! skipping...\n",incFileName.data());
}
//printf("error: include file %s not found\n",yytext);
}
@@ -2990,25 +2995,32 @@ void preprocessFile(const char *fileName,BufStr &input,BufStr &output)
{
char *orgPos=output.data()+orgOffset;
char *newPos=output.data()+output.curPos();
- msg("Preprocessor output (size: %d bytes):\n",newPos-orgPos);
+ Debug::print(Debug::Preprocessor,0,"Preprocessor output (size: %d bytes):\n",newPos-orgPos);
int line=1;
- msg("---------\n00001 ");
+ Debug::print(Debug::Preprocessor,0,"---------\n00001 ");
while (orgPos<newPos)
{
putchar(*orgPos);
- if (*orgPos=='\n') printf("%05d ",++line);
+ if (*orgPos=='\n') Debug::print(Debug::Preprocessor,0,"%05d ",++line);
orgPos++;
}
- msg("\n---------\n");
- msg("Macros accessible in this file:\n");
- msg("---------\n");
- QDictIterator<Define> di(DefineManager::instance().defineContext());
- Define *def;
- for (di.toFirst();(def=di.current());++di)
+ Debug::print(Debug::Preprocessor,0,"\n---------\n");
+ if (DefineManager::instance().defineContext().count()>0)
+ {
+ Debug::print(Debug::Preprocessor,0,"Macros accessible in this file:\n");
+ Debug::print(Debug::Preprocessor,0,"---------\n");
+ QDictIterator<Define> di(DefineManager::instance().defineContext());
+ Define *def;
+ for (di.toFirst();(def=di.current());++di)
+ {
+ Debug::print(Debug::Preprocessor,0,"%s ",def->name.data());
+ }
+ Debug::print(Debug::Preprocessor,0,"\n---------\n");
+ }
+ else
{
- msg("%s ",def->name.data());
+ Debug::print(Debug::Preprocessor,0,"No macros accessible in this file.\n");
}
- msg("\n---------\n");
}
DefineManager::instance().endContext();
}
diff --git a/src/printdocvisitor.h b/src/printdocvisitor.h
index 4a41647..7e96c61 100644
--- a/src/printdocvisitor.h
+++ b/src/printdocvisitor.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/pycode.h b/src/pycode.h
index 230ba23..895c88e 100644
--- a/src/pycode.h
+++ b/src/pycode.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/pycode.l b/src/pycode.l
index 1eb762d..6ddf2e0 100644
--- a/src/pycode.l
+++ b/src/pycode.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/pyscanner.h b/src/pyscanner.h
index c02d47f..3bb4b21 100644
--- a/src/pyscanner.h
+++ b/src/pyscanner.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/pyscanner.l b/src/pyscanner.l
index 1c29c57..7c571d6 100644
--- a/src/pyscanner.l
+++ b/src/pyscanner.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -50,6 +50,7 @@
#include "language.h"
#include "commentscan.h"
#include "pycode.h"
+#include "arguments.h"
#define YY_NEVER_INTERACTIVE 1
diff --git a/src/qtbc.h b/src/qtbc.h
index 2baf251..5c3ceef 100644
--- a/src/qtbc.h
+++ b/src/qtbc.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/reflist.cpp b/src/reflist.cpp
index cd19d53..8f103d7 100644
--- a/src/reflist.cpp
+++ b/src/reflist.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/reflist.h b/src/reflist.h
index 90c07e3..90c95c8 100644
--- a/src/reflist.h
+++ b/src/reflist.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/rtfdocvisitor.cpp b/src/rtfdocvisitor.cpp
index e49a8ed..ceedb2d 100644
--- a/src/rtfdocvisitor.cpp
+++ b/src/rtfdocvisitor.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -34,6 +34,24 @@
//#define DBG_RTF(x) m_t << x
#define DBG_RTF(x) do {} while(0)
+static QCString align(DocHtmlCell *cell)
+{
+ HtmlAttribList attrs = cell->attribs();
+ uint i;
+ for (i=0; i<attrs.count(); ++i)
+ {
+ if (attrs.at(i)->name.lower()=="align")
+ {
+ if (attrs.at(i)->value.lower()=="center")
+ return "\\qc ";
+ else if (attrs.at(i)->value.lower()=="right")
+ return "\\qr ";
+ else return "";
+ }
+ }
+ return "";
+}
+
RTFDocVisitor::RTFDocVisitor(FTextStream &t,CodeOutputInterface &ci,
const char *langExt)
: DocVisitor(DocVisitor_RTF), m_t(t), m_ci(ci), m_insidePre(FALSE),
@@ -931,7 +949,8 @@ void RTFDocVisitor::visitPost(DocHtmlTable *)
{
if (m_hide) return;
DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocHtmlTable)}\n");
- m_t << "\\pard" << endl;
+ m_t << "\\pard\\plain" << endl;
+ m_t << "\\par" << endl;
m_lastIsPara=TRUE;
}
@@ -959,6 +978,10 @@ void RTFDocVisitor::visitPre(DocHtmlRow *r)
"\\trbrdrv\\brdrs\\brdrw10 "<< endl;
for (i=0;i<r->numCells();i++)
{
+ if (r->isHeading())
+ {
+ m_t << "\\clcbpat16"; // set cell shading to light grey (color 16 in the clut)
+ }
m_t << "\\clvertalt\\clbrdrt\\brdrs\\brdrw10 "
"\\clbrdrl\\brdrs\\brdrw10 "
"\\clbrdrb\\brdrs\\brdrw10 "
@@ -980,11 +1003,11 @@ void RTFDocVisitor::visitPost(DocHtmlRow *)
m_lastIsPara=FALSE;
}
-void RTFDocVisitor::visitPre(DocHtmlCell *)
+void RTFDocVisitor::visitPre(DocHtmlCell *c)
{
if (m_hide) return;
DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocHtmlCell)}\n");
- m_t << "{";
+ m_t << "{" << align(c);
m_lastIsPara=FALSE;
}
diff --git a/src/rtfdocvisitor.h b/src/rtfdocvisitor.h
index db70b00..2e35b3b 100644
--- a/src/rtfdocvisitor.h
+++ b/src/rtfdocvisitor.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/rtfgen.cpp b/src/rtfgen.cpp
index 7f37f92..b00fb46 100644
--- a/src/rtfgen.cpp
+++ b/src/rtfgen.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Parker Waechter & Dimitri van Heesch.
+ * Copyright (C) 1997-2012 by Parker Waechter & Dimitri van Heesch.
*
* Style sheet additions by Alexander Bartolich
*
diff --git a/src/rtfgen.h b/src/rtfgen.h
index 1970f12..c9dec0b 100644
--- a/src/rtfgen.h
+++ b/src/rtfgen.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Parker Waechter & Dimitri van Heesch.
+ * Copyright (C) 1997-2012 by Parker Waechter & 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/src/rtfstyle.cpp b/src/rtfstyle.cpp
index 9cc2064..716cf2a 100644
--- a/src/rtfstyle.cpp
+++ b/src/rtfstyle.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/rtfstyle.h b/src/rtfstyle.h
index 5d2b5ed..3dd4897 100644
--- a/src/rtfstyle.h
+++ b/src/rtfstyle.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/scanner.h b/src/scanner.h
index 62c1b09..70dad99 100644
--- a/src/scanner.h
+++ b/src/scanner.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/scanner.l b/src/scanner.l
index 63bfde0..e6cbd17 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -42,6 +42,7 @@
#include "language.h"
#include "commentscan.h"
#include "code.h"
+#include "arguments.h"
#define YY_NEVER_INTERACTIVE 1
@@ -70,6 +71,7 @@ static int lastSkipVerbStringContext;
static int lastCommentInArgContext;
static int lastCSConstraint;
static int lastHereDocContext;
+static int lastDefineContext;
static Protection protection;
static Protection baseProt;
static int sharpCount = 0 ;
@@ -571,7 +573,7 @@ ID "$"?[a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]*
SCOPEID {ID}({ID}*{BN}*"::"{BN}*)*({ID}?)
SCOPENAME "$"?(({ID}?{BN}*"::"{BN}*)*)(((~|!){BN}*)?{ID})
PHPSCOPENAME ({ID}"\\")+{ID}
-TSCOPE {ID}("<"[a-z_A-Z0-9 \t\*\&,]*">")?
+TSCOPE {ID}("<"[a-z_A-Z0-9 \t\*\&,:]*">")?
CSSCOPENAME (({ID}?{BN}*"."{BN}*)*)((~{BN}*)?{ID})
PRE [pP][rR][eE]
CODE [cC][oO][dD][eE]
@@ -1140,7 +1142,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
unput('{');
BEGIN( Function );
}
-<FindMembers>{BN}{1,80} {
+<FindMembers>{BN}{1,80} {
lineCount();
}
<FindMembers>"@"({ID}".")*{ID}{BN}*"(" {
@@ -1813,6 +1815,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
current->name=n.left(n.length()-2);
}
<FindMembers>{SCOPENAME}{BN}*/"<" { // Note: this could be a return type!
+ roundCount=0;
sharpCount=0;
lineCount();
addType( current );
@@ -2080,6 +2083,10 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
{
current->protection = Protected;
}
+ else if (javaLike && strcmp(yytext,"internal")==0)
+ {
+ current->protection = Package;
+ }
else if (javaLike && strcmp(yytext,"private")==0)
{
current->protection = Private;
@@ -2190,6 +2197,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
if (insidePHP)
REJECT;
current->bodyLine = yyLineNr;
+ lastDefineContext = YY_START;
BEGIN( Define );
}
<FindMembers,ReadBody,ReadNSBody,ReadBodyIntf,SkipCurly,SkipCurlyCpp>{B}*"#"{B}+[0-9]+{B}+/"\"" { /* line control directive */
@@ -2274,7 +2282,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
current_root->addSubEntry(current);
current = new Entry ;
initEntry();
- BEGIN(FindMembers);
+ BEGIN(lastDefineContext);
}
<DefinePHPEnd>";" {
//printf("End define\n");
@@ -3545,7 +3553,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
*/
<MemberSpecSkip>"," { BEGIN(MemberSpec); }
<MemberSpecSkip>";" { unput(';'); BEGIN(MemberSpec); }
-<ReadBody,ReadNSBody,ReadBodyIntf>{BN}+ { current->program += yytext ;
+<ReadBody,ReadNSBody,ReadBodyIntf>{BN}{1,80} { current->program += yytext ;
lineCount() ;
}
<ReadBodyIntf>"@end"/[^a-z_A-Z0-9] { // end of Objective C block
@@ -5011,6 +5019,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
<BasesProt>"virtual"{BN}+ { lineCount(); baseVirt = Virtual; }
<BasesProt>"public"{BN}+ { lineCount(); baseProt = Public; }
<BasesProt>"protected"{BN}+ { lineCount(); baseProt = Protected; }
+<BasesProt>"internal"{BN}+ { lineCount(); baseProt = Package; }
<BasesProt>"private"{BN}+ { lineCount(); baseProt = Private; }
<BasesProt>{BN} { lineCount(); }
<BasesProt>. { unput(*yytext); BEGIN(Bases); }
diff --git a/src/searchindex.cpp b/src/searchindex.cpp
index ad9f8ba..c40791e 100644
--- a/src/searchindex.cpp
+++ b/src/searchindex.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/searchindex.h b/src/searchindex.h
index 2b94261..024e70a 100644
--- a/src/searchindex.h
+++ b/src/searchindex.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/section.h b/src/section.h
index 78516ae..556cad0 100644
--- a/src/section.h
+++ b/src/section.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/sortdict.h b/src/sortdict.h
index c2afa39..40f23f7 100644
--- a/src/sortdict.h
+++ b/src/sortdict.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/store.cpp b/src/store.cpp
index b075218..efa0718 100644
--- a/src/store.cpp
+++ b/src/store.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/store.h b/src/store.h
index 6d6eee8..816ce46 100644
--- a/src/store.h
+++ b/src/store.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/svgpan.js b/src/svgpan.js
index 663be79..a64c488 100644
--- a/src/svgpan.js
+++ b/src/svgpan.js
@@ -278,4 +278,42 @@ function handleZoom(evt,direction)
doZoom(g,p,factor);
}
+function serializeXmlNode(xmlNode)
+{
+ if (typeof window.XMLSerializer != "undefined") {
+ return (new window.XMLSerializer()).serializeToString(xmlNode);
+ } else if (typeof xmlNode.xml != "undefined") {
+ return xmlNode.xml;
+ }
+ return "";
+}
+
+/**
+ * Handler for print function
+ */
+function handlePrint(evt)
+{
+ evt.returnValue = false;
+ var g = svgDoc.getElementById("graph");
+ var xs = serializeXmlNode(g);
+ try {
+ var w = window.open('about:blank','_blank','width='+windowWidth+',height='+windowHeight+
+ ',toolbar=0,status=0,menubar=0,scrollbars=0,resizable=0,location=0,directories=0');
+ var d = w.document;
+ d.write('<html xmlns="http://www.w3.org/1999/xhtml" '+
+ 'xmlns:svg="http://www.w3.org/2000/svg" '+
+ 'xmlns:xlink="http://www.w3.org/1999/xlink">');
+ d.write('<head><title>Print SVG</title></head>');
+ d.write('<body style="margin: 0px; padding: 0px;" onload="window.print(); window.close();">');
+ d.write('<div id="svg" style="width:'+windowWidth+'px; height:'+windowHeight+'px;">'+xs+'</div>');
+ d.write('</body>');
+ d.write('</html>');
+ d.close();
+ } catch(e) {
+ alert('Print function not supported by this browser!');
+ }
+}
+
+
+
diff --git a/src/svgpan_js.h b/src/svgpan_js.h
index 260d4f7..9978f21 100644
--- a/src/svgpan_js.h
+++ b/src/svgpan_js.h
@@ -278,4 +278,42 @@
" doZoom(g,p,factor);\n"
"}\n"
"\n"
+"function serializeXmlNode(xmlNode) \n"
+"{\n"
+" if (typeof window.XMLSerializer != \"undefined\") {\n"
+" return (new window.XMLSerializer()).serializeToString(xmlNode);\n"
+" } else if (typeof xmlNode.xml != \"undefined\") {\n"
+" return xmlNode.xml;\n"
+" }\n"
+" return \"\";\n"
+"}\n"
+"\n"
+"/** \n"
+" * Handler for print function\n"
+" */\n"
+"function handlePrint(evt)\n"
+"{\n"
+" evt.returnValue = false;\n"
+" var g = svgDoc.getElementById(\"graph\");\n"
+" var xs = serializeXmlNode(g);\n"
+" try {\n"
+" var w = window.open('about:blank','_blank','width='+windowWidth+',height='+windowHeight+\n"
+" ',toolbar=0,status=0,menubar=0,scrollbars=0,resizable=0,location=0,directories=0');\n"
+" var d = w.document;\n"
+" d.write('<html xmlns=\"http://www.w3.org/1999/xhtml\" '+\n"
+" 'xmlns:svg=\"http://www.w3.org/2000/svg\" '+\n"
+" 'xmlns:xlink=\"http://www.w3.org/1999/xlink\">');\n"
+" d.write('<head><title>Print SVG</title></head>');\n"
+" d.write('<body style=\"margin: 0px; padding: 0px;\" onload=\"window.print(); window.close();\">');\n"
+" d.write('<div id=\"svg\" style=\"width:'+windowWidth+'px; height:'+windowHeight+'px;\">'+xs+'</div>');\n"
+" d.write('</body>');\n"
+" d.write('</html>');\n"
+" d.close();\n"
+" } catch(e) {\n"
+" alert('Print function not supported by this browser!');\n"
+" }\n"
+"}\n"
+"\n"
+"\n"
+"\n"
"\n"
diff --git a/src/tagreader.cpp b/src/tagreader.cpp
index 36119e2..226a726 100644
--- a/src/tagreader.cpp
+++ b/src/tagreader.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -35,6 +35,7 @@
#include "util.h"
#include "message.h"
#include "defargs.h"
+#include "arguments.h"
//#include "reflist.h"
/*! Information about an linkable anchor */
diff --git a/src/tagreader.h b/src/tagreader.h
index ef05d5c..8366cbb 100644
--- a/src/tagreader.h
+++ b/src/tagreader.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/tclscanner.h b/src/tclscanner.h
index b586450..8f9d280 100644
--- a/src/tclscanner.h
+++ b/src/tclscanner.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 by Dimitri van Heesch.
* Copyright (C) 2010-2011 by Rene Zaumseil
*
* Permission to use, copy, modify, and distribute this software and its
diff --git a/src/tclscanner.l b/src/tclscanner.l
index fec5dc7..67b8c6d 100644
--- a/src/tclscanner.l
+++ b/src/tclscanner.l
@@ -46,6 +46,7 @@
#include <qstringlist.h>
#include <qlist.h>
#include <qmap.h>
+#include "arguments.h"
#define YY_NEVER_INTERACTIVE 1
diff --git a/src/textdocvisitor.cpp b/src/textdocvisitor.cpp
index dd7e181..b0c3ec2 100644
--- a/src/textdocvisitor.cpp
+++ b/src/textdocvisitor.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/textdocvisitor.h b/src/textdocvisitor.h
index 5646064..66ace1a 100644
--- a/src/textdocvisitor.h
+++ b/src/textdocvisitor.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator.h b/src/translator.h
index 07c83ea..47a9417 100644
--- a/src/translator.h
+++ b/src/translator.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_am.h b/src/translator_am.h
index f935c5f..3eac0cc 100644
--- a/src/translator_am.h
+++ b/src/translator_am.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_ar.h b/src/translator_ar.h
index b6f6e7c..6738537 100644
--- a/src/translator_ar.h
+++ b/src/translator_ar.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_br.h b/src/translator_br.h
index 39dc859..d36d466 100644
--- a/src/translator_br.h
+++ b/src/translator_br.h
@@ -1,5 +1,5 @@
/******************************************************************************
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_ca.h b/src/translator_ca.h
index 4104e34..595fe67 100644
--- a/src/translator_ca.h
+++ b/src/translator_ca.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_cn.h b/src/translator_cn.h
index 54bbcf4..a77e436 100644
--- a/src/translator_cn.h
+++ b/src/translator_cn.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_cz.h b/src/translator_cz.h
index 63ab495..3120e2f 100644
--- a/src/translator_cz.h
+++ b/src/translator_cz.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_de.h b/src/translator_de.h
index d825cc2..35a1dc3 100644
--- a/src/translator_de.h
+++ b/src/translator_de.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_dk.h b/src/translator_dk.h
index bca066f..71beda7 100644
--- a/src/translator_dk.h
+++ b/src/translator_dk.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_en.h b/src/translator_en.h
index 5d312a4..0dfde48 100644
--- a/src/translator_en.h
+++ b/src/translator_en.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_eo.h b/src/translator_eo.h
index 0deb979..c273791 100644
--- a/src/translator_eo.h
+++ b/src/translator_eo.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_es.h b/src/translator_es.h
index 7b57f3b..eebfddd 100644
--- a/src/translator_es.h
+++ b/src/translator_es.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_fa.h b/src/translator_fa.h
index e385d79..dbfafca 100644
--- a/src/translator_fa.h
+++ b/src/translator_fa.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_fi.h b/src/translator_fi.h
index d35d698..148b140 100644
--- a/src/translator_fi.h
+++ b/src/translator_fi.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_fr.h b/src/translator_fr.h
index 373c364..4b654ce 100644
--- a/src/translator_fr.h
+++ b/src/translator_fr.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_gr.h b/src/translator_gr.h
index 8d38cf3..bcf6b27 100644
--- a/src/translator_gr.h
+++ b/src/translator_gr.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_hr.h b/src/translator_hr.h
index e175aa5..f193304 100644
--- a/src/translator_hr.h
+++ b/src/translator_hr.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_hu.h b/src/translator_hu.h
index 17ed254..70d7186 100644
--- a/src/translator_hu.h
+++ b/src/translator_hu.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_id.h b/src/translator_id.h
index f0d7afc..2206906 100644
--- a/src/translator_id.h
+++ b/src/translator_id.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2007 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_it.h b/src/translator_it.h
index f3f9245..037d408 100644
--- a/src/translator_it.h
+++ b/src/translator_it.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_je.h b/src/translator_je.h
index 1368e6f..09bb066 100644
--- a/src/translator_je.h
+++ b/src/translator_je.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_jp.h b/src/translator_jp.h
index fb01d2a..1ba24bc 100644
--- a/src/translator_jp.h
+++ b/src/translator_jp.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_ke.h b/src/translator_ke.h
index ce5b26e..4874a5c 100644
--- a/src/translator_ke.h
+++ b/src/translator_ke.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_kr.h b/src/translator_kr.h
index 752d980..acaf8ee 100644
--- a/src/translator_kr.h
+++ b/src/translator_kr.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_lt.h b/src/translator_lt.h
index 96aec3e..3f1bcb6 100644
--- a/src/translator_lt.h
+++ b/src/translator_lt.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_mk.h b/src/translator_mk.h
index 3ec5b55..d656609 100644
--- a/src/translator_mk.h
+++ b/src/translator_mk.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_nl.h b/src/translator_nl.h
index 402112e..f0cc795 100644
--- a/src/translator_nl.h
+++ b/src/translator_nl.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_no.h b/src/translator_no.h
index c4ed2b5..29b2648 100644
--- a/src/translator_no.h
+++ b/src/translator_no.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_pl.h b/src/translator_pl.h
index db301be..038bd5e 100644
--- a/src/translator_pl.h
+++ b/src/translator_pl.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_pt.h b/src/translator_pt.h
index c3fd310..fa60916 100644
--- a/src/translator_pt.h
+++ b/src/translator_pt.h
@@ -1,5 +1,5 @@
/******************************************************************************
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_ro.h b/src/translator_ro.h
index 3fbbbf1..22b769d 100644
--- a/src/translator_ro.h
+++ b/src/translator_ro.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_ru.h b/src/translator_ru.h
index 922845a..e7f7d95 100644
--- a/src/translator_ru.h
+++ b/src/translator_ru.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_sc.h b/src/translator_sc.h
index ffc2f31..6555cf5 100644
--- a/src/translator_sc.h
+++ b/src/translator_sc.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_si.h b/src/translator_si.h
index aa25943..5d0182a 100644
--- a/src/translator_si.h
+++ b/src/translator_si.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_sk.h b/src/translator_sk.h
index 1f29b2c..904b609 100644
--- a/src/translator_sk.h
+++ b/src/translator_sk.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_sr.h b/src/translator_sr.h
index d7af204..15d6700 100644
--- a/src/translator_sr.h
+++ b/src/translator_sr.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_sv.h b/src/translator_sv.h
index b95e05a..f262eda 100644
--- a/src/translator_sv.h
+++ b/src/translator_sv.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_tr.h b/src/translator_tr.h
index cf74639..5906364 100644
--- a/src/translator_tr.h
+++ b/src/translator_tr.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_tw.h b/src/translator_tw.h
index 19a873f..8777ae5 100644
--- a/src/translator_tw.h
+++ b/src/translator_tw.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_ua.h b/src/translator_ua.h
index 3ace830..022100d 100644
--- a/src/translator_ua.h
+++ b/src/translator_ua.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_vi.h b/src/translator_vi.h
index 8a294fd..971f12b 100644
--- a/src/translator_vi.h
+++ b/src/translator_vi.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translator_za.h b/src/translator_za.h
index 5c68163..46f5a05 100644
--- a/src/translator_za.h
+++ b/src/translator_za.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/translatordecoder.h b/src/translatordecoder.h
index 90f01fa..07716fb 100644
--- a/src/translatordecoder.h
+++ b/src/translatordecoder.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/types.h b/src/types.h
new file mode 100644
index 0000000..a8b2db6
--- /dev/null
+++ b/src/types.h
@@ -0,0 +1,92 @@
+/******************************************************************************
+ *
+ * Copyright (C) 1997-2012 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
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ * Documents produced by Doxygen are derivative works derived from the
+ * input used in their production; they are not affected by this license.
+ *
+ */
+
+#ifndef TYPES_H
+#define TYPES_H
+
+#include "qtbc.h"
+
+/** @file
+ * @brief This file contains a number of basic enums and types.
+ */
+
+enum Protection { Public, Protected, Private, Package } ;
+enum Specifier { Normal, Virtual, Pure } ;
+enum MethodTypes { Method, Signal, Slot, DCOP, Property, Event };
+enum RelatesType { Simple, Duplicate, MemberOf };
+enum Relationship { Member, Related, Foreign };
+enum SrcLangExt
+{
+ SrcLangExt_Unknown = 0x00000,
+ SrcLangExt_IDL = 0x00008,
+ SrcLangExt_Java = 0x00010,
+ SrcLangExt_CSharp = 0x00020,
+ SrcLangExt_D = 0x00040,
+ SrcLangExt_PHP = 0x00080,
+ SrcLangExt_ObjC = 0x00100,
+ SrcLangExt_Cpp = 0x00200,
+ SrcLangExt_JS = 0x00400,
+ SrcLangExt_Python = 0x00800,
+ SrcLangExt_Fortran = 0x01000,
+ SrcLangExt_VHDL = 0x02000,
+ SrcLangExt_XML = 0x04000,
+ SrcLangExt_Tcl = 0x08000,
+ SrcLangExt_Markdown = 0x10000
+};
+
+struct Grouping
+{
+ enum GroupPri_t
+ {
+ GROUPING_LOWEST,
+ GROUPING_AUTO_WEAK = GROUPING_LOWEST, //!< membership in group was defined via \@weakgroup
+ GROUPING_AUTO_ADD, //!< membership in group was defined via \@add[to]group
+ GROUPING_AUTO_DEF, //!< membership in group was defined via \@defgroup
+ GROUPING_AUTO_HIGHEST = GROUPING_AUTO_DEF,
+ GROUPING_INGROUP, //!< membership in group was defined by \@ingroup
+ GROUPING_HIGHEST = GROUPING_INGROUP
+ };
+
+ static const char *getGroupPriName( GroupPri_t priority )
+ {
+ switch( priority )
+ {
+ case GROUPING_AUTO_WEAK:
+ return "@weakgroup";
+ case GROUPING_AUTO_ADD:
+ return "@addtogroup";
+ case GROUPING_AUTO_DEF:
+ return "@defgroup";
+ case GROUPING_INGROUP:
+ return "@ingroup";
+ }
+ return "???";
+ }
+
+ Grouping( const char *gn, GroupPri_t p ) : groupname(gn), pri(p) {}
+ Grouping( const Grouping &g ) : groupname(g.groupname), pri(g.pri) {}
+ QCString groupname; //!< name of the group
+ GroupPri_t pri; //!< priority of this definition
+
+};
+
+struct ListItemInfo
+{
+ QCString type;
+ int itemId;
+};
+
+
+#endif
diff --git a/src/util.cpp b/src/util.cpp
index 3859c97..08cf0cf 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -53,6 +53,8 @@
#include "bufstr.h"
#include "image.h"
#include "growbuf.h"
+#include "entry.h"
+#include "arguments.h"
#define ENABLE_TRACINGSUPPORT 0
@@ -1737,7 +1739,7 @@ void linkifyText(const TextGeneratorIntf &out,Definition *scope,
bool keepSpaces,int indentLevel)
{
//printf("linkify=`%s'\n",text);
- static QRegExp regExp("[a-z_A-Z\\x80-\\xFF][~!a-z_A-Z0-9.:\\x80-\\xFF]*");
+ static QRegExp regExp("[a-z_A-Z\\x80-\\xFF][~!a-z_A-Z0-9$\\\\.:\\x80-\\xFF]*");
static QRegExp regExpSplit("(?!:),");
QCString txtStr=text;
int strLen = txtStr.length();
@@ -1795,7 +1797,7 @@ void linkifyText(const TextGeneratorIntf &out,Definition *scope,
}
// get word from string
QCString word=txtStr.mid(newIndex,matchLen);
- QCString matchWord = substitute(word,".","::");
+ QCString matchWord = substitute(substitute(word,"\\","::"),".","::");
//printf("linkifyText word=%s matchWord=%s scope=%s\n",
// word.data(),matchWord.data(),scope?scope->name().data():"<none>");
bool found=FALSE;
@@ -2273,6 +2275,8 @@ QCString fileToString(const char *name,bool filter,bool isSourceCode)
contents.at(totalSize-2)='\n'; // to help the scanner
contents.at(totalSize-1)='\0';
portable_pclose(f);
+ Debug::print(Debug::FilterOutput, 0, "Filter output\n");
+ Debug::print(Debug::FilterOutput,0,"-------------\n%s\n-------------\n",contents.data());
return transcodeCharacterStringToUTF8(contents);
}
}
@@ -6616,6 +6620,28 @@ static QCString replaceAliasArguments(const QCString &aliasValue,const QCString
return result;
}
+static QCString escapeCommas(const QCString &s)
+{
+ QGString result;
+ const char *p = s.data();
+ char c,pc=0;
+ while ((c=*p++))
+ {
+ if (c==',' && pc!='\\')
+ {
+ result+="\\,";
+ }
+ else
+ {
+ result+=c;
+ }
+ pc=c;
+ }
+ result+='\0';
+ //printf("escapeCommas: '%s'->'%s'\n",s.data(),result.data());
+ return result.data();
+}
+
static QCString expandAliasRec(const QCString s)
{
QCString result;
@@ -6627,18 +6653,28 @@ static QCString expandAliasRec(const QCString s)
result+=value.mid(p,i-p);
QCString args = extractAliasArgs(value,i+l);
bool hasArgs = !args.isEmpty(); // found directly after command
- QCString cmd;
+ int argsLen = args.length();
+ QCString cmd = value.mid(i+1,l-1);
+ QCString cmdNoArgs = cmd;
+ int numArgs=0;
if (hasArgs)
{
- int numArgs = countAliasArguments(args);
- cmd = value.mid(i+1,l-1)+QCString().sprintf("{%d}",numArgs); // alias name + {n}
- }
- else
- {
- cmd = value.mid(i+1,l-1);
+ numArgs = countAliasArguments(args);
+ cmd += QCString().sprintf("{%d}",numArgs); // alias name + {n}
}
QCString *aliasText=Doxygen::aliasDict.find(cmd);
- //printf("Found command '%s' args='%s' aliasText=%s\n",cmd.data(),args.data(),aliasText?aliasText->data():"<none>");
+ if (numArgs>1 && aliasText==0)
+ { // in case there is no command with numArgs parameters, but there is a command with 1 parameter,
+ // we also accept all text as the argument of that command (so you don't have to escape commas)
+ aliasText=Doxygen::aliasDict.find(cmdNoArgs+"{1}");
+ if (aliasText)
+ {
+ cmd = cmdNoArgs+"{1}";
+ args = escapeCommas(args); // escape , so that everything is seen as one argument
+ }
+ }
+ //printf("Found command s='%s' cmd='%s' numArgs=%d args='%s' aliasText=%s\n",
+ // s.data(),cmd.data(),numArgs,args.data(),aliasText?aliasText->data():"<none>");
if (aliasesProcessed.find(cmd)==0 && aliasText) // expand the alias
{
//printf("is an alias!\n");
@@ -6653,7 +6689,7 @@ static QCString expandAliasRec(const QCString s)
result+=expandAliasRec(val);
aliasesProcessed.remove(cmd);
p=i+l;
- if (hasArgs) p+=args.length()+2;
+ if (hasArgs) p+=argsLen+2;
}
else // command is not an alias
{
@@ -6871,6 +6907,9 @@ bool readInputFile(const char *fileName,BufStr &inBuf)
inBuf.addArray(buf,numRead),size+=numRead;
}
portable_pclose(f);
+ inBuf.at(inBuf.curPos()) ='\0';
+ Debug::print(Debug::FilterOutput, 0, "Filter output\n");
+ Debug::print(Debug::FilterOutput,0,"-------------\n%s\n-------------\n",inBuf.data());
}
int start=0;
@@ -7187,13 +7226,13 @@ QCString langToString(SrcLangExt lang)
}
/** Returns the scope separator to use given the programming language \a lang */
-QCString getLanguageSpecificSeparator(SrcLangExt lang)
+QCString getLanguageSpecificSeparator(SrcLangExt lang,bool classScope)
{
if (lang==SrcLangExt_Java || lang==SrcLangExt_CSharp || lang==SrcLangExt_VHDL || lang==SrcLangExt_Python)
{
return ".";
}
- else if (lang==SrcLangExt_PHP)
+ else if (lang==SrcLangExt_PHP && !classScope)
{
return "\\";
}
@@ -7219,3 +7258,14 @@ QCString correctURL(const QCString &url,const QCString &relPath)
}
//---------------------------------------------------------------------------
+
+bool protectionLevelVisible(Protection prot)
+{
+ static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
+ static bool extractPackage = Config_getBool("EXTRACT_PACKAGE");
+
+ return (prot!=Private && prot!=Package) ||
+ (prot==Private && extractPrivate) ||
+ (prot==Package && extractPackage);
+}
+
diff --git a/src/util.h b/src/util.h
index 9bc235c..f7aa91f 100644
--- a/src/util.h
+++ b/src/util.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -27,6 +27,7 @@
#include <qtextstream.h>
#include <ctype.h>
#include "sortdict.h"
+#include "types.h"
//--------------------------------------------------------------------
@@ -87,27 +88,8 @@ class TextGeneratorOLImpl : public TextGeneratorIntf
//--------------------------------------------------------------------
-enum SrcLangExt
-{
- SrcLangExt_Unknown = 0x00000,
- SrcLangExt_IDL = 0x00008,
- SrcLangExt_Java = 0x00010,
- SrcLangExt_CSharp = 0x00020,
- SrcLangExt_D = 0x00040,
- SrcLangExt_PHP = 0x00080,
- SrcLangExt_ObjC = 0x00100,
- SrcLangExt_Cpp = 0x00200,
- SrcLangExt_JS = 0x00400,
- SrcLangExt_Python = 0x00800,
- SrcLangExt_Fortran = 0x01000,
- SrcLangExt_VHDL = 0x02000,
- SrcLangExt_XML = 0x04000,
- SrcLangExt_Tcl = 0x08000,
- SrcLangExt_Markdown = 0x10000
-};
-
QCString langToString(SrcLangExt lang);
-QCString getLanguageSpecificSeparator(SrcLangExt lang);
+QCString getLanguageSpecificSeparator(SrcLangExt lang,bool classScope=FALSE);
//--------------------------------------------------------------------
@@ -419,5 +401,7 @@ QCString correctURL(const QCString &url,const QCString &relPath);
QCString processMarkup(const QCString &s);
+bool protectionLevelVisible(Protection prot);
+
#endif
diff --git a/src/version.h b/src/version.h
index 116ecdd..4752520 100644
--- a/src/version.h
+++ b/src/version.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/vhdlcode.l b/src/vhdlcode.l
index 9aaeb02..c48078d 100644
--- a/src/vhdlcode.l
+++ b/src/vhdlcode.l
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -40,6 +40,7 @@
#include "membername.h"
#include "searchindex.h"
#include "vhdldocgen.h"
+#include "arguments.h"
#define YY_NEVER_INTERACTIVE 1
diff --git a/src/vhdldocgen.cpp b/src/vhdldocgen.cpp
index 43f8054..5af938f 100644
--- a/src/vhdldocgen.cpp
+++ b/src/vhdldocgen.cpp
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2010 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -45,6 +45,7 @@
#include "parserintf.h"
#include "vhdlscanner.h"
#include "layout.h"
+#include "arguments.h"
#define theTranslator_vhdlType VhdlDocGen::trVhdlType
diff --git a/src/vhdldocgen.h b/src/vhdldocgen.h
index 8850d47..bb9a122 100644
--- a/src/vhdldocgen.h
+++ b/src/vhdldocgen.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2010 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -35,6 +35,7 @@ class FileStorage;
class EntryNav;
class ClassDef;
class MemberDef;
+class Argument;
// wrapper class for the vhdl parser
class MyParserVhdl
diff --git a/src/vhdlparser.y b/src/vhdlparser.y
index 1389f23..41c81aa 100644
--- a/src/vhdlparser.y
+++ b/src/vhdlparser.y
@@ -60,6 +60,7 @@ struct YYMM
#include "vhdlscanner.h"
#include "commentscan.h"
#include "entry.h"
+#include "arguments.h"
//-----------------------------variables ---------------------------------------------------------------------------
static MyParserVhdl* myconv=0;
diff --git a/src/vhdlscanner.h b/src/vhdlscanner.h
index 197de40..bca6460 100644
--- a/src/vhdlscanner.h
+++ b/src/vhdlscanner.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2010 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/xmldocvisitor.cpp b/src/xmldocvisitor.cpp
index 1e135ef..81acba5 100644
--- a/src/xmldocvisitor.cpp
+++ b/src/xmldocvisitor.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/xmldocvisitor.h b/src/xmldocvisitor.h
index 531cd38..dbe4bd5 100644
--- a/src/xmldocvisitor.h
+++ b/src/xmldocvisitor.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/src/xmlgen.cpp b/src/xmlgen.cpp
index b398ac3..5f1532f 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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
@@ -32,6 +32,7 @@
#include "docparser.h"
#include "language.h"
#include "parserintf.h"
+#include "arguments.h"
#include <qdir.h>
#include <qfile.h>
diff --git a/src/xmlgen.h b/src/xmlgen.h
index 39869ee..9193956 100644
--- a/src/xmlgen.h
+++ b/src/xmlgen.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2011 by Dimitri van Heesch.
+ * Copyright (C) 1997-2012 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/winbuild/Doxygen.vcproj b/winbuild/Doxygen.vcproj
index 07df324..24f61c8 100644
--- a/winbuild/Doxygen.vcproj
+++ b/winbuild/Doxygen.vcproj
@@ -432,6 +432,10 @@
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
+ RelativePath="..\src\arguments.cpp"
+ >
+ </File>
+ <File
RelativePath="..\src\ce_lex.cpp"
>
</File>
@@ -3585,6 +3589,14 @@
Filter="h;hpp;hxx;hm;inl"
>
<File
+ RelativePath="..\src\arguments.h"
+ >
+ </File>
+ <File
+ RelativePath="..\src\bib2xhtml.h"
+ >
+ </File>
+ <File
RelativePath="..\src\bufstr.h"
>
</File>