summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--INSTALL4
-rw-r--r--LICENSE4
-rw-r--r--README4
-rw-r--r--VERSION2
-rw-r--r--addon/configgen/Makefile.in2
-rw-r--r--addon/configgen/config_templ.h2
-rw-r--r--addon/configgen/config_templ.l2
-rw-r--r--addon/configgen/configgen.pro.in2
-rw-r--r--addon/configgen/qtbc.h2
-rw-r--r--addon/doxywizard/Makefile.in2
-rw-r--r--addon/doxywizard/doxywizard.pro.in2
-rw-r--r--addon/doxywizard/doxywizard_templ.cpp2
-rw-r--r--addon/doxywizard/doxywizard_templ.h2
-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/pagewidget.cpp2
-rw-r--r--addon/doxywizard/pagewidget.h2
-rw-r--r--addon/doxywizard/pixmaps.cpp2
-rw-r--r--addon/doxywizard/pixmaps.h2
-rw-r--r--addon/xmlread/qtbc.h2
-rwxr-xr-xconfigure2
-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/autolink.doc2
-rw-r--r--doc/commands.doc2
-rw-r--r--doc/config.doc9
-rw-r--r--doc/diagrams.doc2
-rw-r--r--doc/docblocks.doc2
-rw-r--r--doc/doxygen.sty6
-rw-r--r--doc/doxygen_manual.tex4
-rw-r--r--doc/doxygen_usage.doc2
-rw-r--r--doc/doxysearch_usage.doc2
-rw-r--r--doc/doxytag_usage.doc2
-rw-r--r--doc/doxywizard_usage.doc2
-rw-r--r--doc/external.doc2
-rw-r--r--doc/faq.doc2
-rw-r--r--doc/features.doc2
-rw-r--r--doc/formulas.doc2
-rw-r--r--doc/grouping.doc2
-rw-r--r--doc/history.doc2
-rw-r--r--doc/htmlcmds.doc2
-rw-r--r--doc/index.doc4
-rw-r--r--doc/install.doc6
-rw-r--r--doc/installdox_usage.doc2
-rw-r--r--doc/language.doc2
-rw-r--r--doc/output.doc2
-rw-r--r--doc/preprocessing.doc2
-rw-r--r--doc/starting.doc2
-rw-r--r--doc/todo.doc2
-rw-r--r--doc/trouble.doc2
-rw-r--r--packages/rpm/doxygen.spec2
-rw-r--r--qtools/qdir.cpp29
-rw-r--r--qtools/qdir_win32.cpp2
-rw-r--r--qtools/qfeatures.h30
-rw-r--r--qtools/qfile_win32.cpp2
-rw-r--r--qtools/qfileinfo_win32.cpp2
-rw-r--r--qtools/qglobal.cpp13
-rw-r--r--qtools/qglobal.h19
-rw-r--r--qtools/qstring.cpp10
-rw-r--r--qtools/qtextcodec.cpp93
-rw-r--r--qtools/qxml.cpp405
-rw-r--r--qtools/qxml.h21
-rw-r--r--src/Makefile.in2
-rw-r--r--src/bufstr.h61
-rw-r--r--src/classdef.cpp65
-rw-r--r--src/classdef.h6
-rw-r--r--src/classlist.cpp29
-rw-r--r--src/classlist.h5
-rw-r--r--src/code.h2
-rw-r--r--src/code.l5
-rw-r--r--src/config.h2
-rw-r--r--src/config.l2
-rw-r--r--src/constexp.h2
-rw-r--r--src/constexp.l2
-rw-r--r--src/cppvalue.cpp2
-rw-r--r--src/cppvalue.h2
-rw-r--r--src/debug.cpp2
-rw-r--r--src/debug.h2
-rw-r--r--src/declinfo.h2
-rw-r--r--src/declinfo.l11
-rw-r--r--src/defargs.h2
-rw-r--r--src/defargs.l2
-rw-r--r--src/define.cpp2
-rw-r--r--src/define.h2
-rw-r--r--src/definition.cpp2
-rw-r--r--src/definition.h7
-rw-r--r--src/diagram.cpp2
-rw-r--r--src/diagram.h2
-rw-r--r--src/doc.h2
-rw-r--r--src/doc.l27
-rw-r--r--src/dot.cpp2
-rw-r--r--src/dot.h2
-rw-r--r--src/doxygen.cpp108
-rw-r--r--src/doxygen.h32
-rw-r--r--src/doxygen.pro.in6
-rw-r--r--src/doxygen.t2
-rw-r--r--src/doxysearch.cpp2
-rw-r--r--src/doxytag.l4
-rw-r--r--src/entry.cpp2
-rw-r--r--src/entry.h90
-rw-r--r--src/example.h2
-rw-r--r--src/filedef.cpp3
-rw-r--r--src/filedef.h8
-rw-r--r--src/filename.cpp2
-rw-r--r--src/filename.h2
-rw-r--r--src/formula.cpp2
-rw-r--r--src/formula.h2
-rw-r--r--src/gifenc.cpp2
-rw-r--r--src/gifenc.h2
-rw-r--r--src/groupdef.cpp2
-rw-r--r--src/groupdef.h2
-rw-r--r--src/htmlgen.cpp10
-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.cpp199
-rw-r--r--src/index.h6
-rw-r--r--src/instdox.cpp2
-rw-r--r--src/instdox.h2
-rw-r--r--src/language.cpp2
-rw-r--r--src/language.h2
-rw-r--r--src/latexgen.cpp53
-rw-r--r--src/latexgen.h4
-rw-r--r--src/logos.cpp2
-rw-r--r--src/logos.h2
-rw-r--r--src/mangen.cpp2
-rw-r--r--src/mangen.h4
-rw-r--r--src/memberdef.cpp17
-rw-r--r--src/memberdef.h2
-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/namespacedef.cpp2
-rw-r--r--src/namespacedef.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/packagedef.cpp122
-rw-r--r--src/packagedef.h62
-rw-r--r--src/page.h2
-rw-r--r--src/pre.h2
-rw-r--r--src/pre.l66
-rw-r--r--src/qtbc.h2
-rw-r--r--src/reflist.cpp2
-rw-r--r--src/reflist.h2
-rw-r--r--src/rtfgen.cpp42
-rw-r--r--src/rtfgen.h2
-rw-r--r--src/scanner.h2
-rw-r--r--src/scanner.l110
-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/suffixtree.cpp2
-rw-r--r--src/suffixtree.h2
-rw-r--r--src/tagreader.cpp11
-rw-r--r--src/tagreader.h2
-rw-r--r--src/translator.h42
-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_es.h2
-rw-r--r--src/translator_fi.h2
-rw-r--r--src/translator_fr.h2
-rw-r--r--src/translator_hr.h2
-rw-r--r--src/translator_hu.h2
-rw-r--r--src/translator_it.h2
-rw-r--r--src/translator_jp.h2
-rw-r--r--src/translator_kr.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.h3
-rw-r--r--src/translator_se.h2
-rw-r--r--src/translator_si.h2
-rw-r--r--src/util.cpp32
-rw-r--r--src/util.h2
-rw-r--r--src/version.h2
-rw-r--r--src/xml.cpp2
-rw-r--r--src/xml.h2
-rwxr-xr-xwintools/make.pl8
198 files changed, 1520 insertions, 697 deletions
diff --git a/INSTALL b/INSTALL
index 4973d7b..deffb53 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,6 +1,6 @@
-DOXYGEN Version 1.2.4
+DOXYGEN Version 1.2.4-20010107
Please read the installation section of the manual for instructions.
--------
-Dimitri van Heesch (24 December 2000)
+Dimitri van Heesch (07 January 2001)
diff --git a/LICENSE b/LICENSE
index 60549be..219ec28 100644
--- a/LICENSE
+++ b/LICENSE
@@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
+ Copyright (C) yyyy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -313,7 +313,7 @@ Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
- Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision version 69, Copyright (C) yyyy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
diff --git a/README b/README
index 644cf1d..941d958 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-DOXYGEN Version 1.2.4
+DOXYGEN Version 1.2.4-20010107
Please read INSTALL for compilation instructions.
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
-Dimitri van Heesch (24 December 2000)
+Dimitri van Heesch (07 January 2001)
diff --git a/VERSION b/VERSION
index e8ea05d..d8b8c4e 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.2.4
+1.2.4-20010107
diff --git a/addon/configgen/Makefile.in b/addon/configgen/Makefile.in
index 40aff7d..f5ad09a 100644
--- a/addon/configgen/Makefile.in
+++ b/addon/configgen/Makefile.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2000 by Dimitri van Heesch.
+# Copyright (C) 1997-2001 by Dimitri van 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/configgen/config_templ.h b/addon/configgen/config_templ.h
index 50b479b..cb26f9a 100644
--- a/addon/configgen/config_templ.h
+++ b/addon/configgen/config_templ.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/configgen/config_templ.l b/addon/configgen/config_templ.l
index f680911..770ad3d 100644
--- a/addon/configgen/config_templ.l
+++ b/addon/configgen/config_templ.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/configgen/configgen.pro.in b/addon/configgen/configgen.pro.in
index 26b9c51..12ddf92 100644
--- a/addon/configgen/configgen.pro.in
+++ b/addon/configgen/configgen.pro.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2000 by Dimitri van Heesch.
+# Copyright (C) 1997-2001 by Dimitri van 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/configgen/qtbc.h b/addon/configgen/qtbc.h
index 570bf93..3bbdc7a 100644
--- a/addon/configgen/qtbc.h
+++ b/addon/configgen/qtbc.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 fee009b..249190a 100644
--- a/addon/doxywizard/Makefile.in
+++ b/addon/doxywizard/Makefile.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2000 by Dimitri van Heesch.
+# Copyright (C) 1997-2001 by Dimitri van 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.pro.in b/addon/doxywizard/doxywizard.pro.in
index 3802d6f..b7a690f 100644
--- a/addon/doxywizard/doxywizard.pro.in
+++ b/addon/doxywizard/doxywizard.pro.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2000 by Dimitri van Heesch.
+# Copyright (C) 1997-2001 by Dimitri van 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_templ.cpp b/addon/doxywizard/doxywizard_templ.cpp
index 4ba932a..cafec21 100644
--- a/addon/doxywizard/doxywizard_templ.cpp
+++ b/addon/doxywizard/doxywizard_templ.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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_templ.h b/addon/doxywizard/doxywizard_templ.h
index 9df50bf..92e35e1 100644
--- a/addon/doxywizard/doxywizard_templ.h
+++ b/addon/doxywizard/doxywizard_templ.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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.cpp b/addon/doxywizard/inputbool.cpp
index b0db14b..c63696a 100644
--- a/addon/doxywizard/inputbool.cpp
+++ b/addon/doxywizard/inputbool.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 9102be7..2bd8d7a 100644
--- a/addon/doxywizard/inputbool.h
+++ b/addon/doxywizard/inputbool.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 54d7d02..702988c 100644
--- a/addon/doxywizard/inputint.cpp
+++ b/addon/doxywizard/inputint.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 ad6d2de..434cb39 100644
--- a/addon/doxywizard/inputint.h
+++ b/addon/doxywizard/inputint.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 2895a18..a20ba68 100644
--- a/addon/doxywizard/inputstring.cpp
+++ b/addon/doxywizard/inputstring.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 5928b80..e1b42cf 100644
--- a/addon/doxywizard/inputstring.h
+++ b/addon/doxywizard/inputstring.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 60bc4bf..9ab9a5b 100644
--- a/addon/doxywizard/inputstrlist.cpp
+++ b/addon/doxywizard/inputstrlist.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 496aeed..3bf6371 100644
--- a/addon/doxywizard/inputstrlist.h
+++ b/addon/doxywizard/inputstrlist.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/pagewidget.cpp b/addon/doxywizard/pagewidget.cpp
index 8323029..7e6920b 100644
--- a/addon/doxywizard/pagewidget.cpp
+++ b/addon/doxywizard/pagewidget.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/pagewidget.h b/addon/doxywizard/pagewidget.h
index 1f188ad..6d238df 100644
--- a/addon/doxywizard/pagewidget.h
+++ b/addon/doxywizard/pagewidget.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/pixmaps.cpp b/addon/doxywizard/pixmaps.cpp
index 6ae7f60..5f2497b 100644
--- a/addon/doxywizard/pixmaps.cpp
+++ b/addon/doxywizard/pixmaps.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/pixmaps.h b/addon/doxywizard/pixmaps.h
index b95b75f..7ec854e 100644
--- a/addon/doxywizard/pixmaps.h
+++ b/addon/doxywizard/pixmaps.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/xmlread/qtbc.h b/addon/xmlread/qtbc.h
index 0091717..51f62dd 100644
--- a/addon/xmlread/qtbc.h
+++ b/addon/xmlread/qtbc.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 c8a79f0..4770f3d 100755
--- a/configure
+++ b/configure
@@ -2,7 +2,7 @@
#
# $Id$
#
-# Copyright (C) 1997-2000 by Dimitri van Heesch.
+# Copyright (C) 1997-2001 by Dimitri van 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.in b/doc/Makefile.in
index eca81ee..b3186ac 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2000 by Dimitri van Heesch.
+# Copyright (C) 1997-2001 by Dimitri van 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 63b77b4..43489ce 100644
--- a/doc/Makefile.latex
+++ b/doc/Makefile.latex
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2000 by Dimitri van Heesch.
+# Copyright (C) 1997-2001 by Dimitri van 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 8d8c0c6..b1a2009 100644
--- a/doc/Makefile.win_make.in
+++ b/doc/Makefile.win_make.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2000 by Dimitri van Heesch.
+# Copyright (C) 1997-2001 by Dimitri van 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 0e7624d..07ea0d0 100644
--- a/doc/Makefile.win_nmake.in
+++ b/doc/Makefile.win_nmake.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2000 by Dimitri van Heesch.
+# Copyright (C) 1997-2001 by Dimitri van 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 2c18ee1..5b69020 100644
--- a/doc/autolink.doc
+++ b/doc/autolink.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/commands.doc b/doc/commands.doc
index 78ba52f..5a6bb82 100644
--- a/doc/commands.doc
+++ b/doc/commands.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/config.doc b/doc/config.doc
index 684710f..653d9a9 100644
--- a/doc/config.doc
+++ b/doc/config.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -1002,9 +1002,10 @@ TAGFILES = file1=loc1 "file2 = loc2" ... </pre>
have to be run to correct the links.
\par Note:
- Each tag file most have a unique name and if a tag file is not located
- in the directory in which doxygen is run, you must also specify the
- path to the tagfile here.
+ Each tag file must have a unique name
+ (where the name does \e not include the path)
+ If a tag file is not located in the directory in which doxygen
+ is run, you must also specify the path to the tagfile here.
\anchor cfg_generate_tagfile
<dt>\c GENERATE_TAGFILE <dd>
diff --git a/doc/diagrams.doc b/doc/diagrams.doc
index 7fd3251..2153f16 100644
--- a/doc/diagrams.doc
+++ b/doc/diagrams.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 8241c43..95d13b5 100644
--- a/doc/docblocks.doc
+++ b/doc/docblocks.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/doxygen.sty b/doc/doxygen.sty
index 2aa736d..86ee4ca 100644
--- a/doc/doxygen.sty
+++ b/doc/doxygen.sty
@@ -1,7 +1,7 @@
%
%
%
-% Copyright (C) 1997-2000 by Dimitri van Heesch.
+% Copyright (C) 1997-2001 by Dimitri van Heesch.
%
% Permission to use, copy, modify, and distribute this software and its
% documentation under the terms of the GNU General Public License is hereby
@@ -24,8 +24,8 @@
{\fancyplain{}{\bfseries\rightmark}}
\rhead[\fancyplain{}{\bfseries\leftmark}]
{\fancyplain{}{\bfseries\thepage}}
-\rfoot[\fancyplain{}{\bfseries\scriptsize User Manual for Doxygen $VERSION, written by Dimitri van Heesch \copyright 1997-2000}]{}
-\lfoot[]{\fancyplain{}{\bfseries\scriptsize User Manual for Doxygen $VERSION, written by Dimitri van Heesch \copyright 1997-2000}}
+\rfoot[\fancyplain{}{\bfseries\scriptsize User Manual for Doxygen $VERSION, written by Dimitri van Heesch \copyright 1997-2001}]{}
+\lfoot[]{\fancyplain{}{\bfseries\scriptsize User Manual for Doxygen $VERSION, written by Dimitri van Heesch \copyright 1997-2001}}
\cfoot{}
\newenvironment{CompactList}
{\begin{list}{}{
diff --git a/doc/doxygen_manual.tex b/doc/doxygen_manual.tex
index c86184a..be93b99 100644
--- a/doc/doxygen_manual.tex
+++ b/doc/doxygen_manual.tex
@@ -1,7 +1,7 @@
%
%
%
-% Copyright (C) 1997-2000 by Dimitri van Heesch.
+% Copyright (C) 1997-2001 by Dimitri van 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,7 +35,7 @@
\begin{center}
Manual for version $VERSION\\[2ex]
Written by Dimitri van Heesch\\[2ex]
-\copyright 1997-2000
+\copyright 1997-2001
\end{center}
\end{titlepage}
\clearemptydoublepage
diff --git a/doc/doxygen_usage.doc b/doc/doxygen_usage.doc
index d8f4d2f..5796896 100644
--- a/doc/doxygen_usage.doc
+++ b/doc/doxygen_usage.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/doxysearch_usage.doc b/doc/doxysearch_usage.doc
index 477d2d8..fe5f8f8 100644
--- a/doc/doxysearch_usage.doc
+++ b/doc/doxysearch_usage.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/doxytag_usage.doc b/doc/doxytag_usage.doc
index 079e1b7..506dc5f 100644
--- a/doc/doxytag_usage.doc
+++ b/doc/doxytag_usage.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 59c7227..5c17add 100644
--- a/doc/doxywizard_usage.doc
+++ b/doc/doxywizard_usage.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/external.doc b/doc/external.doc
index 640768a..d8f4285 100644
--- a/doc/external.doc
+++ b/doc/external.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 6464c0b..5f38837 100644
--- a/doc/faq.doc
+++ b/doc/faq.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 1fe463f..3c035a0 100644
--- a/doc/features.doc
+++ b/doc/features.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/formulas.doc b/doc/formulas.doc
index 347731b..bd1aa22 100644
--- a/doc/formulas.doc
+++ b/doc/formulas.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 a09cda0..71a8e37 100644
--- a/doc/grouping.doc
+++ b/doc/grouping.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/history.doc b/doc/history.doc
index ddded0a..eb5f2f1 100644
--- a/doc/history.doc
+++ b/doc/history.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 b835c37..3a5177b 100644
--- a/doc/htmlcmds.doc
+++ b/doc/htmlcmds.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/index.doc b/doc/index.doc
index 86e10bb..e116ab9 100644
--- a/doc/index.doc
+++ b/doc/index.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -29,7 +29,7 @@ Version: $(VERSION)
\addindex license
\addindex GPL
-Copyright &copy; 1997-2000 by
+Copyright &copy; 1997-2001 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 8a2ac19..fe05177 100644
--- a/doc/install.doc
+++ b/doc/install.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -455,6 +455,10 @@ Compilation is now done by performing the following steps:
<code>doxysearch.exe</code> using Microsoft's Visual C++ compiler
(The compiler should not produce any serious warnings or errors).
+ You can use also the <code>bcc</code> argument to build
+ executables using the Borland C++ compiler, or
+ <code>mingw</code> argument to compile using GNU gcc.
+
<li>To build the examples, go to the <code>examples</code> subdirectory
and type:
diff --git a/doc/installdox_usage.doc b/doc/installdox_usage.doc
index a344b53..1662a10 100644
--- a/doc/installdox_usage.doc
+++ b/doc/installdox_usage.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/language.doc b/doc/language.doc
index 8a6fcf6..68871e2 100644
--- a/doc/language.doc
+++ b/doc/language.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/output.doc b/doc/output.doc
index 48d282f..1c6508f 100644
--- a/doc/output.doc
+++ b/doc/output.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 2300525..9eb5f6c 100644
--- a/doc/preprocessing.doc
+++ b/doc/preprocessing.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/starting.doc b/doc/starting.doc
index 70dfc50..852ff70 100644
--- a/doc/starting.doc
+++ b/doc/starting.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/todo.doc b/doc/todo.doc
index 7003ca0..5ab9df0 100644
--- a/doc/todo.doc
+++ b/doc/todo.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/trouble.doc b/doc/trouble.doc
index 6e7be24..9aaf44b 100644
--- a/doc/trouble.doc
+++ b/doc/trouble.doc
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec
index 77ffff3..1d211ad 100644
--- a/packages/rpm/doxygen.spec
+++ b/packages/rpm/doxygen.spec
@@ -1,5 +1,5 @@
Name: doxygen
-Version: 1.2.4
+Version: 1.2.4-20010107
Summary: documentation system for C, C++ and IDL
Release: 1
Source0: doxygen-%{version}.src.tar.gz
diff --git a/qtools/qdir.cpp b/qtools/qdir.cpp
index 185933a..ed7ed99 100644
--- a/qtools/qdir.cpp
+++ b/qtools/qdir.cpp
@@ -1012,14 +1012,10 @@ QStringList qt_makeFilterList( const QString &filter )
if ( filter.isEmpty() )
return QStringList();
- int i = filter.find( ' ', 0 );
- QChar sep( ' ' );
- if ( i == -1 ) {
- if ( filter.find( ';', 0 ) != -1 ) {
- sep = QChar( ';' );
- i = filter.find( sep, 0 );
- }
- }
+ QChar sep( ';' );
+ int i = filter.find( sep, 0 );
+ if ( i == -1 && filter.find( ' ', 0 ) != -1 )
+ sep = QChar( ' ' );
QStringList lst = QStringList::split( sep, filter );
QStringList lst2;
@@ -1027,22 +1023,7 @@ QStringList qt_makeFilterList( const QString &filter )
for ( ; it != lst.end(); ++it ) {
QString s = *it;
- if ( s[ (int)s.length() - 1 ] == ';' )
- s.remove( s.length() - 1, 1 );
- if ( s[0] == '\"' ) {
- s.remove( 0, 1 );
- while( ++it != lst.end() ) {
- QString s2 = *it;
- s += " "+s2;
- if ( s2[(int)s2.length() -1] == '\"' ) {
- s.remove( s.length() -1, 1 );
- break;
- }
- }
- }
- lst2 << s;
- if ( it == lst.end() )
- break;
+ lst2 << s.stripWhiteSpace();
}
return lst2;
}
diff --git a/qtools/qdir_win32.cpp b/qtools/qdir_win32.cpp
index 70c3563..b1eee66 100644
--- a/qtools/qdir_win32.cpp
+++ b/qtools/qdir_win32.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/qtools/qfeatures.h b/qtools/qfeatures.h
index e2e356c..84fa715 100644
--- a/qtools/qfeatures.h
+++ b/qtools/qfeatures.h
@@ -52,8 +52,6 @@
//
#if defined(QCONFIG_LOCAL)
#include <qconfig-local.h>
-#elif defined(QCONFIG_QPE)
-#include <qconfig-qpe.h>
#elif defined(QCONFIG_MINIMAL)
#include <qconfig-minimal.h>
#elif defined(QCONFIG_SMALL)
@@ -367,15 +365,23 @@
Transformed frame buffer
*/
//#define QT_NO_QWS_TRANSFORMED
+#if defined(QT_NO_NETWORK)
/*!
Remote frame buffer (VNC)
*/
-#define QT_NO_QWS_VNC
+# ifndef QT_NO_QWS_VNC
+# define QT_NO_QWS_VNC
+# endif
+#endif
/*!
1-bit monochrome
*/
//#define QT_NO_QWS_DEPTH_1
/*!
+ 4-bit greyscale
+*/
+//#define QT_NO_QWS_DEPTH_4
+/*!
4-bit VGA
*/
//#define QT_NO_QWS_VGA_16
@@ -397,16 +403,32 @@
*/
//#define QT_NO_QWS_DEPTH_16
/*!
+ 24-bit color
+*/
+//#define QT_NO_QWS_DEPTH_24
+/*!
32-bit color
*/
//#define QT_NO_QWS_DEPTH_32
/*!
- Window manager
+ Window Manager
*/
//#define QT_NO_QWS_MANAGER
/*!
+ Window Manager Styles
+*/
+#define QT_NO_QWS_KDE2_WM_STYLE
+#if defined( QT_NO_QWS_MANAGER ) || defined( QT_NO_IMAGEIO_XPM )
+# define QT_NO_QWS_AQUA_WM_STYLE
+# define QT_NO_QWS_BEOS_WM_STYLE
+# define QT_NO_QWS_KDE_WM_STYLE
+# define QT_NO_QWS_QPE_WM_STYLE
+# define QT_NO_QWS_WINDOWS_WM_STYLE
+#endif
+
+/*!
Saving of fonts
*/
//#define QT_NO_QWS_SAVEFONTS
diff --git a/qtools/qfile_win32.cpp b/qtools/qfile_win32.cpp
index 5272365..fd28d43 100644
--- a/qtools/qfile_win32.cpp
+++ b/qtools/qfile_win32.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/qtools/qfileinfo_win32.cpp b/qtools/qfileinfo_win32.cpp
index 47b8491..bfcc6ac 100644
--- a/qtools/qfileinfo_win32.cpp
+++ b/qtools/qfileinfo_win32.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/qtools/qglobal.cpp b/qtools/qglobal.cpp
index 2789e30..50f5202 100644
--- a/qtools/qglobal.cpp
+++ b/qtools/qglobal.cpp
@@ -589,8 +589,12 @@ void qObsolete( const char *obj, const char *oldfunc, const char *newfunc )
return;
if ( !firstObsoleteWarning(obj, oldfunc) )
return;
- qDebug( "%s::%s: This function is obsolete, use %s instead",
- obj, oldfunc, newfunc );
+ if ( obj )
+ qDebug( "%s::%s: This function is obsolete, use %s instead.",
+ obj, oldfunc, newfunc );
+ else
+ qDebug( "%s: This function is obsolete, use %s instead.",
+ oldfunc, newfunc );
}
void qObsolete( const char *obj, const char *oldfunc )
@@ -599,7 +603,10 @@ void qObsolete( const char *obj, const char *oldfunc )
return;
if ( !firstObsoleteWarning(obj, oldfunc) )
return;
- qDebug( "%s::%s: This function is obsolete.", obj, oldfunc );
+ if ( obj )
+ qDebug( "%s::%s: This function is obsolete.", obj, oldfunc );
+ else
+ qDebug( "%s: This function is obsolete.", oldfunc );
}
void qObsolete( const char *message )
diff --git a/qtools/qglobal.h b/qtools/qglobal.h
index c58e466..9c2b53e 100644
--- a/qtools/qglobal.h
+++ b/qtools/qglobal.h
@@ -39,8 +39,8 @@
#define QGLOBAL_H
-#define QT_VERSION 222
-#define QT_VERSION_STR "2.2.2"
+#define QT_VERSION 223
+#define QT_VERSION_STR "2.2.3"
//
@@ -198,10 +198,6 @@
#if __GNUC__ == 2 && __GNUC_MINOR__ >= 95
#define Q_DELETING_VOID_UNDEFINED
#endif
-#if __GNUC__ == 2 && __GNUC_MINOR__ >= 96
-#define Q_DELETING_VOID_UNDEFINED
-#define Q_FP_CCAST_BROKEN
-#endif
#if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
#define Q_PACKED __attribute__ ((packed))
#endif
@@ -224,6 +220,11 @@
#ifdef __EDG__ // UnixWare7
#define Q_HAS_BOOL_TYPE
#endif
+#elif defined(__DECCXX)
+#define _CC_DEC_
+#if __DECCXX_VER >= 60060005
+#define Q_HAS_BOOL_TYPE
+#endif
#elif defined(__EDG) || defined(__EDG__)
// one observed on SGI DCC, the other documented
#define _CC_EDG_
@@ -236,14 +237,8 @@
#define _CC_SUN_
#if __SUNPRO_CC >= 0x500
#define Q_HAS_BOOL_TYPE
-#define Q_FP_CCAST_BROKEN
#define Q_C_CALLBACKS
#endif
-#elif defined(__DECCXX)
-#define _CC_DEC_
-#if __DECCXX_VER >= 60060005
-#define Q_HAS_BOOL_TYPE
-#endif
#elif defined(__CDS__)
#define _CC_CDS_
#define Q_HAS_BOOL_TYPE
diff --git a/qtools/qstring.cpp b/qtools/qstring.cpp
index 85962b2..e13ffc8 100644
--- a/qtools/qstring.cpp
+++ b/qtools/qstring.cpp
@@ -13928,8 +13928,14 @@ uint QString::toUInt( bool *ok, int base ) const
double QString::toDouble( bool *ok ) const
{
char *end;
- const char *a = latin1();
- double val = strtod( a ? a : "", &end );
+
+ QCString a = latin1();
+ // Just latin1() is not sufficient, since U0131 would look like '1'.
+ for (uint i=0; i<d->len; i++)
+ if ( d->unicode[i].row() )
+ a[(int)i]='z';
+
+ double val = strtod( a.data() ? a.data() : "", &end );
if ( ok )
*ok = ( a && *a && ( end == 0 || *end == '\0' ) );
return val;
diff --git a/qtools/qtextcodec.cpp b/qtools/qtextcodec.cpp
index 9f94cb6..cdecfce 100644
--- a/qtools/qtextcodec.cpp
+++ b/qtools/qtextcodec.cpp
@@ -802,7 +802,10 @@ QCString QTextCodec::fromUnicode(const QString& uc) const
*/
QString QTextCodec::toUnicode(const QByteArray& a, int len) const
{
- return toUnicode(a.data(),len);
+ int l = a.size();
+ if( l > 0 && a.data()[l - 1] == '\0' ) l--;
+ l = QMIN( l, len );
+ return toUnicode( a.data(), l );
}
/*!
@@ -810,7 +813,9 @@ QString QTextCodec::toUnicode(const QByteArray& a, int len) const
*/
QString QTextCodec::toUnicode(const QByteArray& a) const
{
- return toUnicode(a.data(),a.size());
+ int l = a.size();
+ if( l > 0 && a.data()[l - 1] == '\0' ) l--;
+ return toUnicode( a.data(), l );
}
/*!
@@ -976,13 +981,16 @@ public:
const int maxlen=100;
char line[maxlen];
char esc='\\';
+ char comm='%';
bool incmap = FALSE;
while (iod->readLine(line,maxlen) > 0) {
if (0==qstrnicmp(line,"<code_set_name>",15))
n = line+15;
- else if (0==qstrnicmp(line,"<escape_char>",13))
+ else if (0==qstrnicmp(line,"<escape_char> ",14))
esc = line[14];
- else if (0==qstrnicmp(line,"% alias ",8)) {
+ else if (0==qstrnicmp(line,"<comment_char> ",15))
+ comm = line[15];
+ else if (line[0]==comm && 0==qstrnicmp(line+1," alias ",7)) {
aliases.append(line+8);
} else if (0==qstrnicmp(line,"CHARMAP",7)) {
if (!from_unicode_page) {
@@ -1004,45 +1012,54 @@ public:
char mb[maxmb+1];
int nmb=0;
- while (*cursor && *cursor!=' ')
- cursor++;
- while (*cursor && *cursor!=esc)
- cursor++;
- byte = getByte(cursor);
-
- if ( *cursor == esc ) {
- if ( !to_unicode_multibyte ) {
- to_unicode_multibyte = new QMultiByteUnicodeTable[256];
- for (int i=0; i<256; i++) {
- to_unicode_multibyte[i].unicode = to_unicode[i];
- to_unicode_multibyte[i].multibyte = 0;
- }
- delete [] to_unicode;
- to_unicode = 0;
- }
- QMultiByteUnicodeTable* mbut = to_unicode_multibyte+byte;
- mb[nmb++] = byte;
- while ( nmb < maxmb && *cursor == esc ) {
- // Always at least once
+ while (*cursor) {
+ if (cursor[0]=='<' && cursor[1]=='U' &&
+ cursor[2]>='0' && cursor[2]<='9' &&
+ cursor[3]>='0' && cursor[3]<='9') {
+
+ unicode = strtol(cursor+2,&cursor,16);
+
+ } else if (*cursor==esc) {
- mbut->unicode = CHAINED;
byte = getByte(cursor);
- mb[nmb++] = byte;
- if (!mbut->multibyte) {
- mbut->multibyte =
- new QMultiByteUnicodeTable[256];
+
+ if ( *cursor == esc ) {
+ if ( !to_unicode_multibyte ) {
+ to_unicode_multibyte =
+ new QMultiByteUnicodeTable[256];
+ for (int i=0; i<256; i++) {
+ to_unicode_multibyte[i].unicode =
+ to_unicode[i];
+ to_unicode_multibyte[i].multibyte = 0;
+ }
+ delete [] to_unicode;
+ to_unicode = 0;
+ }
+ QMultiByteUnicodeTable* mbut =
+ to_unicode_multibyte+byte;
+ mb[nmb++] = byte;
+ while ( nmb < maxmb && *cursor == esc ) {
+ // Always at least once
+
+ mbut->unicode = CHAINED;
+ byte = getByte(cursor);
+ mb[nmb++] = byte;
+ if (!mbut->multibyte) {
+ mbut->multibyte =
+ new QMultiByteUnicodeTable[256];
+ }
+ mbut = mbut->multibyte+byte;
+ mb_unicode = & mbut->unicode;
+ }
+
+ if ( nmb > max_bytes_per_char )
+ max_bytes_per_char = nmb;
}
- mbut = mbut->multibyte+byte;
- mb_unicode = & mbut->unicode;
+ } else {
+ cursor++;
}
-
- if ( nmb > max_bytes_per_char )
- max_bytes_per_char = nmb;
}
- while (*cursor && (*cursor!='<' || cursor[1]!='U'))
- cursor++;
- if ( *cursor )
- unicode = strtol(cursor+2,&cursor,16);
+
if (unicode >= 0 && unicode <= 0xffff)
{
QChar ch((ushort)unicode);
diff --git a/qtools/qxml.cpp b/qtools/qxml.cpp
index d171828..11a9b01 100644
--- a/qtools/qxml.cpp
+++ b/qtools/qxml.cpp
@@ -35,6 +35,7 @@
**
**********************************************************************/
+#define QT_XML_CPP
#include "qxml.h"
#include "qtextcodec.h"
#include "qbuffer.h"
@@ -80,7 +81,7 @@
#define XMLERR_EDECLORSDDECLEXPECTED "EDecl or SDDecl expected while reading the XML declaration"
#define XMLERR_SDDECLEXPECTED "SDDecl expected while reading the XML declaration"
#define XMLERR_WRONGVALUEFORSDECL "wrong value for standalone declaration"
-#define XMLERR_UNPARSEDENTITYREFERENCE "unparsed entity reference"
+#define XMLERR_UNPARSEDENTITYREFERENCE "unparsed entity reference in wrong context"
#define XMLERR_INTERNALGENERALENTITYINDTD "internal general entity reference not allowed in DTD"
#define XMLERR_EXTERNALGENERALENTITYINDTD "external parsed general entity reference not allowed in DTD"
#define XMLERR_EXTERNALGENERALENTITYINAV "external parsed general entity reference not allowed in attribute value"
@@ -2733,13 +2734,14 @@ bool QXmlSimpleReader::parseContent()
next();
break;
case Ref:
- // reference may be CharData; so clear string to be safe
if ( !charDataRead) {
- charDataRead = TRUE;
+ // reference may be CharData; so clear string to be safe
stringClear();
+ parseOk = parseReference( charDataRead, InContent );
+ } else {
+ bool tmp;
+ parseOk = parseReference( tmp, InContent );
}
- // parse reference
- parseOk = parseReference( charDataRead, InContent );
break;
case Lt:
// call the handler for CharData
@@ -2977,6 +2979,12 @@ bool QXmlSimpleReader::parseMisc()
d->error = XMLERR_ERRORPARSINGPI;
goto parseError;
}
+ if ( contentHnd ) {
+ if ( !contentHnd->processingInstruction(name(),string()) ) {
+ d->error = contentHnd->errorString();
+ goto parseError;
+ }
+ }
return TRUE;
case Comment2:
if ( !parseOk ) {
@@ -3241,8 +3249,8 @@ parseError:
bool QXmlSimpleReader::parseDoctype()
{
// some init-stuff
- d->systemId = "";
- d->publicId = "";
+ d->systemId = QString::null;
+ d->publicId = QString::null;
const signed char Init = 0;
const signed char Doctype = 1; // read the doctype
@@ -3420,8 +3428,8 @@ parseError:
bool QXmlSimpleReader::parseExternalID( bool allowPublicID )
{
// some init-stuff
- d->systemId = "";
- d->publicId = "";
+ d->systemId = QString::null;
+ d->publicId = QString::null;
const signed char Init = 0;
const signed char Sys = 1; // parse 'SYSTEM'
@@ -3687,6 +3695,12 @@ bool QXmlSimpleReader::parseMarkupdecl()
d->error = XMLERR_ERRORPARSINGPI;
goto parseError;
}
+ if ( contentHnd ) {
+ if ( !contentHnd->processingInstruction(name(),string()) ) {
+ d->error = contentHnd->errorString();
+ goto parseError;
+ }
+ }
return TRUE;
case Dash:
if ( !parseOk ) {
@@ -3812,13 +3826,13 @@ bool QXmlSimpleReader::parsePEReference( EntityRecognitionContext context )
}
}
} else {
- if ( context == InEntityValue ) {
+ if ( context == InEntityValue ) {
// Included in literal
xmlRef = d->parameterEntities.find( ref() )
.data().replace( QRegExp("\""), "&quot;" ).replace( QRegExp("'"), "&apos;" )
+ xmlRef;
} else if ( context == InDTD ) {
- // Included as PE ### correct???
+ // Included as PE
xmlRef = QString(" ") +
d->parameterEntities.find( ref() ).data() +
QString(" ") + xmlRef;
@@ -4896,6 +4910,7 @@ bool QXmlSimpleReader::parseEntityDecl()
const signed char PEVal = 15; // parse entity value
const signed char PEEID = 16; // parse ExternalID
const signed char WsE = 17; // white space read
+ const signed char EDDone = 19; // done, but also report an external, unparsed entity decl
const signed char Done = 18;
const signed char InpWs = 0; // white space
@@ -4914,8 +4929,8 @@ bool QXmlSimpleReader::parseEntityDecl()
{ Ws2, -1, -1, -1, -1, -1 }, // Name
{ -1, -1, EValue, -1, -1, ExtID }, // Ws2
{ WsE, -1, -1, Done, -1, -1 }, // EValue
- { Ws3, -1, -1, Done, -1, -1 }, // ExtID
- { -1, -1, -1, Done, Ndata, -1 }, // Ws3
+ { Ws3, -1, -1, EDDone,-1, -1 }, // ExtID
+ { -1, -1, -1, EDDone,Ndata, -1 }, // Ws3
{ Ws4, -1, -1, -1, -1, -1 }, // Ndata
{ -1, -1, -1, -1, NNam, NNam }, // Ws4
{ WsE, -1, -1, Done, -1, -1 }, // NNam
@@ -5008,6 +5023,9 @@ bool QXmlSimpleReader::parseEntityDecl()
case WsE:
eat_ws();
break;
+ case EDDone:
+ next();
+ break;
case Done:
next();
break;
@@ -5031,8 +5049,7 @@ bool QXmlSimpleReader::parseEntityDecl()
d->error = XMLERR_ERRORPARSINGENTITYVALUE;
goto parseError;
}
- if ( d->entities.find( name() ) == d->entities.end() &&
- d->externEntities.find( name() ) == d->externEntities.end() ) {
+ if ( !entityExist( name() ) ) {
d->entities.insert( name(), string() );
if ( declHnd ) {
if ( !declHnd->internalEntityDecl( name(), string() ) ) {
@@ -5047,16 +5064,6 @@ bool QXmlSimpleReader::parseEntityDecl()
d->error = XMLERR_ERRORPARSINGEXTERNALID;
goto parseError;
}
- if ( d->entities.find( name() ) == d->entities.end() &&
- d->externEntities.find( name() ) == d->externEntities.end() ) {
- d->externEntities.insert( name(), QXmlSimpleReaderPrivate::ExternEntity( d->publicId, d->systemId, "" ) );
- if ( declHnd ) {
- if ( !declHnd->externalEntityDecl( name(), d->publicId, d->systemId ) ) {
- d->error = declHnd->errorString();
- goto parseError;
- }
- }
- }
break;
case Ndata:
if ( !parseOk ) {
@@ -5069,11 +5076,10 @@ bool QXmlSimpleReader::parseEntityDecl()
d->error = XMLERR_ERRORPARSINGNAME;
goto parseError;
}
- if ( d->entities.find( name() ) == d->entities.end() &&
- d->externEntities.find( name() ) == d->externEntities.end() ) {
+ if ( !entityExist( name() ) ) {
d->externEntities.insert( name(), QXmlSimpleReaderPrivate::ExternEntity( d->publicId, d->systemId, ref() ) );
- if ( declHnd ) {
- if ( !declHnd->externalEntityDecl( name(), d->publicId, d->systemId ) ) {
+ if ( dtdHnd ) {
+ if ( !dtdHnd->unparsedEntityDecl( name(), d->publicId, d->systemId, ref() ) ) {
d->error = declHnd->errorString();
goto parseError;
}
@@ -5091,8 +5097,7 @@ bool QXmlSimpleReader::parseEntityDecl()
d->error = XMLERR_ERRORPARSINGENTITYVALUE;
goto parseError;
}
- if ( d->parameterEntities.find( name() ) == d->parameterEntities.end() &&
- d->externParameterEntities.find( name() ) == d->externParameterEntities.end() ) {
+ if ( !entityExist( name() ) ) {
d->parameterEntities.insert( name(), string() );
if ( declHnd ) {
if ( !declHnd->internalEntityDecl( QString("%")+name(), string() ) ) {
@@ -5107,8 +5112,7 @@ bool QXmlSimpleReader::parseEntityDecl()
d->error = XMLERR_ERRORPARSINGEXTERNALID;
goto parseError;
}
- if ( d->parameterEntities.find( name() ) == d->parameterEntities.end() &&
- d->externParameterEntities.find( name() ) == d->externParameterEntities.end() ) {
+ if ( !entityExist( name() ) ) {
d->externParameterEntities.insert( name(), QXmlSimpleReaderPrivate::ExternParameterEntity( d->publicId, d->systemId ) );
if ( declHnd ) {
if ( !declHnd->externalEntityDecl( QString("%")+name(), d->publicId, d->systemId ) ) {
@@ -5118,6 +5122,17 @@ bool QXmlSimpleReader::parseEntityDecl()
}
}
break;
+ case EDDone:
+ if ( !entityExist( name() ) ) {
+ d->externEntities.insert( name(), QXmlSimpleReaderPrivate::ExternEntity( d->publicId, d->systemId, QString::null ) );
+ if ( declHnd ) {
+ if ( !declHnd->externalEntityDecl( name(), d->publicId, d->systemId ) ) {
+ d->error = declHnd->errorString();
+ goto parseError;
+ }
+ }
+ }
+ return TRUE;
case Done:
return TRUE;
case -1:
@@ -5741,154 +5756,8 @@ bool QXmlSimpleReader::parseReference( bool &charDataRead, EntityRecognitionCont
next();
break;
case DoneN:
- if ( ref() == "amp" ) {
- if ( context == InEntityValue ) {
- // Bypassed
- stringAddC( '&' ); stringAddC( 'a' ); stringAddC( 'm' ); stringAddC( 'p' ); stringAddC( ';' );
- } else {
- // Included or Included in literal
- stringAddC( '&' );
- }
- charDataRead = TRUE;
- } else if ( ref() == "lt" ) {
- if ( context == InEntityValue ) {
- // Bypassed
- stringAddC( '&' ); stringAddC( 'l' ); stringAddC( 't' ); stringAddC( ';' );
- } else {
- // Included or Included in literal
- stringAddC( '<' );
- }
- charDataRead = TRUE;
- } else if ( ref() == "gt" ) {
- if ( context == InEntityValue ) {
- // Bypassed
- stringAddC( '&' ); stringAddC( 'g' ); stringAddC( 't' ); stringAddC( ';' );
- } else {
- // Included or Included in literal
- stringAddC( '>' );
- }
- charDataRead = TRUE;
- } else if ( ref() == "apos" ) {
- if ( context == InEntityValue ) {
- // Bypassed
- stringAddC( '&' ); stringAddC( 'a' ); stringAddC( 'p' ); stringAddC( 'o' ); stringAddC( 's' ); stringAddC( ';' );
- } else {
- // Included or Included in literal
- stringAddC( '\'' );
- }
- charDataRead = TRUE;
- } else if ( ref() == "quot" ) {
- if ( context == InEntityValue ) {
- // Bypassed
- stringAddC( '&' ); stringAddC( 'q' ); stringAddC( 'u' ); stringAddC( 'o' ); stringAddC( 't' ); stringAddC( ';' );
- } else {
- // Included or Included in literal
- stringAddC( '"' );
- }
- charDataRead = TRUE;
- } else {
- QMap<QString,QString>::Iterator it;
- it = d->entities.find( ref() );
- if ( it != d->entities.end() ) {
- // "Internal General"
- switch ( context ) {
- case InContent:
- // Included
- xmlRef = it.data() + xmlRef;
- charDataRead = FALSE;
- break;
- case InAttributeValue:
- // Included in literal
- xmlRef = it.data().replace( QRegExp("\""), "&quot;" ).replace( QRegExp("'"), "&apos;" )
- + xmlRef;
- charDataRead = FALSE;
- break;
- case InEntityValue:
- {
- // Bypassed
- stringAddC( '&' );
- for ( int i=0; i<(int)ref().length(); i++ ) {
- stringAddC( ref()[i] );
- }
- stringAddC( ';');
- charDataRead = TRUE;
- }
- break;
- case InDTD:
- // Forbidden
- d->error = XMLERR_INTERNALGENERALENTITYINDTD;
- charDataRead = FALSE;
- break;
- }
- } else {
- QMap<QString,QXmlSimpleReaderPrivate::ExternEntity>::Iterator itExtern;
- itExtern = d->externEntities.find( ref() );
- if ( itExtern != d->externEntities.end() ) {
- // "External Parsed General"
- switch ( context ) {
- case InContent:
- // Included if validating
- if ( contentHnd ) {
- if ( !contentHnd->skippedEntity( ref() ) ) {
- d->error = contentHnd->errorString();
- goto parseError;
- }
- }
- charDataRead = FALSE;
- break;
- case InAttributeValue:
- // Forbidden
- d->error = XMLERR_EXTERNALGENERALENTITYINAV;
- charDataRead = FALSE;
- break;
- case InEntityValue:
- {
- // Bypassed
- stringAddC( '&' );
- for ( int i=0; i<(int)ref().length(); i++ ) {
- stringAddC( ref()[i] );
- }
- stringAddC( ';');
- charDataRead = TRUE;
- }
- break;
- case InDTD:
- // Forbidden
- d->error = XMLERR_EXTERNALGENERALENTITYINDTD;
- charDataRead = FALSE;
- break;
- }
- } else {
- // "Unparsed" ### or is the definition of unparsed entities different?
- if ( context == InEntityValue ) {
- // Bypassed
- // (this does not conform with the table 4.4 of the XML specification;
- // on the other hand: in this case it is not really an unparsed entity)
- stringAddC( '&' );
- for ( int i=0; i<(int)ref().length(); i++ ) {
- stringAddC( ref()[i] );
- }
- stringAddC( ';');
- charDataRead = TRUE;
- } else {
-#if 0
- // Forbidden
- d->error = XMLERR_UNPARSEDENTITYREFERENCE;
- goto parseError;
- charDataRead = FALSE;
-#else
- // ### skip it???
- if ( contentHnd ) {
- if ( !contentHnd->skippedEntity( ref() ) ) {
- d->error = contentHnd->errorString();
- goto parseError;
- }
- }
-#endif
- }
- }
- }
- }
+ if ( !processReference( charDataRead, context ) )
+ goto parseError;
next();
break;
}
@@ -5916,6 +5785,162 @@ parseError:
}
/*!
+ Helper function for parseReference()
+*/
+bool QXmlSimpleReader::processReference( bool &charDataRead, EntityRecognitionContext context )
+{
+ QString reference = ref();
+ if ( reference == "amp" ) {
+ if ( context == InEntityValue ) {
+ // Bypassed
+ stringAddC( '&' ); stringAddC( 'a' ); stringAddC( 'm' ); stringAddC( 'p' ); stringAddC( ';' );
+ } else {
+ // Included or Included in literal
+ stringAddC( '&' );
+ }
+ charDataRead = TRUE;
+ } else if ( reference == "lt" ) {
+ if ( context == InEntityValue ) {
+ // Bypassed
+ stringAddC( '&' ); stringAddC( 'l' ); stringAddC( 't' ); stringAddC( ';' );
+ } else {
+ // Included or Included in literal
+ stringAddC( '<' );
+ }
+ charDataRead = TRUE;
+ } else if ( reference == "gt" ) {
+ if ( context == InEntityValue ) {
+ // Bypassed
+ stringAddC( '&' ); stringAddC( 'g' ); stringAddC( 't' ); stringAddC( ';' );
+ } else {
+ // Included or Included in literal
+ stringAddC( '>' );
+ }
+ charDataRead = TRUE;
+ } else if ( reference == "apos" ) {
+ if ( context == InEntityValue ) {
+ // Bypassed
+ stringAddC( '&' ); stringAddC( 'a' ); stringAddC( 'p' ); stringAddC( 'o' ); stringAddC( 's' ); stringAddC( ';' );
+ } else {
+ // Included or Included in literal
+ stringAddC( '\'' );
+ }
+ charDataRead = TRUE;
+ } else if ( reference == "quot" ) {
+ if ( context == InEntityValue ) {
+ // Bypassed
+ stringAddC( '&' ); stringAddC( 'q' ); stringAddC( 'u' ); stringAddC( 'o' ); stringAddC( 't' ); stringAddC( ';' );
+ } else {
+ // Included or Included in literal
+ stringAddC( '"' );
+ }
+ charDataRead = TRUE;
+ } else {
+ QMap<QString,QString>::Iterator it;
+ it = d->entities.find( reference );
+ if ( it != d->entities.end() ) {
+ // "Internal General"
+ switch ( context ) {
+ case InContent:
+ // Included
+ xmlRef = it.data() + xmlRef;
+ charDataRead = FALSE;
+ break;
+ case InAttributeValue:
+ // Included in literal
+ xmlRef = it.data().replace( QRegExp("\""), "&quot;" ).replace( QRegExp("'"), "&apos;" )
+ + xmlRef;
+ charDataRead = FALSE;
+ break;
+ case InEntityValue:
+ {
+ // Bypassed
+ stringAddC( '&' );
+ for ( int i=0; i<(int)reference.length(); i++ ) {
+ stringAddC( reference[i] );
+ }
+ stringAddC( ';');
+ charDataRead = TRUE;
+ }
+ break;
+ case InDTD:
+ // Forbidden
+ d->error = XMLERR_INTERNALGENERALENTITYINDTD;
+ charDataRead = FALSE;
+ break;
+ }
+ } else {
+ QMap<QString,QXmlSimpleReaderPrivate::ExternEntity>::Iterator itExtern;
+ itExtern = d->externEntities.find( reference );
+ if ( itExtern == d->externEntities.end() ) {
+ // entity not declared
+ // ### check this case for conformance
+ if ( context == InEntityValue ) {
+ // Bypassed
+ stringAddC( '&' );
+ for ( int i=0; i<(int)reference.length(); i++ ) {
+ stringAddC( reference[i] );
+ }
+ stringAddC( ';');
+ charDataRead = TRUE;
+ } else {
+ if ( contentHnd ) {
+ if ( !contentHnd->skippedEntity( reference ) ) {
+ d->error = contentHnd->errorString();
+ return FALSE; // error
+ }
+ }
+ }
+ } else if ( (*itExtern).notation.isNull() ) {
+ // "External Parsed General"
+ switch ( context ) {
+ case InContent:
+ // Included if validating
+ if ( contentHnd ) {
+ if ( !contentHnd->skippedEntity( reference ) ) {
+ d->error = contentHnd->errorString();
+ return FALSE; // error
+ }
+ }
+ charDataRead = FALSE;
+ break;
+ case InAttributeValue:
+ // Forbidden
+ d->error = XMLERR_EXTERNALGENERALENTITYINAV;
+ charDataRead = FALSE;
+ break;
+ case InEntityValue:
+ {
+ // Bypassed
+ stringAddC( '&' );
+ for ( int i=0; i<(int)reference.length(); i++ ) {
+ stringAddC( reference[i] );
+ }
+ stringAddC( ';');
+ charDataRead = TRUE;
+ }
+ break;
+ case InDTD:
+ // Forbidden
+ d->error = XMLERR_EXTERNALGENERALENTITYINDTD;
+ charDataRead = FALSE;
+ break;
+ }
+ } else {
+ // "Unparsed"
+ // ### notify for "Occurs as Attribute Value" missing (but this is no refence, anyway)
+ // Forbidden
+ d->error = XMLERR_UNPARSEDENTITYREFERENCE;
+ charDataRead = FALSE;
+ return FALSE; // error
+ }
+ }
+ }
+ return TRUE; // no error
+}
+
+
+/*!
Parse over a simple string.
After the string was successfully parsed, the head is on the first
@@ -5970,8 +5995,8 @@ parseError:
}
-/*
- Init the data values.
+/*!
+ Inits the data values.
*/
void QXmlSimpleReader::init( const QXmlInputSource& i )
{
@@ -5998,6 +6023,20 @@ void QXmlSimpleReader::init( const QXmlInputSource& i )
d->error = XMLERR_OK;
}
+/*!
+ Returns TRUE if a entity with the name \a e exists,
+ otherwise returns FALSE.
+*/
+bool QXmlSimpleReader::entityExist( const QString& e ) const
+{
+ if ( d->parameterEntities.find(e) == d->parameterEntities.end() &&
+ d->externParameterEntities.find(e) == d->externParameterEntities.end() ) {
+ return FALSE;
+ } else {
+ return TRUE;
+ }
+}
+
void QXmlSimpleReader::reportParseError()
{
if ( errorHnd )
diff --git a/qtools/qxml.h b/qtools/qxml.h
index c23430c..ce40e5f 100644
--- a/qtools/qxml.h
+++ b/qtools/qxml.h
@@ -322,7 +322,7 @@ private:
// used by parseReference() and parsePEReference()
enum EntityRecognitionContext { InContent, InAttributeValue, InEntityValue, InDTD };
- // private methods
+ // private functions
void eat_ws();
void next_eat_ws();
@@ -331,6 +331,8 @@ private:
void init( const QXmlInputSource& i );
+ bool entityExist( const QString& ) const;
+
bool parseProlog();
bool parseElement();
bool parseElementEmptyTag( bool &t, QString &uri, QString &lname );
@@ -347,6 +349,7 @@ private:
bool parseNmtoken();
bool parseAttribute();
bool parseReference( bool &charDataRead, EntityRecognitionContext context );
+ bool processReference( bool &charDataRead, EntityRecognitionContext context );
bool parseExternalID( bool allowPublicID = FALSE );
bool parsePEReference( EntityRecognitionContext context );
@@ -504,7 +507,15 @@ private:
QXmlDefaultHandlerPrivate *d;
};
+#ifdef _WS_QWS_
+#ifdef QT_XML_CPP
+#define inline
+#else
+#define QT_NO_XML_INLINE
+#endif
+#endif
+#ifndef QT_NO_XML_INLINE
//
// inlines
//
@@ -640,6 +651,14 @@ inline void QXmlSimpleReader::refAddC(const QChar& ch)
}
refArray[refPos++] = ch;
}
+#endif
+
+#ifdef _WS_QWS_
+#ifdef QT_XML_CPP
+#undef inline
+#endif
+#endif
+
#endif //QT_NO_XML
#endif
diff --git a/src/Makefile.in b/src/Makefile.in
index 31ab7f1..aadd7ad 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -2,7 +2,7 @@
#
#
#
-# Copyright (C) 1997-2000 by Dimitri van Heesch.
+# Copyright (C) 1997-2001 by Dimitri van 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/bufstr.h b/src/bufstr.h
new file mode 100644
index 0000000..576dac7
--- /dev/null
+++ b/src/bufstr.h
@@ -0,0 +1,61 @@
+/******************************************************************************
+ *
+ *
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van 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 _BUFSTR_H
+#define _BUFSTR_H
+
+#include "qtbc.h"
+
+/*! String that can deal more efficiently with large large numbers
+ * of resizing.
+ */
+class BufStr : public QCString
+{
+ public:
+ BufStr(int size) : QCString(size), offset(0), spareRoom(10240) {}
+ void addChar(char c)
+ {
+ if (offset>=size())
+ {
+ resize(size()+spareRoom);
+ }
+ data()[offset++]=c;
+ }
+ void addArray(const char *a,int len)
+ {
+ if (offset+len>=size())
+ {
+ resize(size()+len+spareRoom);
+ }
+ memcpy(data()+offset,a,len);
+ offset+=len;
+ }
+ uint curPos() { return offset; }
+ void skip(uint s)
+ {
+ if (offset+s>=size())
+ {
+ resize(size()+s+spareRoom);
+ }
+ offset+=s;
+ }
+ private:
+ uint offset;
+ const int spareRoom; // 10Kb extra room to avoid frequent resizing
+};
+
+#endif
diff --git a/src/classdef.cpp b/src/classdef.cpp
index e339c41..93a7921 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -51,15 +51,8 @@ ClassDef::ClassDef(
{
//name=n;
- QCString compoundName;
- switch(ct)
- {
- case Class: compoundName="class"; break;
- case Struct: compoundName="struct"; break;
- case Union: compoundName="union"; break;
- case Interface: compoundName="interface"; break;
- case Exception: compoundName="exception"; break;
- }
+ compType=ct;
+ QCString compoundName=compoundTypeString();
if (fName)
fileName=stripExtension(fName);
else
@@ -86,7 +79,6 @@ ClassDef::ClassDef(
allMemberNameInfoDict = new MemberNameInfoDict(1009);
visited=FALSE;
setReference(lref);
- compType=ct;
incInfo=0;
tempArgs=0;
prot=Public;
@@ -654,13 +646,10 @@ void ClassDef::writeDocumentation(OutputList &ol)
QCString pageTitle=name().copy();
QCString pageType;
ArgumentList *outerTempArgList = outerTemplateArguments();
- switch(compType)
- {
- case Class: pageType+=" Class"; break;
- case Struct: pageType+=" Struct"; break;
- case Union: pageType+=" Union"; break;
- default: pageType+=" Interface"; break;
- }
+ QCString cType=compoundTypeString();
+ toupper(cType.at(0));
+ pageType+=" ";
+ pageType+=cType;
pageTitle+=pageType+" Reference";
if (outerTempArgList) pageTitle.prepend(" Template");
startFile(ol,fileName,pageTitle);
@@ -732,15 +721,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
if (!Config::genTagFile.isEmpty())
{
- tagFile << " <compound kind=\"";
- switch(compType)
- {
- case Class: tagFile << "class"; break;
- case Struct: tagFile << "struct"; break;
- case Union: tagFile << "union"; break;
- case Interface: tagFile << "interface"; break;
- case Exception: tagFile << "exception"; break;
- }
+ tagFile << " <compound kind=\"" << compoundTypeString();
tagFile << "\">" << endl;
tagFile << " <name>" << convertToXML(name()) << "</name>" << endl;
tagFile << " <filename>" << convertToXML(fileName) << ".html</filename>" << endl;
@@ -1891,15 +1872,8 @@ void ClassDef::generateXML(QTextStream &t)
{
if (name().find('@')!=-1) return; // skip anonymous compounds
t << " <compounddef id=\""
- << getOutputFileBase() << "\" type=\"";
- switch(compType)
- {
- case Class: t << "class"; break;
- case Struct: t << "struct"; break;
- case Union: t << "union"; break;
- default: t << "interface"; break;
- }
- t << "\">" << endl;
+ << getOutputFileBase() << "\" type=\""
+ << compoundTypeString() << "\">" << endl;
t << " <compoundname>";
writeXMLString(t,name());
t << "</compoundname>" << endl;
@@ -1996,3 +1970,22 @@ void ClassDef::generateXML(QTextStream &t)
}
t << " </compounddef>" << endl;
}
+
+PackageDef *ClassDef::packageDef() const
+{
+ return fileDef ? fileDef->packageDef() : 0;
+}
+
+QCString ClassDef::compoundTypeString() const
+{
+ switch (compType)
+ {
+ case Class: return "class";
+ case Struct: return "struct";
+ case Union: return "union";
+ case Interface: return "interface";
+ case Exception: return "exception";
+ }
+ return "unknown";
+}
+
diff --git a/src/classdef.h b/src/classdef.h
index f9c26dd..329e47b 100644
--- a/src/classdef.h
+++ b/src/classdef.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -43,6 +43,7 @@ class UsesClassDict;
class MemberGroupList;
class MemberGroupDict;
class QTextStream;
+class PackageDef;
struct IncludeInfo;
class ClassDef : public Definition
@@ -62,6 +63,7 @@ class ClassDef : public Definition
QCString getOutputFileBase() const { return fileName; }
QCString displayName() const;
CompoundType compoundType() const { return compType; }
+ QCString compoundTypeString() const;
void insertBaseClass(ClassDef *,Protection p,Specifier s,const char *t=0);
BaseClassList *baseClasses() { return inherits; }
void insertSuperClass(ClassDef *,Protection p,Specifier s,const char *t=0);
@@ -126,6 +128,8 @@ class ClassDef : public Definition
void generateXML(QTextStream &t);
void generateXMLSection(QTextStream &t,MemberList *ml,const char *type);
+
+ PackageDef *packageDef() const;
protected:
void addUsedInterfaceClasses(MemberDef *md,const char *typeStr);
diff --git a/src/classlist.cpp b/src/classlist.cpp
index f62ff36..6061d47 100644
--- a/src/classlist.cpp
+++ b/src/classlist.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -48,7 +48,7 @@ ClassListIterator::ClassListIterator(const ClassList &cllist) :
{
}
-void ClassList::writeDeclaration(OutputList &ol)
+void ClassList::writeDeclaration(OutputList &ol,const ClassDef::CompoundType *filter,const char *header)
{
if (count()>0)
{
@@ -56,7 +56,9 @@ void ClassList::writeDeclaration(OutputList &ol)
bool found=FALSE;
while (cd)
{
- if (cd->name().find('@')==-1)
+ if (cd->name().find('@')==-1 &&
+ (filter==0 || *filter==cd->compoundType())
+ )
{
bool isLink = cd->isLinkable();
if (isLink || !Config::hideClassFlag)
@@ -64,24 +66,25 @@ void ClassList::writeDeclaration(OutputList &ol)
if (!found)
{
ol.startMemberHeader();
- parseText(ol,theTranslator->trCompounds());
+ if (header)
+ {
+ parseText(ol,header);
+ }
+ else
+ {
+ parseText(ol,theTranslator->trCompounds());
+ }
ol.endMemberHeader();
ol.startMemberList();
found=TRUE;
}
if (!Config::genTagFile.isEmpty())
{
- tagFile << " <class>" << convertToXML(cd->name()) << "</class>" << endl;
+ tagFile << " <class kind=\"" << cd->compoundTypeString()
+ << "\">" << convertToXML(cd->name()) << "</class>" << endl;
}
ol.startMemberItem(FALSE);
- switch (cd->compoundType())
- {
- case ClassDef::Class: ol.writeString("class"); break;
- case ClassDef::Struct: ol.writeString("struct"); break;
- case ClassDef::Union: ol.writeString("union"); break;
- case ClassDef::Interface: ol.writeString("interface"); break;
- case ClassDef::Exception: ol.writeString("exception"); break;
- }
+ ol.writeString(cd->compoundTypeString());
ol.writeString(" ");
ol.insertMemberAlign();
if (isLink)
diff --git a/src/classlist.h b/src/classlist.h
index 7162459..02521d0 100644
--- a/src/classlist.h
+++ b/src/classlist.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -30,7 +30,8 @@ class ClassList : public QList<ClassDef>
~ClassList();
int compareItems(GCI item1,GCI item2);
- void writeDeclaration(OutputList &ol);
+ void writeDeclaration(OutputList &ol,const ClassDef::CompoundType *filter=0,
+ const char *header=0);
};
class ClassListIterator : public QListIterator<ClassDef>
diff --git a/src/code.h b/src/code.h
index 2f98ab8..8773d01 100644
--- a/src/code.h
+++ b/src/code.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 ec3599c..22415cc 100644
--- a/src/code.l
+++ b/src/code.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -1009,7 +1009,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
addType();
g_name+=yytext;
}
-<Body>{SCOPENAME}{B}*"<"[^\n\"\>]*">"/{B}* { // A<T> *pt;
+<Body>{SCOPENAME}{B}*"<"[^\n\/\{\"\>]*">"/{B}* { // A<T> *pt;
generateClassLink(*g_code,yytext);
addType();
g_name+=yytext;
@@ -1129,6 +1129,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
g_name.resize(0);
}
if (*yytext!=',') g_type.resize(0);
+ if (*yytext==';') g_name.resize(0);
g_args.resize(0);
}
<Body>"]" {
diff --git a/src/config.h b/src/config.h
index 9e5c906..0ceec45 100644
--- a/src/config.h
+++ b/src/config.h
@@ -8,7 +8,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 2aa605c..df0d591 100644
--- a/src/config.l
+++ b/src/config.l
@@ -8,7 +8,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 f31e19d..2b09ed9 100644
--- a/src/constexp.h
+++ b/src/constexp.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 f73e293..b6604ff 100644
--- a/src/constexp.l
+++ b/src/constexp.l
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 25b94b4..62d73dd 100644
--- a/src/cppvalue.cpp
+++ b/src/cppvalue.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 32e0566..159e217 100644
--- a/src/cppvalue.h
+++ b/src/cppvalue.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/debug.cpp b/src/debug.cpp
index 5398991..6ec6d7c 100644
--- a/src/debug.cpp
+++ b/src/debug.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/debug.h b/src/debug.h
index ce280df..9fbced0 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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.h b/src/declinfo.h
index 6cf6096..b337aae 100644
--- a/src/declinfo.h
+++ b/src/declinfo.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 7a1b020..bfa599e 100644
--- a/src/declinfo.l
+++ b/src/declinfo.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -114,7 +114,7 @@ ID ([a-z_A-Z][a-z_A-Z0-9]*)|(@[0-9]+)
name += yytext;
BEGIN(Operator);
}
-<Start>(~{B}*)?{ID} {
+<Start>(~{B}*)?{ID}({B}*"["{B}*"]")* { // the []'s are for Java
addTypeName();
name += yytext;
}
@@ -228,6 +228,13 @@ void parseFuncDecl(const QCString &decl,QCString &cl,QCString &ctl,QCString &t,
//printf("type=`%s' class=`%s' name=`%s' args=`%s'\n",
// type.data(),scope.data(),name.data(),args.data());
+ int nb = name.findRev('[');
+ if (nb!=-1) // correct for [] in name ambigity (due to Java return type allowing [])
+ {
+ args.prepend(name.right(name.length()-nb));
+ name=name.left(nb);
+ }
+
cl=scope.copy();
//printf("scope=`%s'\n",scope.data());
int il=0,ir=0;
diff --git a/src/defargs.h b/src/defargs.h
index 1678797..7bfae61 100644
--- a/src/defargs.h
+++ b/src/defargs.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 05a26b6..58af23d 100644
--- a/src/defargs.l
+++ b/src/defargs.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 ea8d8e3..424e0be 100644
--- a/src/define.cpp
+++ b/src/define.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 060270e..2715450 100644
--- a/src/define.h
+++ b/src/define.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 13707d8..4805638 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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.h b/src/definition.h
index 378faf3..e92292e 100644
--- a/src/definition.h
+++ b/src/definition.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -33,7 +33,10 @@ class Definition
{
public:
/*! Types of derived classes */
- enum DefType { TypeClass, TypeMember, TypeFile, TypeGroup, TypeNamespace };
+ enum DefType
+ {
+ TypeClass, TypeMember, TypeFile, TypeGroup, TypeNamespace, TypePackage
+ };
/*! Use this for dynamic inspection of the derived class */
virtual DefType definitionType() = 0;
diff --git a/src/diagram.cpp b/src/diagram.cpp
index eed5cd2..b74abc8 100644
--- a/src/diagram.cpp
+++ b/src/diagram.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 4338772..7b8182e 100644
--- a/src/diagram.h
+++ b/src/diagram.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/doc.h b/src/doc.h
index ee54f8a..6c5ad54 100644
--- a/src/doc.h
+++ b/src/doc.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/doc.l b/src/doc.l
index 3a0f64f..41c2ba6 100644
--- a/src/doc.l
+++ b/src/doc.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -804,6 +804,7 @@ TR [tT][rR]
TT [tT][tT]
UL [uU][lL]
VAR [vV][aA][rR]
+BLOCKQUOTE [bB][lL][oO][cC][kK][qQ][uU][oO][tT][eE]
DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
%option noyywrap
@@ -821,6 +822,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
%x DocCodeBlock
%x DocInternal
%x DocLink
+%x DocJavaLink
%x DocLinkText
%x DocSkipWord
%x DocInclude
@@ -959,12 +961,25 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
scanString(theTranslator->trReimplementedForInternalReasons()+"\n");
}
<DocScan>{CMD}"link"/{BN} { BEGIN( DocLink ); }
+<DocScan>"{"{CMD}"link"{BN}+ { BEGIN( DocJavaLink ); }
<DocSkipWord>[a-z_A-Z0-9.:()]+ { BEGIN( DocScan ); }
-<DocLink>[a-z_A-Z0-9:#.,~&*/<>()\-\+]+ { // TODO: support operators as well!
+<DocLink>[a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+ { // TODO: support operators as well!
linkRef = stripKnownExtensions(yytext);
linkText = "";
BEGIN( DocLinkText );
}
+<DocJavaLink>([a-z_A-Z0-9]+".")+ { /* Skip scope prefix (TODO: fix) */ }
+<DocJavaLink>([a-z_A-Z0-9]+"#")?[a-z_A-Z0-9]+("("[a-z_A-Z0-9.,~&*()\[\]]*")")? { // TODO: support operators as well!
+ linkRef = yytext;
+ }
+<DocJavaLink>"}" {
+ //printf("Trying to link `%s'\n",linkRef.data());
+ if (!generateLink(*outDoc,className,linkRef,inSeeBlock,0))
+ {
+ warn(yyFileName,yyLineNr,"Warning: link to unknown entity `%s' in the documentation of this entity!",linkRef.data());
+ }
+ BEGIN( DocScan );
+ }
<DocLinkText>. { linkText += *yytext; }
<DocLinkText>"\n" { linkText += " "; }
<DocLink,DocLinkText>{CMD}"endlink" { // <- needed for things like \endlink.
@@ -972,7 +987,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
// className.data(),linkRef.data(),linkText.data());
if (!generateLink(*outDoc,className,linkRef,inSeeBlock,linkText.stripWhiteSpace()))
{
- warn(yyFileName,yyLineNr,"Warning: link to unknown section %s in the documentation of this entity!",linkRef.data());
+ warn(yyFileName,yyLineNr,"Warning: link to unknown entity `%s' in the documentation of this entity!",linkRef.data());
}
BEGIN( DocScan );
}
@@ -1718,13 +1733,13 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
generateRef(*outDoc,className,yytext,inSeeBlock);
BEGIN(DocScan);
}
-<DocScan,DocRefName>({SCOPEMASK}"::")?"operator()("[a-z_A-Z0-9,\<\> \t\*\&]*")" {
+<DocScan,DocRefName>({SCOPEMASK}"::")?"operator()"("("[a-z_A-Z0-9,\<\> \t\*\&]*")")? {
QCString oName=yytext;
generateRef(*outDoc,className,
removeRedundantWhiteSpace(oName),inSeeBlock);
BEGIN(DocScan);
}
-<DocScan,DocRefName>({SCOPEMASK}"::")?"operator"[^(\r\n.,]+"("[a-z_A-Z0-9,\<\> \t\*\&]*")" {
+<DocScan,DocRefName>({SCOPEMASK}"::")?"operator"[^(\r\n.,]+("("[a-z_A-Z0-9,\<\> \t\*\&]*")")? {
QCString oName=yytext;
generateRef(*outDoc,className,
removeRedundantWhiteSpace(oName),inSeeBlock);
@@ -1827,6 +1842,8 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
<DocScan>"</"{HEAD}{ATTR}">"
<DocScan>"<"{BODY}{ATTR}">"
<DocScan>"</"{BODY}{ATTR}">"
+<DocScan>"<"{BLOCKQUOTE}{ATTR}">"
+<DocScan>"</"{BLOCKQUOTE}{ATTR}">"
<DocScan>"<"{CODE}{ATTR}">" { outDoc->startTypewriter(); }
<DocScan>"</"{CODE}{ATTR}">" { outDoc->endTypewriter(); }
<DocScan>"<"{DFN}{ATTR}">" { outDoc->startTypewriter(); }
diff --git a/src/dot.cpp b/src/dot.cpp
index e4a3932..6e9f823 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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.h b/src/dot.h
index 90a0df1..c626b67 100644
--- a/src/dot.h
+++ b/src/dot.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 8a12922..1b31b6f 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -57,6 +57,8 @@
#include "xml.h"
#include "reflist.h"
#include "page.h"
+#include "packagedef.h"
+#include "bufstr.h"
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define popen _popen
@@ -102,6 +104,8 @@ OutputList *outputList = 0; // list of output generating objects
PageInfo *mainPage = 0;
QIntDict<QCString> memberHeaderDict(1009); // dictionary of the member groups heading
QIntDict<QCString> memberDocDict(1009); // dictionary of the member groups heading
+
+PackageSDict packageDict(257); // java packages
void clearAll()
@@ -192,6 +196,7 @@ int documentedNamespaces;
int documentedNamespaceMembers;
int documentedIncludeFiles;
int documentedPages;
+int documentedPackages;
QTextStream tagFile;
@@ -2101,7 +2106,8 @@ static void transferFunctionDocumentation()
// check if not in different but documented files
if (Config::extractAllFlag ||
fdef==fdec ||
- !fdef->hasDocumentation() || !mdec->hasDocumentation())
+ (fdef!=0 && (!fdef->hasDocumentation() || !mdec->hasDocumentation()))
+ )
{
//printf("Found member %s: def in %s and dec in %s\n",
// mn->memberName(),mdef->getFileDef()->name().data(),
@@ -3021,10 +3027,11 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
{
Debug::print(Debug::FindMembers,0,
"findMember(root=%p,funcDecl=`%s',related=`%s',overload=%d,"
- "isFunc=%d mGrpId=%d tArgList=%p=\"%s\" scopeSpec=%s "
- "memberSpec=%s memSpec=%d\n",
+ "isFunc=%d mGrpId=%d tArgList=%p=\"%s\" mtArgList=%p=\"%s\" "
+ "scopeSpec=%s memberSpec=%s memSpec=%d\n",
root,funcDecl.data(),related.data(),overloaded,isFunc,root->mGrpId,
root->tArgList,tempArgListToString(root->tArgList).data(),
+ root->mtArgList,tempArgListToString(root->mtArgList).data(),
root->scopeSpec.data(),root->memberSpec.data(),root->memSpec
);
//if (Config::includeSourceFlag && !root->body.isEmpty())
@@ -3248,7 +3255,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
// no template specifiers found during parsing (because \fn was used),
// but there are template names in the scope, so we build the template
// specifiers from that.
- printf("Building template list from `%s'\n",classTempList.data());
+ //printf("Building template list from `%s'\n",classTempList.data());
root->tArgList = new ArgumentList;
QRegExp re(idMask);
int i,p=0,l;
@@ -3619,6 +3626,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
if (!newMember && rmd) // member already exists as rmd -> add docs
{
//printf("addMemberDocs for related member %s\n",root->name.data());
+ rmd->setMemberDefTemplateArguments(root->mtArgList);
addMemberDocs(root,rmd,funcDecl,0,overloaded);
}
}
@@ -3694,13 +3702,12 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
md->setMemberClass(cd);
md->setMemberSpecifiers(root->memSpec);
md->setDefinition(funcDecl);
- //md->setDefFile(root->fileName);
- //md->setDefLine(root->startLine);
md->setPrototype(root->proto);
md->setDocumentation(root->doc);
md->setBriefDescription(root->brief);
md->addSectionsToDefinition(root->anchors);
md->setMemberGroupId(root->mGrpId);
+ md->setMemberDefTemplateArguments(root->mtArgList);
mn->append(md);
cd->insertMember(md);
cd->insertUsedFile(root->fileName);
@@ -4764,6 +4771,52 @@ static void findMainPage(Entry *root)
//----------------------------------------------------------------------------
+/*! Search for all Java package statements
+ */
+static void buildPackageList(Entry *root)
+{
+ if (root->section == Entry::PACKAGE_SEC)
+ {
+ PackageDef *pd=0;
+ if (!root->name.isEmpty() && (pd=packageDict.find(root->name))==0)
+ {
+ pd = new PackageDef(root->fileName,root->startLine,root->name);
+ packageDict.inSort(root->name,pd);
+ }
+ if (pd)
+ {
+ bool ambig;
+ FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
+ if (fd)
+ {
+ fd->setPackageDef(pd);
+ }
+ }
+ }
+ EntryListIterator eli(*root->sublist);
+ Entry *e;
+ for (;(e=eli.current());++eli)
+ {
+ buildPackageList(e);
+ }
+}
+
+//----------------------------------------------------------------------------
+
+/*! Add Java classes to their respective packages */
+static void addClassesToPackages()
+{
+ ClassDef *cd;
+ ClassListIterator cli(classList);
+ for (;(cd=cli.current());++cli)
+ {
+ PackageDef *pd = cd->packageDef();
+ if (pd) pd->addClass(cd);
+ }
+}
+
+//----------------------------------------------------------------------------
+
static void resolveUserReferences()
{
QDictIterator<SectionInfo> sdi(sectionDict);
@@ -4931,17 +4984,6 @@ static void generateGroupDocs()
GroupDef *gd;
for (;(gd=gli.current());++gli)
{
- //printf("group %s #members=%d\n",gd->name().data(),gd->countMembers());
- //if (gd->countMembers()>0)
- //{
- // gd->writeDocumentation(*outputList);
- //}
- //else
- //{
- // warn(gd->getDefFileName(),gd->getDefLine(),
- // "Warning: group %s does not have any (documented) members.",
- // gd->name().data());
- //}
if (!gd->isReference())
{
gd->writeDocumentation(*outputList);
@@ -4950,6 +4992,23 @@ static void generateGroupDocs()
}
//----------------------------------------------------------------------------
+
+static void generatePackageDocs()
+{
+ writePackageIndex(*outputList);
+
+ if (packageDict.count()>0)
+ {
+ PackageSDict::Iterator pdi(packageDict);
+ PackageDef *pd;
+ for (pdi.toFirst();(pd=pdi.current());++pdi)
+ {
+ pd->writeDocumentation(*outputList);
+ }
+ }
+}
+
+//----------------------------------------------------------------------------
// generate module pages
static void generateNamespaceDocs()
@@ -5581,7 +5640,7 @@ static void readFormulaRepository()
static void usage(const char *name)
{
- msg("Doxygen version %s\nCopyright Dimitri van Heesch 1997-2000\n\n",versionString);
+ msg("Doxygen version %s\nCopyright Dimitri van Heesch 1997-2001\n\n",versionString);
msg("You can use doxygen in four ways:\n\n");
msg("1) Use doxygen to generate a template configuration file:\n");
msg(" %s [-s] -g [configName]\n\n",name);
@@ -6126,6 +6185,9 @@ int main(int argc,char **argv)
msg("Building page list...\n");
buildPageList(root);
+ msg("Buidling package list...\n");
+ buildPackageList(root);
+
msg("Search for main page...\n");
findMainPage(root);
@@ -6145,6 +6207,9 @@ int main(int argc,char **argv)
msg("Computing member relations...\n");
computeMemberRelations();
+ msg("Adding classes to their packages...\n");
+ addClassesToPackages();
+
if (Config::haveDotFlag && Config::collGraphFlag)
{
msg("Computing class implementation usage relations...\n");
@@ -6208,7 +6273,7 @@ int main(int argc,char **argv)
documentedNamespaces = countNamespaces();
documentedNamespaceMembers = countNamespaceMembers();
documentedPages = countRelatedPages();
- //documentedIncludeFiles = countIncludeFiles();
+ documentedPackages = countPackages();
// compute the shortest possible names of all files
// without loosing the uniqueness of the file names.
@@ -6248,6 +6313,9 @@ int main(int argc,char **argv)
msg("Generating group index...\n");
writeGroupIndex(*outputList);
+ msg("Generating package index...\n");
+ generatePackageDocs();
+
msg("Generating example index...\n");
writeExampleIndex(*outputList);
diff --git a/src/doxygen.h b/src/doxygen.h
index edfe602..00b339c 100644
--- a/src/doxygen.h
+++ b/src/doxygen.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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,32 +32,7 @@
#include "formula.h"
#include "section.h"
#include "membergroup.h"
-
-class BufStr : public QCString
-{
- public:
- BufStr(int size) : QCString(size), offset(0), spareRoom(10240) {}
- void addChar(char c)
- {
- if (offset>=size()) resize(size()+spareRoom);
- data()[offset++]=c;
- }
- void addArray(const char *a,int len)
- {
- if (offset+len>=size()) resize(size()+len+spareRoom);
- memcpy(data()+offset,a,len);
- offset+=len;
- }
- uint curPos() { return offset; }
- void skip(uint s)
- {
- if (offset+s>=size()) resize(size()+s+spareRoom);
- offset+=s;
- }
- private:
- uint offset;
- const int spareRoom; // 10Kb extra room to avoid frequent resizing
-};
+#include "packagedef.h"
class PageSList;
class PageSDict;
@@ -83,7 +58,6 @@ extern MemberNameList memberNameList;
extern MemberNameList functionNameList;
extern MemberNameDict memberNameDict;
extern MemberNameDict functionNameDict;
-//extern StringDict substituteDict;
extern FileList fileList;
extern FileDict fileDict;
extern ClassDef unrelatedClass;
@@ -104,6 +78,7 @@ extern StringDict aliasDict;
extern QIntDict<QCString> memberHeaderDict; // dictionary of the member groups heading
extern QIntDict<QCString> memberDocDict; // dictionary of the member groups heading
extern QDict<void> expandAsDefinedDict;
+extern PackageSDict packageDict;
extern int annotatedClasses;
extern int hierarchyClasses;
@@ -117,6 +92,7 @@ extern int documentedNamespaces;
extern int documentedNamespaceMembers;
extern int documentedIncludeFiles;
extern int documentedPages;
+extern int documentedPackages;
extern QCString spaces;
extern const char * getOverloadDocs();
diff --git a/src/doxygen.pro.in b/src/doxygen.pro.in
index 92c60f8..b08a714 100644
--- a/src/doxygen.pro.in
+++ b/src/doxygen.pro.in
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2000 by Dimitri van Heesch.
+# Copyright (C) 1997-2001 by Dimitri van 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 @@ HEADERS = doxygen.h scanner.h doc.h classdef.h classlist.h memberdef.h \
translator_ru.h translator_pl.h dot.h rtfgen.h xml.h xml_dtd.h \
reflist.h page.h sortdict.h translator_hu.h translator_kr.h \
translator_ro.h translator_si.h translator_cn.h ftvhelp.h \
- treeview.h tagreader.h
+ treeview.h tagreader.h packagedef.h
SOURCES = doxygen.cpp scanner.cpp doc.cpp classdef.cpp classlist.cpp \
memberdef.cpp membername.cpp index.cpp memberlist.cpp \
entry.cpp logos.cpp instdox.cpp message.cpp code.cpp \
@@ -39,7 +39,7 @@ SOURCES = doxygen.cpp scanner.cpp doc.cpp classdef.cpp classlist.cpp \
diagram.cpp gifenc.cpp image.cpp namespacedef.cpp \
version.cpp language.cpp definition.cpp formula.cpp debug.cpp \
membergroup.cpp htmlhelp.cpp dot.cpp rtfgen.cpp xml.cpp \
- reflist.cpp ftvhelp.cpp tagreader.cpp
+ reflist.cpp ftvhelp.cpp tagreader.cpp packagedef.cpp
unix:LIBS += -L../qtools -lqtools
win32:INCLUDEPATH += .
win32-mingw:LIBS += -L../qtools -lqtools
diff --git a/src/doxygen.t b/src/doxygen.t
index d1f6a64..0608894 100644
--- a/src/doxygen.t
+++ b/src/doxygen.t
@@ -1,7 +1,7 @@
#
#
#
-# Copyright (C) 1997-2000 by Dimitri van Heesch.
+# Copyright (C) 1997-2001 by Dimitri van 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/doxysearch.cpp b/src/doxysearch.cpp
index d14cf37..ddbdedd 100644
--- a/src/doxysearch.cpp
+++ b/src/doxysearch.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/doxytag.l b/src/doxytag.l
index 2d9e7b4..e2f3a55 100644
--- a/src/doxytag.l
+++ b/src/doxytag.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -500,7 +500,7 @@ void parseFileOrDir(const char *fileName)
void usage(const char *name)
{
- fprintf(stderr,"Doxytag version %s\nCopyright Dimitri van Heesch 1997-2000\n\n",
+ fprintf(stderr,"Doxytag version %s\nCopyright Dimitri van Heesch 1997-2001\n\n",
versionString);
fprintf(stderr," Generates a tag file and/or a search index for a set of HTML files\n\n");
fprintf(stderr,"Usage: %s [-t tag_file] [-s index_file] [ html_file [html_file...] ]\n",name);
diff --git a/src/entry.cpp b/src/entry.cpp
index 829bc3b..297831f 100644
--- a/src/entry.cpp
+++ b/src/entry.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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.h b/src/entry.h
index 2968b1e..05d85c1 100644
--- a/src/entry.h
+++ b/src/entry.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -107,6 +107,7 @@ class Entry
{
public:
+ /*! Kind of entries that are supported */
enum Sections {
CLASS_SEC = 0x00000001,
STRUCT_SEC = 0x00000002,
@@ -150,7 +151,8 @@ class Entry
USINGDIR_SEC = 0x01100000,
MAINPAGEDOC_SEC = 0x01200000,
MEMBERGRP_SEC = 0x01300000,
- USINGDECL_SEC = 0x01400000
+ USINGDECL_SEC = 0x01400000,
+ PACKAGE_SEC = 0x01500000
};
enum MemberSpecifier
{
@@ -167,48 +169,48 @@ class Entry
void addSubEntry (Entry* e) ;
void reset();
- int section; // entry type (see Sections);
- Protection protection; // class protection
- MethodTypes mtype; // signal, slot, (dcop) method, or property?
- bool stat; // static ?
- bool explicitExternal; // explicitly defined as external?
- bool proto; // prototype ?
- int memSpec; // member specifiers
- int initLines; // define/variable initializer lines to show
- bool subGrouping; // automatically group class members?
- Specifier virt; // virtualness of the entry
- Entry *parent; // parent node in the tree
- QCString type; // member type
- QCString name; // member name
- QCString args; // member argument string
- QCString bitfields; // member's bit fields
- ArgumentList *argList; // member arguments as a list
- ArgumentList *tArgList; // template argument list
- ArgumentList *mtArgList; // member template argument list
- QCString scopeSpec; // template specialization of the scope
- QCString memberSpec; // template specialization of the member
- QCString program; // the program text
- QCString initializer; // initial value (for variables)
- QCString includeFile; // include file (2 arg of \class, must be unique)
- QCString includeName; // include name (3 arg of \class)
- QCString doc; // documentation block (partly parsed)
- QCString relates; // related class (doc block)
- QCString brief; // brief description (doc block)
- QCString inside; // name of the class in which documents are found
- QCString exception; // throw specification
- int bodyLine; // line number of the definition in the source
- int endBodyLine; // line number where the definition ends
- int mGrpId; // member group id
- QList<Entry> *sublist; // entries that are children of this one
- QList<BaseInfo> *extends; // list of base classes
- QList<QCString> *groups; // list of groups this entry belongs to
- QList<QCString> *anchors; // list of anchors defined in this entry
- QCString fileName; // file this entry was extracted from
- int startLine; // start line of entry in the source
- int todoId; // id of the todo item of this entry
- int testId; // id of the test item of this entry
- TagInfo *tagInfo; // tag file info
- static int num; // counts the total number of entries
+ int section; //!< entry type (see Sections);
+ Protection protection; //!< class protection
+ MethodTypes mtype; //!< signal, slot, (dcop) method, or property?
+ bool stat; //!< static ?
+ bool explicitExternal; //!< explicitly defined as external?
+ bool proto; //!< prototype ?
+ int memSpec; //!< member specifiers
+ int initLines; //!< define/variable initializer lines to show
+ bool subGrouping; //!< automatically group class members?
+ Specifier virt; //!< virtualness of the entry
+ Entry *parent; //!< parent node in the tree
+ QCString type; //!< member type
+ QCString name; //!< member name
+ QCString args; //!< member argument string
+ QCString bitfields; //!< member's bit fields
+ ArgumentList *argList; //!< member arguments as a list
+ ArgumentList *tArgList; //!< template argument list
+ ArgumentList *mtArgList; //!< member template argument list
+ QCString scopeSpec; //!< template specialization of the scope
+ QCString memberSpec; //!< template specialization of the member
+ QCString program; //!< the program text
+ QCString initializer; //!< initial value (for variables)
+ QCString includeFile; //!< include file (2 arg of \class, must be unique)
+ QCString includeName; //!< include name (3 arg of \class)
+ QCString doc; //!< documentation block (partly parsed)
+ QCString relates; //!< related class (doc block)
+ QCString brief; //!< brief description (doc block)
+ QCString inside; //!< name of the class in which documents are found
+ QCString exception; //!< throw specification
+ int bodyLine; //!< line number of the definition in the source
+ int endBodyLine; //!< line number where the definition ends
+ int mGrpId; //!< member group id
+ QList<Entry> *sublist; //!< entries that are children of this one
+ QList<BaseInfo> *extends; //!< list of base classes
+ QList<QCString> *groups; //!< list of groups this entry belongs to
+ QList<QCString> *anchors; //!< list of anchors defined in this entry
+ QCString fileName; //!< file this entry was extracted from
+ int startLine; //!< start line of entry in the source
+ int todoId; //!< id of the todo item of this entry
+ int testId; //!< id of the test item of this entry
+ TagInfo *tagInfo; //!< tag file info
+ static int num; //!< counts the total number of entries
private:
Entry &operator=(const Entry &);
} ;
diff --git a/src/example.h b/src/example.h
index d531978..425b488 100644
--- a/src/example.h
+++ b/src/example.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 b27f8ac..6402df3 100644
--- a/src/filedef.cpp
+++ b/src/filedef.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -57,6 +57,7 @@ FileDef::FileDef(const char *p,const char *nm,const char *lref)
srcMemberDict = 0;
usingDirList = 0;
usingDeclList = 0;
+ package = 0;
isSource = FALSE;
docname = nm;
if (Config::fullPathNameFlag)
diff --git a/src/filedef.h b/src/filedef.h
index 510b49a..6d0f71c 100644
--- a/src/filedef.h
+++ b/src/filedef.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -37,6 +37,7 @@ class NamespaceList;
class NamespaceDict;
class MemberGroupList;
class MemberGroupDict;
+class PackageDef;
struct IncludeInfo
{
@@ -116,6 +117,9 @@ class FileDef : public Definition
void insertNamespace(NamespaceDef *nd);
void computeAnchors();
+ void setPackageDef(PackageDef *pd) { package=pd; }
+ PackageDef *packageDef() const { return package; }
+
void addUsingDirective(NamespaceDef *nd);
NamespaceList *getUsedNamespaces() const { return usingDirList; }
void addUsingDeclaration(ClassDef *cd);
@@ -169,6 +173,8 @@ class FileDef : public Definition
/* user defined member groups */
MemberGroupList *memberGroupList;
MemberGroupDict *memberGroupDict;
+
+ PackageDef *package;
};
#if 0 // obsolete
diff --git a/src/filename.cpp b/src/filename.cpp
index e5f224a..7214ee8 100644
--- a/src/filename.cpp
+++ b/src/filename.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 48c73ec..59928d7 100644
--- a/src/filename.h
+++ b/src/filename.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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.cpp b/src/formula.cpp
index abe529a..065f036 100644
--- a/src/formula.cpp
+++ b/src/formula.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 a17f279..2c2fd51 100644
--- a/src/formula.h
+++ b/src/formula.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/gifenc.cpp b/src/gifenc.cpp
index 458d050..cdc1481 100644
--- a/src/gifenc.cpp
+++ b/src/gifenc.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/gifenc.h b/src/gifenc.h
index 0aff24e..2ec1d7b 100644
--- a/src/gifenc.h
+++ b/src/gifenc.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 501ceb0..faccc93 100644
--- a/src/groupdef.cpp
+++ b/src/groupdef.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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.h b/src/groupdef.h
index b8aaa40..649f70d 100644
--- a/src/groupdef.h
+++ b/src/groupdef.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 86c90e9..fdd71e4 100644
--- a/src/htmlgen.cpp
+++ b/src/htmlgen.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -144,7 +144,7 @@ void HtmlGenerator::writeFooterFile(QFile &file)
<< "align=\"middle\" border=0 width=110 height=53>\n"
<< "</a> $doxygenversion written by"
<< " <a href=\"mailto:dimitri@stack.nl\">Dimitri van Heesch</a>,\n"
- << " &copy;&nbsp;1997-2000</small></address>\n"
+ << " &copy;&nbsp;1997-2001</small></address>\n"
<< "</body>\n"
<< "</html>\n";
}
@@ -235,7 +235,7 @@ void HtmlGenerator::writeFooter(int part,bool external)
default:
if (footer.isEmpty())
t << " <a href=\"mailto:dimitri@stack.nl\">Dimitri van Heesch</a>,\n &copy;&nbsp;"
- "1997-2000</small></address>\n</body>\n</html>\n";
+ "1997-2001</small></address>\n</body>\n</html>\n";
break;
}
@@ -430,7 +430,9 @@ void HtmlGenerator::endTextLink()
void HtmlGenerator::writeHtmlLink(const char *url,const char *text)
{
- t << "<a href=\"";
+ t << "<a ";
+ if (Config::ftvHelpFlag) t << "target=\"top\" ";
+ t << "href=\"";
if (url) t << url;
t << "\">";
docify(text);
diff --git a/src/htmlgen.h b/src/htmlgen.h
index 0a0ebf1..4d7fa4f 100644
--- a/src/htmlgen.h
+++ b/src/htmlgen.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 1802a48..5ec135d 100644
--- a/src/htmlhelp.cpp
+++ b/src/htmlhelp.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 cb899c6..affadb2 100644
--- a/src/htmlhelp.h
+++ b/src/htmlhelp.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 17d89b4..ccfa65f 100644
--- a/src/image.cpp
+++ b/src/image.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 3d4b1a4..178996b 100644
--- a/src/image.h
+++ b/src/image.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 08a77cd..15cc2d4 100644
--- a/src/index.cpp
+++ b/src/index.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 "ftvhelp.h"
#include "dot.h"
#include "page.h"
+#include "packagedef.h"
//----------------------------------------------------------------------------
@@ -43,6 +44,8 @@ static bool g_memberIndexLetterUsed[256];
static bool g_fileIndexLetterUsed[256];
static bool g_namespaceIndexLetterUsed[256];
+const int maxItemsBeforeQuickIndex = 50;
+
//----------------------------------------------------------------------------
// strips w from s iff s starts with w
@@ -829,14 +832,7 @@ void writeAnnotatedClassList(OutputList &ol)
{
if (cd->isLinkableInProject())
{
- QCString type;
- switch (cd->compoundType())
- {
- case ClassDef::Class: type="class"; break;
- case ClassDef::Struct: type="struct"; break;
- case ClassDef::Union: type="union"; break;
- default: type="interface"; break;
- }
+ QCString type=cd->compoundTypeString();
ol.writeStartAnnoItem(type,cd->getOutputFileBase(),0,cd->displayName());
if (!cd->briefDescription().isEmpty())
{
@@ -859,7 +855,42 @@ void writeAnnotatedClassList(OutputList &ol)
FTVHelp::getInstance()->addContentsItem(FALSE,cd->getReference(),cd->getOutputFileBase(),0,cd->name());
}
}
- cd=classList.next();
+ }
+ ol.endIndexList();
+}
+
+//----------------------------------------------------------------------------
+
+void writePackageList(OutputList &ol)
+{
+ bool hasHtmlHelp = Config::generateHtml && Config::htmlHelpFlag /*&& !Config::htmlHelpGroupsOnly*/;
+ bool hasFtvHelp = Config::generateHtml && Config::ftvHelpFlag /*&& !Config::htmlHelpGroupsOnly*/;
+ ol.startIndexList();
+ PackageSDict::Iterator pdi(packageDict);
+ PackageDef *pd;
+ for (;(pd=pdi.current());++pdi)
+ {
+ ol.writeStartAnnoItem("package",pd->getOutputFileBase(),0,pd->name());
+ if (!pd->briefDescription().isEmpty())
+ {
+ ol.docify(" (");
+ OutputList briefOutput(&ol);
+ parseDoc(briefOutput,
+ pd->getDefFileName(),pd->getDefLine(),
+ pd->name(),0,
+ abbreviate(pd->briefDescription(),pd->name()));
+ ol+=briefOutput;
+ ol.docify(")");
+ }
+ ol.writeEndAnnoItem(pd->getOutputFileBase());
+ if (hasHtmlHelp)
+ {
+ HtmlHelp::getInstance()->addContentsItem(FALSE,pd->name(),pd->getOutputFileBase());
+ }
+ if (hasFtvHelp)
+ {
+ FTVHelp::getInstance()->addContentsItem(FALSE,pd->getReference(),pd->getOutputFileBase(),0,pd->name());
+ }
}
ol.endIndexList();
}
@@ -1042,7 +1073,6 @@ void writeAnnotatedIndex(OutputList &ol)
if (annotatedClasses==0) return;
- //if (classList.count()==0) return;
ol.pushGeneratorState();
ol.disable(OutputGenerator::Man);
startFile(ol,"annotated","Annotated Index");
@@ -1069,7 +1099,6 @@ void writeAnnotatedIndex(OutputList &ol)
ftvHelp->incContentsDepth();
}
parseText(ol,theTranslator->trCompoundListDescription());
- //ol.newParagraph();
ol.endTextBlock();
writeAnnotatedClassList(ol);
if (hasHtmlHelp)
@@ -1082,7 +1111,56 @@ void writeAnnotatedIndex(OutputList &ol)
}
endFile(ol);
- //ol.enable(OutputGenerator::Man);
+ ol.popGeneratorState();
+}
+
+//----------------------------------------------------------------------------
+
+void writePackageIndex(OutputList &ol)
+{
+ bool hasHtmlHelp = Config::generateHtml && Config::htmlHelpFlag /*&& !Config::htmlHelpGroupsOnly*/;
+ bool hasFtvHelp = Config::generateHtml && Config::ftvHelpFlag /*&& !Config::htmlHelpGroupsOnly*/;
+
+ if (documentedPackages==0) return;
+
+ ol.pushGeneratorState();
+ ol.disable(OutputGenerator::Man);
+ startFile(ol,"packages","Package Index");
+ startTitle(ol,0);
+ QCString title = theTranslator->trPackageList();
+ QCString htmlHelpTitle = title;
+ QCString ftvHelpTitle = title;
+ if (!Config::projectName.isEmpty()) title.prepend(Config::projectName+" ");
+ parseText(ol,title);
+ endTitle(ol,0,0);
+ ol.startTextBlock();
+ HtmlHelp *htmlHelp = 0;
+ FTVHelp *ftvHelp = 0;
+ if (hasHtmlHelp)
+ {
+ htmlHelp = HtmlHelp::getInstance();
+ htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"packages");
+ htmlHelp->incContentsDepth();
+ }
+ if (hasFtvHelp)
+ {
+ ftvHelp = FTVHelp::getInstance();
+ ftvHelp->addContentsItem(TRUE,0,"packages",0,ftvHelpTitle);
+ ftvHelp->incContentsDepth();
+ }
+ parseText(ol,theTranslator->trPackageListDescription());
+ ol.endTextBlock();
+ writePackageList(ol);
+ if (hasHtmlHelp)
+ {
+ htmlHelp->decContentsDepth();
+ }
+ if (hasFtvHelp)
+ {
+ ftvHelp->decContentsDepth();
+ }
+
+ endFile(ol);
ol.popGeneratorState();
}
@@ -1240,14 +1318,30 @@ void writeMemberIndex(OutputList &ol)
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
startFile(ol,"functions","Compound Member Index");
+ QCString title = theTranslator->trCompoundMembers();
+ QCString htmlHelpTitle = title;
+ QCString ftvHelpTitle = title;
+ if (!Config::projectName.isEmpty()) title.prepend(Config::projectName+" ");
startTitle(ol,0);
- parseText(ol,Config::projectName+" "+theTranslator->trCompoundMembers());
+ parseText(ol,title);
endTitle(ol,0,0);
- bool quickIndex = documentedMembers>50;
+ bool quickIndex = documentedMembers>maxItemsBeforeQuickIndex;
if (quickIndex)
{
writeQuickMemberIndex(ol,g_memberIndexLetterUsed);
}
+ bool hasHtmlHelp = Config::generateHtml && Config::htmlHelpFlag;
+ bool hasFtvHelp = Config::generateHtml && Config::ftvHelpFlag;
+ if (hasHtmlHelp)
+ {
+ HtmlHelp *htmlHelp = HtmlHelp::getInstance();
+ htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"functions");
+ }
+ if (hasFtvHelp)
+ {
+ FTVHelp *ftvHelp = FTVHelp::getInstance();
+ ftvHelp->addContentsItem(FALSE,0,"functions",0,ftvHelpTitle);
+ }
parseText(ol,theTranslator->trCompoundMembersDescription(Config::extractAllFlag));
writeMemberList(ol,quickIndex);
endFile(ol);
@@ -1342,7 +1436,6 @@ void writeNamespaceMemberList(OutputList &ol,bool useSections)
{
char lastChar=0;
bool first=TRUE;
- //ol.startItemList();
MemberName *mn=functionNameList.first();
while (mn)
{
@@ -1375,6 +1468,11 @@ void writeNamespaceMemberList(OutputList &ol,bool useSections)
first=FALSE;
}
}
+ else if (first)
+ {
+ ol.startItemList();
+ first=FALSE;
+ }
ol.writeListItem();
ol.docify(md->name());
if (md->isFunction()) ol.docify("()");
@@ -1404,7 +1502,7 @@ void writeNamespaceMemberList(OutputList &ol,bool useSections)
}
mn=functionNameList.next();
}
- ol.endItemList();
+ if (!first) ol.endItemList();
}
//----------------------------------------------------------------------------
@@ -1476,14 +1574,30 @@ void writeFileMemberIndex(OutputList &ol)
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
startFile(ol,"globals","File Member Index");
+ QCString title = theTranslator->trFileMembers();
+ QCString htmlHelpTitle = title;
+ QCString ftvHelpTitle = title;
+ if (!Config::projectName.isEmpty()) title.prepend(Config::projectName+" ");
startTitle(ol,0);
- parseText(ol,Config::projectName+" "+theTranslator->trFileMembers());
+ parseText(ol,title);
endTitle(ol,0,0);
- bool quickIndex = documentedMembers>50;
+ bool quickIndex = documentedMembers>maxItemsBeforeQuickIndex;
if (quickIndex)
{
writeQuickMemberIndex(ol,g_fileIndexLetterUsed);
}
+ bool hasHtmlHelp = Config::generateHtml && Config::htmlHelpFlag;
+ bool hasFtvHelp = Config::generateHtml && Config::ftvHelpFlag;
+ if (hasHtmlHelp)
+ {
+ HtmlHelp *htmlHelp = HtmlHelp::getInstance();
+ htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"globals");
+ }
+ if (hasFtvHelp)
+ {
+ FTVHelp *ftvHelp = FTVHelp::getInstance();
+ ftvHelp->addContentsItem(FALSE,0,"globals",0,ftvHelpTitle);
+ }
parseText(ol,theTranslator->trFileMembersDescription(Config::extractAllFlag));
writeFileMemberList(ol,quickIndex);
endFile(ol);
@@ -1498,14 +1612,30 @@ void writeNamespaceMemberIndex(OutputList &ol)
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
startFile(ol,"namespacemembers","Namespace Member Index");
+ QCString title = theTranslator->trNamespaceMembers();
+ QCString htmlHelpTitle = title;
+ QCString ftvHelpTitle = title;
+ if (!Config::projectName.isEmpty()) title.prepend(Config::projectName+" ");
startTitle(ol,0);
- parseText(ol,Config::projectName+" "+theTranslator->trNamespaceMembers());
+ parseText(ol,title);
endTitle(ol,0,0);
- bool quickIndex = documentedMembers>50;
+ bool quickIndex = documentedMembers>maxItemsBeforeQuickIndex;
if (quickIndex)
{
writeQuickMemberIndex(ol,g_namespaceIndexLetterUsed);
}
+ bool hasHtmlHelp = Config::generateHtml && Config::htmlHelpFlag;
+ bool hasFtvHelp = Config::generateHtml && Config::ftvHelpFlag;
+ if (hasHtmlHelp)
+ {
+ HtmlHelp *htmlHelp = HtmlHelp::getInstance();
+ htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"namespacemembers");
+ }
+ if (hasFtvHelp)
+ {
+ FTVHelp *ftvHelp = FTVHelp::getInstance();
+ ftvHelp->addContentsItem(FALSE,0,"namespacemembers",0,ftvHelpTitle);
+ }
parseText(ol,theTranslator->trNamespaceMemberDescription(Config::extractAllFlag));
writeNamespaceMemberList(ol,quickIndex);
endFile(ol);
@@ -1598,6 +1728,20 @@ int countRelatedPages()
//----------------------------------------------------------------------------
+int countPackages()
+{
+ int count=0;
+ PackageSDict::Iterator pdi(packageDict);
+ PackageDef *pd=0;
+ for (pdi.toFirst();(pd=pdi.current());++pdi)
+ {
+ count++;
+ }
+ return count;
+}
+
+//----------------------------------------------------------------------------
+
void writePageIndex(OutputList &ol)
{
if (documentedPages==0) return;
@@ -2121,6 +2265,13 @@ void writeIndex(OutputList &ol)
}
ol.enable(OutputGenerator::Latex);
+
+ if (documentedPackages>0)
+ {
+ ol.startIndexSection(isPackageIndex);
+ parseText(ol,projPrefix+theTranslator->trPackageList());
+ ol.endIndexSection(isPackageIndex);
+ }
if (documentedGroups>0)
{
ol.startIndexSection(isModuleIndex);
@@ -2158,6 +2309,12 @@ void writeIndex(OutputList &ol)
ol.endIndexSection(isPageIndex);
}
ol.lastIndexPage();
+ if (documentedPackages>0)
+ {
+ ol.startIndexSection(isPackageDocumentation);
+ parseText(ol,projPrefix+theTranslator->trPackageDocumentation());
+ ol.endIndexSection(isPackageDocumentation);
+ }
if (documentedGroups>0)
{
ol.startIndexSection(isModuleDocumentation);
diff --git a/src/index.h b/src/index.h
index d928a5b..0cb4b9d 100644
--- a/src/index.h
+++ b/src/index.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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,12 +26,14 @@ enum IndexSections
isTitlePageStart,
isTitlePageAuthor,
isMainPage,
+ isPackageIndex,
isModuleIndex,
isNamespaceIndex,
isClassHierarchyIndex,
isCompoundIndex,
isFileIndex,
isPageIndex,
+ isPackageDocumentation,
isModuleDocumentation,
isNamespaceDocumentation,
isClassDocumentation,
@@ -63,6 +65,7 @@ void writeNamespaceIndex(OutputList &ol);
void writeNamespaceMemberIndex(OutputList &ol);
void writeGraphicalClassHierarchy(OutputList &ol);
void writeGraphInfo(OutputList &ol);
+void writePackageIndex(OutputList &ol);
int countClassHierarchy();
int countClassMembers();
@@ -74,5 +77,6 @@ int countAnnotatedClasses();
int countNamespaceMembers();
int countIncludeFiles();
int countRelatedPages();
+int countPackages();
#endif
diff --git a/src/instdox.cpp b/src/instdox.cpp
index 97df7c6..b7d3ec4 100644
--- a/src/instdox.cpp
+++ b/src/instdox.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/instdox.h b/src/instdox.h
index f71c8fd..179b1db 100644
--- a/src/instdox.h
+++ b/src/instdox.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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.cpp b/src/language.cpp
index 0711aa3..c6f5d78 100644
--- a/src/language.cpp
+++ b/src/language.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 d38f494..11840cb 100644
--- a/src/language.h
+++ b/src/language.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/latexgen.cpp b/src/latexgen.cpp
index 416b5e3..1d15252 100644
--- a/src/latexgen.cpp
+++ b/src/latexgen.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -407,11 +407,11 @@ void LatexGenerator::writeStyleSheetFile(QFile &f)
writeDefaultStyleSheetPart1(t);
t << "Generated at " << dateToString(TRUE);
if (Config::projectName.isEmpty()) t << " for " << Config::projectName << " ";
- t << "by doxygen written by Dimitri van Heesch \\copyright~1997-2000";
+ t << "by doxygen written by Dimitri van Heesch \\copyright~1997-2001";
writeDefaultStyleSheetPart2(t);
t << "Generated at " << dateToString(TRUE);
if (Config::projectName.isEmpty()) t << " for " << Config::projectName << " ";
- t << "by doxygen written by Dimitri van Heesch \\copyright~1997-2000";
+ t << "by doxygen written by Dimitri van Heesch \\copyright~1997-2001";
writeDefaultStyleSheetPart3(t);
}
@@ -464,6 +464,10 @@ void LatexGenerator::startIndexSection(IndexSections is)
if (Config::compactLatexFlag) t << "\\section"; else t << "\\chapter";
t << "{"; //Introduction}\n"
break;
+ case isPackageIndex:
+ if (Config::compactLatexFlag) t << "\\section"; else t << "\\chapter";
+ t << "{"; //Package Index}\n"
+ break;
case isModuleIndex:
if (Config::compactLatexFlag) t << "\\section"; else t << "\\chapter";
t << "{"; //Module Index}\n"
@@ -488,6 +492,21 @@ void LatexGenerator::startIndexSection(IndexSections is)
if (Config::compactLatexFlag) t << "\\section"; else t << "\\chapter";
t << "{"; //Annotated Page Index}\n"
break;
+ case isPackageDocumentation:
+ {
+ PackageSDict::Iterator pdi(packageDict);
+ PackageDef *pd=pdi.toFirst();
+ bool found=FALSE;
+ while (pd && !found)
+ {
+ if (Config::compactLatexFlag) t << "\\section"; else t << "\\chapter";
+ t << "{";
+ found=TRUE;
+ ++pdi;
+ pd=pdi.current();
+ }
+ }
+ break;
case isModuleDocumentation:
{
GroupDef *gd=groupList.first();
@@ -595,6 +614,9 @@ void LatexGenerator::endIndexSection(IndexSections is)
if (Config::pdfHyperFlag) t << "\\hypertarget{index}{}";
t << "\\input{index}\n";
break;
+ case isPackageIndex:
+ t << "}\n\\input{packages}\n";
+ break;
case isModuleIndex:
t << "}\n\\input{modules}\n";
break;
@@ -613,6 +635,27 @@ void LatexGenerator::endIndexSection(IndexSections is)
case isPageIndex:
t << "}\n\\input{pages}\n";
break;
+ case isPackageDocumentation:
+ {
+ PackageSDict::Iterator pdi(packageDict);
+ PackageDef *pd=pdi.toFirst();
+ bool found=FALSE;
+ while (pd && !found)
+ {
+ t << "}\n\\input{" << pd->getOutputFileBase() << "}\n";
+ found=TRUE;
+ ++pdi;
+ pd=pdi.current();
+ }
+ while (pd)
+ {
+ if (Config::compactLatexFlag) t << "\\input"; else t << "\\include";
+ t << "{" << pd->getOutputFileBase() << "}\n";
+ ++pdi;
+ pd=pdi.current();
+ }
+ }
+ break;
case isModuleDocumentation:
{
GroupDef *gd=groupList.first();
@@ -774,14 +817,14 @@ void LatexGenerator::writeStyleInfo(int part)
break;
case 2:
{
- t << " Dimitri van Heesch \\copyright~1997-2000";
+ t << " Dimitri van Heesch \\copyright~1997-2001";
t << "}]{}\n";
writeDefaultStyleSheetPart2(t);
}
break;
case 4:
{
- t << " Dimitri van Heesch \\copyright~1997-2000";
+ t << " Dimitri van Heesch \\copyright~1997-2001";
writeDefaultStyleSheetPart3(t);
endPlainFile();
}
diff --git a/src/latexgen.h b/src/latexgen.h
index 4095eb5..f298953 100644
--- a/src/latexgen.h
+++ b/src/latexgen.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 @@ class LatexGenerator : public OutputGenerator
void startPreFragment() { t << "\\small\\begin{alltt}"; }
void endPreFragment() { t << "\\end{alltt}\\normalsize " << endl; }
void startCodeLine() { col=0; }
- void endCodeLine() { t << endl; }
+ void endCodeLine() { codify("\n"); }
void writeBoldString(const char *text)
{ t << "{\\bf "; docify(text); t << "}"; }
void startEmphasis() { t << "{\\em "; }
diff --git a/src/logos.cpp b/src/logos.cpp
index 92bc08e..43d7b46 100644
--- a/src/logos.cpp
+++ b/src/logos.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 d8f84a5..71019f8 100644
--- a/src/logos.h
+++ b/src/logos.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 852a0f4..1a61011 100644
--- a/src/mangen.cpp
+++ b/src/mangen.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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.h b/src/mangen.h
index 39d9f2d..f342069 100644
--- a/src/mangen.h
+++ b/src/mangen.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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,7 +109,7 @@ class ManGenerator : public OutputGenerator
void startPreFragment() { startCodeFragment(); }
void endPreFragment() { endCodeFragment(); }
void startCodeLine() {}
- void endCodeLine() { t << endl; col=0; }
+ void endCodeLine() { codify("\n"); col=0; }
void writeBoldString(const char *text)
{ t << "\\fB"; docify(text); t << "\\fR"; firstCol=FALSE; }
void startEmphasis() { t << "\\fI"; firstCol=FALSE; }
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index c6c5354..0d87093 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -658,6 +658,10 @@ void MemberDef::writeDeclaration(OutputList &ol,
{
writeTemplatePrefix(ol,tArgList,FALSE);
}
+ else if (membTAL)
+ {
+ writeTemplatePrefix(ol,membTAL,FALSE);
+ }
if (i!=-1) // member has an anonymous type
{
@@ -818,7 +822,14 @@ void MemberDef::writeDeclaration(OutputList &ol,
ol.disableAllBut(OutputGenerator::Html);
ol.endEmphasis();
ol.docify(" ");
- ol.startTextLink(0,anchor());
+ if (group!=0 && gd==0) // forward link to the group
+ {
+ ol.startTextLink(group->getOutputFileBase(),anchor());
+ }
+ else
+ {
+ ol.startTextLink(0,anchor());
+ }
parseText(ol,theTranslator->trMore());
ol.endTextLink();
ol.startEmphasis();
@@ -1396,7 +1407,7 @@ bool MemberDef::isLinkable()
bool MemberDef::detailsAreVisible() const
{
return !documentation().isEmpty() || // has detailed docs
- (Config::sourceBrowseFlag && startBodyLine!=-1 && bodyDef) || // has reference to sources
+ //(Config::sourceBrowseFlag && startBodyLine!=-1 && bodyDef) || // has reference to sources
(mtype==Enumeration && docEnumValues) || // has enum values
(mtype==EnumValue && !briefDescription().isEmpty()) || // is doc enum value
(!briefDescription().isEmpty() &&
diff --git a/src/memberdef.h b/src/memberdef.h
index 7f211f1..36b3c45 100644
--- a/src/memberdef.h
+++ b/src/memberdef.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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.cpp b/src/membergroup.cpp
index f1bf6bb..f96dc06 100644
--- a/src/membergroup.cpp
+++ b/src/membergroup.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 01312b2..8ddcb66 100644
--- a/src/membergroup.h
+++ b/src/membergroup.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 964607f..142e2f2 100644
--- a/src/memberlist.cpp
+++ b/src/memberlist.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 66efdb3..417abfd 100644
--- a/src/memberlist.h
+++ b/src/memberlist.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 3c3a3d0..87b4c79 100644
--- a/src/membername.cpp
+++ b/src/membername.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 fb81a55..21282df 100644
--- a/src/membername.h
+++ b/src/membername.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 112d5af..57aba79 100644
--- a/src/message.cpp
+++ b/src/message.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 df2bc94..ed47fa2 100644
--- a/src/message.h
+++ b/src/message.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 b92d2e5..9fe1a01 100644
--- a/src/namespacedef.cpp
+++ b/src/namespacedef.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 884107e..d3c163d 100644
--- a/src/namespacedef.h
+++ b/src/namespacedef.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 95ef0b0..490a80e 100644
--- a/src/outputgen.cpp
+++ b/src/outputgen.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 f890a30..49bd734 100644
--- a/src/outputgen.h
+++ b/src/outputgen.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 01f0fc6..b41a97e 100644
--- a/src/outputlist.cpp
+++ b/src/outputlist.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 b964483..2d57034 100644
--- a/src/outputlist.h
+++ b/src/outputlist.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/packagedef.cpp b/src/packagedef.cpp
new file mode 100644
index 0000000..308f1f1
--- /dev/null
+++ b/src/packagedef.cpp
@@ -0,0 +1,122 @@
+/******************************************************************************
+ *
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van 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.
+ *
+ */
+
+#include <ctype.h>
+#include "packagedef.h"
+#include "qtbc.h"
+#include "classdef.h"
+#include "classlist.h"
+#include "outputlist.h"
+#include "util.h"
+#include "config.h"
+#include "doc.h"
+#include "language.h"
+#include "doxygen.h"
+
+PackageDef::PackageDef(const char *df,int dl,const char *na) :
+ Definition(df,dl,na)
+{
+ classList = new ClassList;
+ packageFileName = "package_"+convertFileName(na);
+}
+
+PackageDef::~PackageDef()
+{
+ delete classList;
+}
+
+void PackageDef::addClass(const ClassDef *def)
+{
+ if (Config::sortMembersFlag)
+ classList->inSort(def);
+ else
+ classList->append(def);
+}
+
+void PackageDef::writeDocumentation(OutputList &ol)
+{
+ QCString title = theTranslator->trPackage(name());
+ ol.pushGeneratorState();
+ ol.disable(OutputGenerator::Man);
+ startFile(ol,getOutputFileBase(),title);
+ startTitle(ol,getOutputFileBase());
+ ol.docify(title);
+ endTitle(ol,getOutputFileBase(),title);
+
+ OutputList briefOutput(&ol);
+ if (!briefDescription().isEmpty())
+ {
+ parseDoc(briefOutput,defFileName,defLine,name(),0,briefDescription());
+ ol+=briefOutput;
+ ol.writeString(" \n");
+ ol.pushGeneratorState();
+ ol.disable(OutputGenerator::Latex);
+ ol.disable(OutputGenerator::RTF);
+ ol.startTextLink(0,"_details");
+ parseText(ol,theTranslator->trMore());
+ ol.endTextLink();
+ ol.popGeneratorState();
+ }
+
+ if (!Config::genTagFile.isEmpty())
+ {
+ tagFile << " <compound kind=\"package\">" << endl;
+ }
+
+ ol.startMemberSections();
+ ClassDef::CompoundType ct;
+ ct=ClassDef::Interface;
+ classList->writeDeclaration(ol,&ct,theTranslator->trInterfaces());
+ ct=ClassDef::Class;
+ classList->writeDeclaration(ol,&ct,theTranslator->trClasses());
+ ol.endMemberSections();
+
+ if (!Config::genTagFile.isEmpty())
+ {
+ tagFile << " </compound>" << endl;
+ }
+
+ if (!briefDescription().isEmpty() || !documentation().isEmpty())
+ {
+ ol.writeRuler();
+ ol.pushGeneratorState();
+ ol.disable(OutputGenerator::Latex);
+ ol.disable(OutputGenerator::RTF);
+ ol.writeAnchor(0,"_details");
+ ol.popGeneratorState();
+ ol.startGroupHeader();
+ parseText(ol,theTranslator->trDetailedDescription());
+ ol.endGroupHeader();
+
+ // repeat brief description
+ if (!briefDescription().isEmpty() && Config::repeatBriefFlag)
+ {
+ ol+=briefOutput;
+ ol.newParagraph();
+ }
+
+ // write documentation
+ if (!documentation().isEmpty())
+ {
+ parseDoc(ol,defFileName,defLine,name(),0,documentation()+"\n");
+ }
+ }
+
+ endFile(ol);
+ ol.popGeneratorState();
+}
+
diff --git a/src/packagedef.h b/src/packagedef.h
new file mode 100644
index 0000000..7d5224a
--- /dev/null
+++ b/src/packagedef.h
@@ -0,0 +1,62 @@
+/******************************************************************************
+ *
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van 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 PACKAGEDEF_H
+#define PACKAGEDEF_H
+
+#include "qtbc.h"
+#include <qlist.h>
+#include <qdict.h>
+#include "definition.h"
+#include "sortdict.h"
+
+class ClassList;
+class ClassDef;
+class PackageList;
+class OutputList;
+
+class PackageDef : public Definition
+{
+ public:
+ PackageDef(const char *fName,int line, const char *name);
+ ~PackageDef();
+ DefType definitionType() { return TypePackage; }
+ QCString getOutputFileBase() const { return packageFileName; }
+ void addClass(const ClassDef *def);
+ void writeDocumentation(OutputList &ol);
+ bool isLinkableInProject()
+ {
+ return hasDocumentation() && !isReference();
+ }
+ bool isLinkable()
+ {
+ return isLinkableInProject() || isReference();
+ }
+
+ private:
+ QCString packageFileName; // base name of the generated file
+ ClassList *classList; // list of classes in the package
+};
+
+class PackageSDict : public SDict<PackageDef>
+{
+ public:
+ PackageSDict(int size) : SDict<PackageDef>(size) {}
+};
+
+#endif
+
diff --git a/src/page.h b/src/page.h
index cbcf33c..dac8d19 100644
--- a/src/page.h
+++ b/src/page.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 8d10236..f545c2f 100644
--- a/src/pre.h
+++ b/src/pre.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 570bdc0..3b29529 100644
--- a/src/pre.l
+++ b/src/pre.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -43,6 +43,7 @@
#include "util.h"
#include "defargs.h"
#include "debug.h"
+#include "bufstr.h"
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define popen _popen
@@ -51,7 +52,6 @@
#define YY_NEVER_INTERACTIVE 1
-#define SHOW_INCLUDES 0 // set this to one to list all parsed include files
struct FileState
{
@@ -317,7 +317,6 @@ static void processConcatOperators(QCString &expr)
static bool replaceFunctionMacro(const QCString &expr,QCString *rest,int pos,int &len,const Define *def,QCString &result)
{
//printf("replaceFunctionMacro(expr=%s,rest=%s,pos=%d,def=%s) level=%d\n",expr.data(),rest ? rest->data() : 0,pos,def->name.data(),g_level);
- //bool replaced=FALSE;
uint j=pos;
len=0;
result.resize(0);
@@ -334,9 +333,6 @@ static bool replaceFunctionMacro(const QCString &expr,QCString *rest,int pos,int
}
getNextChar(expr,rest,j); // eat the `(' character
- //while (j<expr.length() && expr.at(j)!='(') j++;
- //j++; // skip opening paren
-
QDict<QCString> argTable; // list of arguments
argTable.setAutoDelete(TRUE);
QCString arg;
@@ -417,26 +413,34 @@ static bool replaceFunctionMacro(const QCString &expr,QCString *rest,int pos,int
else if (c=='\"') // append literal strings
{
arg+=c;
- char pc=c;
bool found=FALSE;
while (!found && (cc=getNextChar(expr,rest,j))!=EOF)
{
- found = pc!='\\' && cc=='"';
+ found = cc=='"';
+ if (cc=='\\')
+ {
+ c=(char)cc;
+ arg+=c;
+ if ((cc=getNextChar(expr,rest,j))==EOF) break;
+ }
c=(char)cc;
- pc=c;
arg+=c;
}
}
else if (c=='\'') // append literal characters
{
arg+=c;
- char pc=c;
bool found=FALSE;
while (!found && (cc=getNextChar(expr,rest,j))!=EOF)
{
- found = pc!='\\' && cc=='\'';
+ found = cc=='\'';
+ if (cc=='\\')
+ {
+ c=(char)cc;
+ arg+=c;
+ if ((cc=getNextChar(expr,rest,j))==EOF) break;
+ }
c=(char)cc;
- pc=c;
arg+=c;
}
}
@@ -876,10 +880,11 @@ static void readIncludeFile(const QCString &inc)
//printf("Searching for `%s'\n",incFileName.data());
if ((f=findFile(incFileName))) // see if the include file can be found
{
-#if SHOW_INCLUDES
- for (i=0;i<g_includeStack.count();i++) msg(" ");
- msg("#include %s: parsing...\n",incFileName.data());
-#endif
+ if (Debug::isFlagSet(Debug::Preprocessor))
+ {
+ for (i=0;i<g_includeStack.count();i++) msg(" ");
+ msg("#include %s: parsing...\n",incFileName.data());
+ }
if (oldFileDef)
{
// add include dependency to the file in which the #include was found
@@ -916,10 +921,11 @@ static void readIncludeFile(const QCString &inc)
fd->addIncludedByDependency(oldFileDef,oldFileDef->name(),localInclude);
}
}
-#if SHOW_INCLUDES
- msg("#include %s: not found! skipping...\n",incFileName.data());
- //printf("Error: include file %s not found\n",yytext);
-#endif
+ if (Debug::isFlagSet(Debug::Preprocessor))
+ {
+ msg("#include %s: not found! skipping...\n",incFileName.data());
+ //printf("Error: include file %s not found\n",yytext);
+ }
}
}
}
@@ -957,7 +963,7 @@ BN [ \t\r\n]
%x DefinedExpr2
%x SkipDoubleQuote
%x SkipSingleQuote
-%x Ung_defName
+%x UndefName
%x IgnoreLine
%x FindDefineArgs
%x ReadString
@@ -1094,8 +1100,8 @@ BN [ \t\r\n]
g_roundCount--;
if (g_roundCount==0)
{
- //printf("g_defArgsStr=`%s'\n",g_defArgsStr.data());
QCString result=expandMacro(g_defArgsStr);
+ //printf("g_defArgsStr=`%s'->`%s'\n",g_defArgsStr.data(),result.data());
if (g_findDefArgContext==CopyLine)
{
outputArray(result,result.length());
@@ -1114,7 +1120,7 @@ BN [ \t\r\n]
g_defArgsStr+=yytext;
}
*/
-<FindDefineArgs>"\"" {
+<FindDefineArgs>\" {
g_defArgsStr+=*yytext;
BEGIN(ReadString);
}
@@ -1128,9 +1134,6 @@ BN [ \t\r\n]
<FindDefineArgs>. {
g_defArgsStr+=*yytext;
}
-<ReadString>"\\\"" {
- g_defArgsStr+=yytext;
- }
<ReadString>"\"" {
g_defArgsStr+=*yytext;
BEGIN(FindDefineArgs);
@@ -1138,6 +1141,9 @@ BN [ \t\r\n]
<ReadString>"//"|"/*" {
g_defArgsStr+=yytext;
}
+<ReadString>\\. {
+ g_defArgsStr+=yytext;
+ }
<ReadString>. {
g_defArgsStr+=*yytext;
}
@@ -1207,7 +1213,7 @@ BN [ \t\r\n]
}
}
<Command>"undef"{B}+ {
- BEGIN(Ung_defName);
+ BEGIN(UndefName);
}
<Command>("elif"|"else"{B}*"if")/[ \t(] {
if (!otherCaseDone())
@@ -1228,9 +1234,13 @@ BN [ \t\r\n]
<Command>{ID} { // unknown directive
BEGIN(IgnoreLine);
}
+<IgnoreLine>\\[\r]?\n {
+ outputChar('\n');
+ g_yyLineNr++;
+ }
<IgnoreLine>.
<Command>.
-<Ung_defName>{ID} {
+<UndefName>{ID} {
Define *def;
if ((def=isDefined(yytext)))
{
diff --git a/src/qtbc.h b/src/qtbc.h
index 0091717..51f62dd 100644
--- a/src/qtbc.h
+++ b/src/qtbc.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 8bef347..b67628e 100644
--- a/src/reflist.cpp
+++ b/src/reflist.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 f0d9958..1aa189e 100644
--- a/src/reflist.h
+++ b/src/reflist.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 8a1dae2..b8d48ad 100644
--- a/src/rtfgen.cpp
+++ b/src/rtfgen.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Parker Waechter & Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Parker Waechter & Dimitri van Heesch.
*
* Style sheet additions by Alexander Bartolich
*
@@ -778,6 +778,10 @@ void RTFGenerator::startIndexSection(IndexSections is)
//Introduction
beginRTFChapter();
break;
+ case isPackageIndex:
+ //Package Index
+ beginRTFChapter();
+ break;
case isModuleIndex:
//Module Index
beginRTFChapter();
@@ -803,6 +807,21 @@ void RTFGenerator::startIndexSection(IndexSections is)
//Related Page Index
beginRTFChapter();
break;
+ case isPackageDocumentation:
+ {
+ //Package Documentation
+ PackageSDict::Iterator pdi(packageDict);
+ PackageDef *pd=pdi.toFirst();
+ bool found=FALSE;
+ while (pd && !found)
+ {
+ beginRTFChapter();
+ found=TRUE;
+ ++pdi;
+ pd=pdi.current();
+ }
+ }
+ break;
case isModuleDocumentation:
{
//Module Documentation
@@ -932,6 +951,11 @@ void RTFGenerator::endIndexSection(IndexSections is)
t << "{\\tc \\v " << theTranslator->trMainPage() << "}"<< endl;
t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"index.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
break;
+ case isPackageIndex:
+ t << "\\par " << Rtf_Style_Reset << endl;
+ t << "{\\tc \\v " << theTranslator->trPackageList() << "}"<< endl;
+ t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"packages.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
+ break;
case isModuleIndex:
t << "\\par " << Rtf_Style_Reset << endl;
t << "{\\tc \\v " << theTranslator->trModuleIndex() << "}"<< endl;
@@ -962,6 +986,22 @@ void RTFGenerator::endIndexSection(IndexSections is)
t << "{\\tc \\v " << theTranslator->trPageIndex() << "}"<< endl;
t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"pages.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
break;
+ case isPackageDocumentation:
+ {
+ PackageSDict::Iterator pdi(packageDict);
+ PackageDef *pd=pdi.toFirst();
+ t << "{\\tc \\v " << theTranslator->trPackageDocumentation() << "}"<< endl;
+ while (pd)
+ {
+ t << "\\par " << Rtf_Style_Reset << endl;
+ t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
+ t << pd->getOutputFileBase();
+ t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
+ ++pdi;
+ pd=pdi.current();
+ }
+ }
+ break;
case isModuleDocumentation:
{
GroupDef *gd=groupList.first();
diff --git a/src/rtfgen.h b/src/rtfgen.h
index 2631dc0..491b483 100644
--- a/src/rtfgen.h
+++ b/src/rtfgen.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Parker Waechter & Dimitri van Heesch.
+ * Copyright (C) 1997-2001 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/scanner.h b/src/scanner.h
index 0763e33..007dc5b 100644
--- a/src/scanner.h
+++ b/src/scanner.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 6bf33ed..c831a9c 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -124,6 +124,7 @@ static QCString baseName;
static QCString* specName;
static QCString formulaText;
static bool insideIDL = FALSE;
+static bool insideJava = FALSE;
static bool insideCppQuote = FALSE;
static int argRoundCount;
@@ -374,6 +375,10 @@ A [aA]
BR [bB][rR]
PRE [pP][rR][eE]
TABLE [tT][aA][bB][lL][eE]
+P [pP]
+UL [uU][lL]
+OL [oO][lL]
+DL [dD][lL]
TITLE [tT][iI][tT][lL][eE]
%option noyywrap
@@ -493,6 +498,7 @@ TITLE [tT][iI][tT][lL][eE]
%x IDLUnionCase
%x NSAliasName
%x NSAliasArg
+%x PackageName
%%
@@ -507,7 +513,8 @@ TITLE [tT][iI][tT][lL][eE]
for( i = 0 ; yytext[i+1] != 6 ; i++ )
yyFileName[i] = yytext[i+1] ;
yyFileName[i] = 0 ;
- insideIDL = i>4 && strcmp(&yyFileName[i-4],".idl")==0;
+ insideIDL = i>4 && strcmp(&yyFileName[i-4],".idl")==0;
+ insideJava = i>5 && strcmp(&yyFileName[i-5],".java")==0;
msg("Parsing file %s...\n",yyFileName);
current_root = global_root ;
initParser();
@@ -653,6 +660,22 @@ TITLE [tT][iI][tT][lL][eE]
<FindMembers>{BN}+ {
lineCount();
}
+<FindMembers>{B}*"package"{BN}+ { // Java package
+ lineCount();
+ BEGIN(PackageName);
+ }
+<PackageName>{ID}("."{ID})* {
+ current->name = yytext;
+ current->fileName = yyFileName;
+ current->startLine = yyLineNr;
+ current->section=Entry::PACKAGE_SEC;
+ current_root->addSubEntry(current);
+ current = new Entry ;
+ initEntry();
+ }
+<PackageName>";" {
+ BEGIN(FindMembers);
+ }
<FindMembers>{B}*"static"{BN}+ { //current->type += " static ";
current->stat = TRUE;
lineCount();
@@ -666,6 +689,10 @@ TITLE [tT][iI][tT][lL][eE]
current->virt = Virtual;
lineCount();
}
+<FindMembers>{B}*"abstract"{BN}+ { current->type += " abstract ";
+ current->virt = Pure;
+ lineCount();
+ }
<FindMembers>{B}*"inline"{BN}+ { current->memSpec|=Entry::Inline;
lineCount();
}
@@ -903,7 +930,7 @@ TITLE [tT][iI][tT][lL][eE]
addType( current );
current->name=n.left(n.length()-2);
}
-<FindMembers>{SCOPENAME}{BN}*/"<" {
+<FindMembers>{SCOPENAME}{BN}*/"<" { // Note: this could be a return type!
sharpCount=0;
lineCount();
addType( current );
@@ -982,6 +1009,13 @@ TITLE [tT][iI][tT][lL][eE]
*currentTemplateSpec+=*yytext;
}
<FindMembers,FindMemberName>{SCOPENAME} {
+ // correct for misinterpreting return type as scope name: example: A<T> func()
+ if (YY_START==FindMembers && current->tArgList && current->mtArgList==0)
+ {
+ current->mtArgList=current->tArgList;
+ current->tArgList=0;
+ current->scopeSpec.resize(0);
+ }
lineCount();
if (insideIDL && yyleng==9 && strcmp(yytext,"cpp_quote")==0)
{
@@ -991,16 +1025,30 @@ TITLE [tT][iI][tT][lL][eE]
{
BEGIN(IDLUnionCase);
}
- else
+ else
{
if (YY_START==FindMembers)
{
addType( current ) ;
- current->name = yytext;
+ }
+ if (insideJava && strcmp(yytext,"public")==0)
+ {
+ current->protection = Public;
+ }
+ else if (insideJava && strcmp(yytext,"protected")==0)
+ {
+ current->protection = Protected;
+ }
+ else if (insideJava && strcmp(yytext,"private")==0)
+ {
+ current->protection = Private;
}
else
{
- current->name += yytext;
+ if (YY_START==FindMembers)
+ current->name = yytext;
+ else
+ current->name += yytext;
}
QCString tmp=yytext;
if (nameIsOperator(tmp))
@@ -1337,6 +1385,8 @@ TITLE [tT][iI][tT][lL][eE]
{
current = new Entry(*current);
current->name.resize(0);
+ current->args.resize(0);
+ current->initializer.resize(0);
int i=oldType.length();
while (i>0 && (oldType[i-1]=='*' || oldType[i-1]=='&' || oldType[i-1]==' ')) i--;
current->type = oldType.left(i);
@@ -1486,9 +1536,10 @@ TITLE [tT][iI][tT][lL][eE]
current_root->addSubEntry( current ) ;
current = new Entry(*current);
if (current->section==Entry::NAMESPACE_SEC ||
- current->section==Entry::INTERFACE_SEC
+ current->section==Entry::INTERFACE_SEC ||
+ insideJava
)
- { // namespaces and interfaces ends with a closing bracket without semicolon
+ { // namespaces and interfaces and java classes ends with a closing bracket without semicolon
current->reset();
initEntry();
BEGIN( FindMembers ) ;
@@ -2219,6 +2270,14 @@ TITLE [tT][iI][tT][lL][eE]
roundCount=0;
BEGIN(SkipUnionSwitch);
}
+ else if (insideJava && (strcmp(yytext,"implements")==0 || strcmp(yytext,"extends")==0))
+ {
+ current->type.resize(0);
+ baseProt=Public;
+ baseVirt=Normal;
+ baseName.resize(0);
+ BEGIN( BasesProt ) ;
+ }
else
{
if (isTypedef)
@@ -2274,20 +2333,30 @@ TITLE [tT][iI][tT][lL][eE]
<BasesProt>{BN} { lineCount(); }
<BasesProt>. { unput(*yytext); BEGIN(Bases); }
<Bases>("::")?{BN}*({ID}{BN}*"::"{BN}*)*{ID} {
- //current->extends->append(
- // new BaseInfo(yytext,baseProt,baseVirt)
- //) ;
- bool globalScope = *yytext==':' && baseName.isEmpty();
+ QCString bName = yytext;
+ bName = bName.stripWhiteSpace();
+ bool globalScope = bName.at(0)==':' && baseName.isEmpty();
if (!globalScope)
- baseName += yytext;
+ baseName += bName;
else
- baseName += (yytext+2);
+ baseName += (bName.data()+2);
current->args += ' ';
if (!globalScope)
- current->args += yytext;
+ current->args += bName;
else
- current->args += (yytext+2);
+ current->args += (bName.data()+2);
}
+<Bases>{BN}*{ID}("."{ID})* { // Java style class
+ QCString name = yytext;
+ int i=name.findRev('.');
+ if (i!=-1) // strip part before dots
+ {
+ name=name.right(name.length()-i-1);
+ }
+ baseName += name;
+ current->args += ' ';
+ current->args += name;
+ }
<ClassVar>"<" { current->name += *yytext;
sharpCount=1;
lastSkipSharpContext = YY_START;
@@ -2322,13 +2391,14 @@ TITLE [tT][iI][tT][lL][eE]
<SkipRound>")" { if (--roundCount<=0)
BEGIN ( lastSkipRoundContext );
}
-<Bases>"," { current->args += ',' ;
+<Bases>","|({BN}+"implements"{BN}*) { lineCount();
+ current->args += ',' ;
current->name = removeRedundantWhiteSpace(current->name);
if (!baseName.isEmpty())
current->extends->append(
new BaseInfo(baseName,baseProt,baseVirt)
);
- if (current->section == Entry::INTERFACE_SEC)
+ if (current->section == Entry::INTERFACE_SEC || insideJava)
baseProt=Public;
else
baseProt=Private;
@@ -2484,7 +2554,7 @@ TITLE [tT][iI][tT][lL][eE]
current->doc+=yytext;
BEGIN( tmpDocType );
}
-<JavaDoc>"<"{TABLE}{ATTR}">" {
+<JavaDoc>"<"({TABLE}|{UL}|{OL}|{DL}){ATTR}|{P}">" { // end brief upon encountering any of these
//current->doc+=yytext;
int i;
for (i=yyleng-1;i>=0;i--)
@@ -2986,7 +3056,7 @@ TITLE [tT][iI][tT][lL][eE]
if (!removeSlashes)
*pSkipDoc+=yytext;
}
-<SkipCode>^{B}*"*"+
+<SkipCode>^{B}*"*"+/{B}+
<SkipCode>"//" {
*pSkipDoc+=yytext;
}
diff --git a/src/searchindex.cpp b/src/searchindex.cpp
index a482928..5567f4e 100644
--- a/src/searchindex.cpp
+++ b/src/searchindex.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 4fb2ba2..214de6e 100644
--- a/src/searchindex.h
+++ b/src/searchindex.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 30bf268..206237c 100644
--- a/src/section.h
+++ b/src/section.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 9c46e9b..199c34d 100644
--- a/src/sortdict.h
+++ b/src/sortdict.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/suffixtree.cpp b/src/suffixtree.cpp
index 5439fc6..242fa9c 100644
--- a/src/suffixtree.cpp
+++ b/src/suffixtree.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/suffixtree.h b/src/suffixtree.h
index a0b7434..7aa8dc9 100644
--- a/src/suffixtree.h
+++ b/src/suffixtree.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/tagreader.cpp b/src/tagreader.cpp
index 3e74d77..cfe7bb0 100644
--- a/src/tagreader.cpp
+++ b/src/tagreader.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -124,7 +124,8 @@ class TagFileParser : public QXmlDefaultHandler
InNamespace,
InGroup,
InPage,
- InMember
+ InMember,
+ InPackage
};
class StartElementHandler
{
@@ -204,6 +205,10 @@ class TagFileParser : public QXmlDefaultHandler
m_curPage = new TagPageInfo;
m_state = InPage;
}
+ else if (kind=="package")
+ {
+ m_state = InPackage;
+ }
else
{
err("Error: Unknown compound attribute `%s' found!\n",kind.data());
@@ -746,7 +751,7 @@ void TagFileParser::buildMemberList(Entry *ce,QList<TagMemberInfo> &members)
}
else if (tmi->kind=="typedef")
{
- me->section = Entry::TYPEDEF_SEC;
+ me->section = Entry::VARIABLE_SEC; //Entry::TYPEDEF_SEC;
me->mtype = Method;
}
else if (tmi->kind=="enumeration")
diff --git a/src/tagreader.h b/src/tagreader.h
index 1508009..a9c7afd 100644
--- a/src/tagreader.h
+++ b/src/tagreader.h
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 4849c95..0c203fa 100644
--- a/src/translator.h
+++ b/src/translator.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -1102,6 +1102,46 @@ class Translator
{
return "Property Documentation";
}
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.4
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used for Java interfaces in the summary section of Java packages */
+ virtual QCString trInterfaces()
+ {
+ return "Interfaces";
+ }
+ /*! Used for Java classes in the summary section of Java packages */
+ virtual QCString trClasses()
+ {
+ return "Classes";
+ }
+ /*! Used as the title of a Java package */
+ virtual QCString trPackage(const char *name)
+ {
+ return (QCString)"Package "+name;
+ }
+ /*! Title of the package index page */
+ virtual QCString trPackageList()
+ {
+ return "Package List";
+ }
+ /*! The description of the package index page */
+ virtual QCString trPackageListDescription()
+ {
+ return "Here are the packages with brief descriptions (if available):";
+ }
+ /*! The link name in the Quick links header for each page */
+ virtual QCString trPackages()
+ {
+ return "Packages";
+ }
+ /*! Used as a chapter title for Latex & RTF output */
+ virtual QCString trPackageDocumentation()
+ {
+ return "Package Documentation";
+ }
};
#endif
diff --git a/src/translator_cn.h b/src/translator_cn.h
index dfe5a78..e68234c 100644
--- a/src/translator_cn.h
+++ b/src/translator_cn.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 bad2bf2..6f41444 100644
--- a/src/translator_cz.h
+++ b/src/translator_cz.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 dd32ec8..5a5ee53 100644
--- a/src/translator_de.h
+++ b/src/translator_de.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 1af7658..29822e5 100644
--- a/src/translator_es.h
+++ b/src/translator_es.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 504008f..5f44a24 100644
--- a/src/translator_fi.h
+++ b/src/translator_fi.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 2bf7aa4..e7809b5 100644
--- a/src/translator_fr.h
+++ b/src/translator_fr.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 b857fb2..20ed696 100644
--- a/src/translator_hr.h
+++ b/src/translator_hr.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 7140242..b23047a 100644
--- a/src/translator_hu.h
+++ b/src/translator_hu.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 11ac002..c0429cf 100644
--- a/src/translator_it.h
+++ b/src/translator_it.h
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Initial Italian Translation by Ahmed Aldo Faisal
* Revised and completed by Alessandro Falappa (June 1999)
diff --git a/src/translator_jp.h b/src/translator_jp.h
index 4946379..80b1e97 100644
--- a/src/translator_jp.h
+++ b/src/translator_jp.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 6703fe0..c1c5fea 100644
--- a/src/translator_kr.h
+++ b/src/translator_kr.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 80a5030..3ac1887 100644
--- a/src/translator_nl.h
+++ b/src/translator_nl.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 f215c8c..063495c 100644
--- a/src/translator_no.h
+++ b/src/translator_no.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 ce9b532..71ff0b3 100644
--- a/src/translator_pl.h
+++ b/src/translator_pl.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 8b6e3af..2f80e6e 100644
--- a/src/translator_pt.h
+++ b/src/translator_pt.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 ec76d39..f5d6c3b 100644
--- a/src/translator_ro.h
+++ b/src/translator_ro.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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,7 +32,6 @@
#ifndef TRANSLATOR_RO_H
#define TRANSLATOR_RO_H
-#include "qtbc.h"
#include "classdef.h"
#include "util.h"
diff --git a/src/translator_se.h b/src/translator_se.h
index 92f2461..f8d6aed 100644
--- a/src/translator_se.h
+++ b/src/translator_se.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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 64ea923..a2ee2bb 100644
--- a/src/translator_si.h
+++ b/src/translator_si.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/util.cpp b/src/util.cpp
index 43e9b2c..56820e7 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -484,11 +484,19 @@ QCString removeRedundantWhiteSpace(const QCString &s)
{
result+=" >"; // insert extra space for layouting (nested) templates
}
+ else if (i>0 && isId(s.at(i)) && s.at(i-1)==')')
+ {
+ result+=' ';
+ result+=s.at(i);
+ }
else if (c!=' ' ||
- (i!=0 && i!=l-1 && isId(s.at(i-1)) && isId(s.at(i+1)))
- )
+ ( i!=0 && i!=l-1 &&
+ (isId(s.at(i-1)) || s.at(i-1)==')' || s.at(i-1)==',') &&
+ isId(s.at(i+1))
+ )
+ )
{
- if ((c=='*' || c=='&' || c=='@'))
+ if (c=='*' || c=='&' || c=='@')
{
uint rl=result.length();
if (rl>0 && (isId(result.at(rl-1)) || result.at(rl-1)=='>')) result+=' ';
@@ -797,6 +805,13 @@ void writeQuickLinks(OutputList &ol,bool compact,bool ext)
parseText(ol,theTranslator->trMainPage());
ol.endQuickIndexItem();
+ if (documentedPackages>0)
+ {
+ if (!compact) ol.writeListItem();
+ ol.startQuickIndexItem(extLink,"packages.html");
+ parseText(ol,theTranslator->trPackages());
+ ol.endQuickIndexItem();
+ }
if (documentedGroups>0)
{
if (!compact) ol.writeListItem();
@@ -1974,7 +1989,12 @@ bool getDefs(const QCString &scName,const QCString &memberName,
}
}
//printf(" >Succes=%d\n",mdist<maxInheritanceDepth);
- if (mdist<maxInheritanceDepth) return TRUE; /* found match */
+ if (mdist<maxInheritanceDepth)
+ {
+ gd=md->getGroupDef();
+ if (gd) cd=0;
+ return TRUE; /* found match */
+ }
}
/* goto the parent scope */
@@ -1996,7 +2016,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
// scopeName.data(),mScope.data(),mName.data());
if ((mn=functionNameDict[mName])) // name is known
{
- //printf(" >member name found\n");
+ //printf(" >function name found\n");
NamespaceDef *fnd=0;
int scopeOffset=scopeName.length();
do
diff --git a/src/util.h b/src/util.h
index 0b5e846..9f2df2a 100644
--- a/src/util.h
+++ b/src/util.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/version.h b/src/version.h
index 1e8a2f0..fef5707 100644
--- a/src/version.h
+++ b/src/version.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/xml.cpp b/src/xml.cpp
index 1171a2e..4fba201 100644
--- a/src/xml.cpp
+++ b/src/xml.cpp
@@ -3,7 +3,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/xml.h b/src/xml.h
index 313e935..b56efa4 100644
--- a/src/xml.h
+++ b/src/xml.h
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
+ * Copyright (C) 1997-2001 by Dimitri van 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/wintools/make.pl b/wintools/make.pl
index 737f1ee..ace6944 100755
--- a/wintools/make.pl
+++ b/wintools/make.pl
@@ -11,8 +11,12 @@ use Cwd;
# get current working directory
$pwd=cwd();
-# work-around slashes problems for badly ported perl interpreters
-$pwd=~s{/}{\\}g;
+
+# work-around slashes problems for nmake
+if ($target eq "msvc")
+{
+ $pwd=~s{/}{\\}g;
+}
# create config file
open(FILE,">makeconfig") || die "Cannot create file makeconfig!";