Commit 709a80a7 authored by dimitri's avatar dimitri

Release-1.7.6.1-20120220

parent 9b81ead2
DOXYGEN Version 1.7.6.1-20120122 DOXYGEN Version 1.7.6.1-20120220
Please read the installation section of the manual Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions. (http://www.doxygen.org/install.html) for instructions.
-------- --------
Dimitri van Heesch (22 January 2012) Dimitri van Heesch (20 February 2012)
...@@ -31,7 +31,7 @@ distclean: clean ...@@ -31,7 +31,7 @@ distclean: clean
-rm -f latex -rm -f latex
-rm -f objects/*.o -rm -f objects/*.o
-rm -f src/Makefile.doxygen src/Makefile.libdoxygen -rm -f src/Makefile.doxygen src/Makefile.libdoxygen
-rm -f src/Makefile.libdoxycfg -rm -f src/Makefile.libdoxycfg src/libdoxycfg.t src/libdoxygen.t
-rm -f libmd5/Makefile.libmd5 -rm -f libmd5/Makefile.libmd5
-rm -f Makefile qtools/Makefile src/Makefile examples/Makefile doc/Makefile -rm -f Makefile qtools/Makefile src/Makefile examples/Makefile doc/Makefile
-rm -f .makeconfig .tmakeconfig -rm -f .makeconfig .tmakeconfig
......
...@@ -13,7 +13,8 @@ clean: ...@@ -13,7 +13,8 @@ clean:
distclean: clean distclean: clean
-del src\Makefile.libdoxygen \ -del src\Makefile.libdoxygen \
src\Makefile.doxygen \ src\Makefile.doxygen \
src\Makefile.libdoxycfg src\Makefile.libdoxycfg \
src\libdoxycfg.t src\libdoxygen.t
-del Makefile src\Makefile examples\Makefile doc\Makefile -del Makefile src\Makefile examples\Makefile doc\Makefile
-del src\libdoxygen.pro src\doxygen.pro src\libdoxycfg.pro -del src\libdoxygen.pro src\doxygen.pro src\libdoxycfg.pro
-del src\version.cpp -del src\version.cpp
......
...@@ -25,7 +25,8 @@ clean: FORCE ...@@ -25,7 +25,8 @@ clean: FORCE
distclean: clean distclean: clean
-del src\Makefile.libdoxygen \ -del src\Makefile.libdoxygen \
src\Makefile.doxygen \ src\Makefile.doxygen \
src\Makefile.libdoxycfg src\Makefile.libdoxycfg \
src\libdoxycfg.t src\libdoxygen.t
-del Makefile src\Makefile examples\Makefile doc\Makefile -del Makefile src\Makefile examples\Makefile doc\Makefile
-del src\libdoxygen.pro src\doxygen.pro src\libdoxycfg.pro -del src\libdoxygen.pro src\doxygen.pro src\libdoxycfg.pro
-del src\version.cpp -del src\version.cpp
......
DOXYGEN Version 1.7.6.1_20120122 DOXYGEN Version 1.7.6.1_20120220
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -26,4 +26,4 @@ forum. ...@@ -26,4 +26,4 @@ forum.
Enjoy, Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (22 January 2012) Dimitri van Heesch (dimitri@stack.nl) (20 February 2012)
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
/****************************************************************************** /******************************************************************************
* *
* $Id:$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
/****************************************************************************** /******************************************************************************
* *
* $Id:$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
/****************************************************************************** /******************************************************************************
* *
* $Id:$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
/****************************************************************************** /******************************************************************************
* *
* $Id:$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
/****************************************************************************** /******************************************************************************
* *
* $Id:$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
/****************************************************************************** /******************************************************************************
* *
* $Id:$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
/****************************************************************************** /******************************************************************************
* *
* $Id:$ * $Id$
* *
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
/****************************************************************************** /******************************************************************************
* *
* Copyright (C) 1997-2006 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
# #
# #
# #
# Copyright (C) 1997-2011 by Dimitri van Heesch. # Copyright (C) 1997-2012 by Dimitri van Heesch.
# #
# Permission to use, copy, modify, and distribute this software and its # Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby # documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* $Id: config_templ.l,v 1.8 2001/01/01 10:15:16 root Exp $ * $Id: config_templ.l,v 1.8 2001/01/01 10:15:16 root Exp $
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -191,7 +191,7 @@ void MainWindow::about() ...@@ -191,7 +191,7 @@ void MainWindow::about()
t << QString::fromAscii("<qt><center>A tool to configure and run doxygen version ")+ t << QString::fromAscii("<qt><center>A tool to configure and run doxygen version ")+
QString::fromAscii(versionString)+ QString::fromAscii(versionString)+
QString::fromAscii(" on your source files.</center><p><br>" QString::fromAscii(" on your source files.</center><p><br>"
"<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-2011</center><p>" "<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-2012</center><p>"
"</qt>"); "</qt>");
QMessageBox::about(this,tr("Doxygen GUI"),msg); QMessageBox::about(this,tr("Doxygen GUI"),msg);
} }
......
addon/doxywizard/doxywizard.ico

82.1 KB | W: | H:

addon/doxywizard/doxywizard.ico

82.1 KB | W: | H:

addon/doxywizard/doxywizard.ico
addon/doxywizard/doxywizard.ico
addon/doxywizard/doxywizard.ico
addon/doxywizard/doxywizard.ico
  • 2-up
  • Swipe
  • Onion skin
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# #
# $Id$ # $Id$
# #
# Copyright (C) 1997-2011 by Dimitri van Heesch. # Copyright (C) 1997-2012 by Dimitri van Heesch.
# #
# Permission to use, copy, modify, and distribute this software and its # Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby # documentation under the terms of the GNU General Public License is hereby
...@@ -20,7 +20,7 @@ doxygen_version_minor=7 ...@@ -20,7 +20,7 @@ doxygen_version_minor=7
doxygen_version_revision=6.1 doxygen_version_revision=6.1
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package. #NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn=20120122 doxygen_version_mmn=20120220
bin_dirs=`echo $PATH | sed -e "s/:/ /g"` bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
...@@ -626,6 +626,9 @@ EOF ...@@ -626,6 +626,9 @@ EOF
echo " Created $DST from $SRC..." echo " Created $DST from $SRC..."
done done
cat src/libdoxycfg.t.in | sed -e "s|%%FLEX%%|$f_flex|g" -e "s|%%BISON%%|$f_bison|g" > src/libdoxycfg.t
cat src/libdoxygen.t.in | sed -e "s|%%FLEX%%|$f_flex|g" -e "s|%%BISON%%|$f_bison|g" > src/libdoxygen.t
f_inprofiles="qtools/qtools.pro.in src/libdoxygen.pro.in src/libdoxycfg.pro.in src/doxygen.pro.in addon/doxywizard/doxywizard.pro.in addon/doxmlparser/src/doxmlparser.pro.in addon/doxmlparser/test/xmlparse.pro.in addon/doxmlparser/examples/metrics/metrics.pro.in libmd5/libmd5.pro.in addon/doxyapp/doxyapp.pro.in" f_inprofiles="qtools/qtools.pro.in src/libdoxygen.pro.in src/libdoxycfg.pro.in src/doxygen.pro.in addon/doxywizard/doxywizard.pro.in addon/doxmlparser/src/doxmlparser.pro.in addon/doxmlparser/test/xmlparse.pro.in addon/doxmlparser/examples/metrics/metrics.pro.in libmd5/libmd5.pro.in addon/doxyapp/doxyapp.pro.in"
for i in $f_inprofiles ; do for i in $f_inprofiles ; do
......
# #
# #
# #
# Copyright (C) 1997-2011 by Dimitri van Heesch. # Copyright (C) 1997-2012 by Dimitri van Heesch.
# #
# Permission to use, copy, modify, and distribute this software and its # Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby # documentation under the terms of the GNU General Public License is hereby
......
# #
# #
# #
# Copyright (C) 1997-2011 by Dimitri van Heesch. # Copyright (C) 1997-2012 by Dimitri van Heesch.
# #
# Permission to use, copy, modify, and distribute this software and its # Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby # documentation under the terms of the GNU General Public License is hereby
......
# #
# #
# #
# Copyright (C) 1997-2011 by Dimitri van Heesch. # Copyright (C) 1997-2012 by Dimitri van Heesch.
# #
# Permission to use, copy, modify, and distribute this software and its # Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby # documentation under the terms of the GNU General Public License is hereby
......
# #
# #
# #
# Copyright (C) 1997-2011 by Dimitri van Heesch. # Copyright (C) 1997-2012 by Dimitri van Heesch.
# #
# Permission to use, copy, modify, and distribute this software and its # Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby # documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
*/ */
/*! \page autolink Automatic link generation /*! \page autolink Automatic link generation
\tableofcontents
Most documentation systems have special `see also' sections where links Most documentation systems have special `see also' sections where links
to other pieces of documentation can be inserted. to other pieces of documentation can be inserted.
Although doxygen also has a command to start such a section (See section Although doxygen also has a command to start such a section (See section
...@@ -114,7 +116,7 @@ ...@@ -114,7 +116,7 @@
for the corresponding HTML documentation that is generated by Doxygen. for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly \endhtmlonly
\section resolving typedefs. \section resolving typedefs
Typedefs that involve classes, structs and unions, like Typedefs that involve classes, structs and unions, like
\verbatim \verbatim
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -31,7 +31,7 @@ Each argument has a certain range: ...@@ -31,7 +31,7 @@ Each argument has a certain range:
<li>If {curly} braces are used the argument extends until the next paragraph. <li>If {curly} braces are used the argument extends until the next paragraph.
Paragraphs are delimited by a blank line or by a section indicator. Paragraphs are delimited by a blank line or by a section indicator.
</ul> </ul>
If in addition to the aboveargument specifiers [square] brackets are used the argument is optional. If in addition to the above argument specifiers [square] brackets are used the argument is optional.
Here is an alphabetically sorted list of all commands with references to their Here is an alphabetically sorted list of all commands with references to their
documentation: documentation:
...@@ -166,6 +166,7 @@ documentation: ...@@ -166,6 +166,7 @@ documentation:
\refitem cmdsubpage \\subpage \refitem cmdsubpage \\subpage
\refitem cmdsubsection \\subsection \refitem cmdsubsection \\subsection
\refitem cmdsubsubsection \\subsubsection \refitem cmdsubsubsection \\subsubsection
\refitem cmdtableofcontents \\tableofcontents
\refitem cmdtest \\test \refitem cmdtest \\test
\refitem cmdthrow \\throw \refitem cmdthrow \\throw
\refitem cmdthrows \\throws \refitem cmdthrows \\throws
...@@ -192,6 +193,7 @@ documentation: ...@@ -192,6 +193,7 @@ documentation:
\refitem cmdhash \\\# \refitem cmdhash \\\#
\refitem cmdperc \\\% \refitem cmdperc \\\%
\refitem cmdquot \\\" \refitem cmdquot \\\"
\refitem cmdchardot \\\.
\refitem cmddcolon \:: \refitem cmddcolon \::
\endsecreflist \endsecreflist
...@@ -387,7 +389,7 @@ Structural indicators ...@@ -387,7 +389,7 @@ Structural indicators
\ref cfg_example_path "EXAMPLE_PATH" tag, you can include part of the absolute path \ref cfg_example_path "EXAMPLE_PATH" tag, you can include part of the absolute path
to disambiguate it. to disambiguate it.
If more that one source file is needed for the example, If more than one source file is needed for the example,
the \\include command can be used. the \\include command can be used.
\par Example: \par Example:
...@@ -494,7 +496,7 @@ Structural indicators ...@@ -494,7 +496,7 @@ Structural indicators
the documentation is in front of the definition. The arguments of the documentation is in front of the definition. The arguments of
this command are the same as the second and third argument of this command are the same as the second and third argument of
\ref cmdclass "\\class". \ref cmdclass "\\class".
The \<header-file\> name refers to the file that should by included by the The \<header-file\> name refers to the file that should be included by the
application to obtain the definition of the class, struct, or union. application to obtain the definition of the class, struct, or union.
The \<header-name\> argument can be used to overwrite the The \<header-name\> argument can be used to overwrite the
name of the link that is used in the class documentation to something other name of the link that is used in the class documentation to something other
...@@ -535,7 +537,7 @@ Structural indicators ...@@ -535,7 +537,7 @@ Structural indicators
By default the value of a define and the initializer of a variable By default the value of a define and the initializer of a variable
are displayed unless they are longer than 30 lines. By putting are displayed unless they are longer than 30 lines. By putting
this command in a comment block of a define or variable, the this command in a comment block of a define or variable, the
initializer is always hidden. The maximum number of initalization linens initializer is always hidden. The maximum number of initialization lines
can be changed by means of the configuration parameter can be changed by means of the configuration parameter
\ref cfg_max_initializer_lines "MAX_INITIALIZER_LINES", the default value is \ref cfg_max_initializer_lines "MAX_INITIALIZER_LINES", the default value is
30. 30.
...@@ -922,7 +924,7 @@ Structural indicators ...@@ -922,7 +924,7 @@ Structural indicators
are only displayed if they are less than 30 lines long. By putting are only displayed if they are less than 30 lines long. By putting
this command in a comment block of a define or variable, the this command in a comment block of a define or variable, the
initializer is shown unconditionally. initializer is shown unconditionally.
The maximum number of initalization linens The maximum number of initialization lines
can be changed by means of the configuration parameter can be changed by means of the configuration parameter
\ref cfg_max_initializer_lines "MAX_INITIALIZER_LINES", the default value is \ref cfg_max_initializer_lines "MAX_INITIALIZER_LINES", the default value is
30. 30.
...@@ -945,7 +947,7 @@ Structural indicators ...@@ -945,7 +947,7 @@ Structural indicators
\addindex \\typedef \addindex \\typedef
Indicates that a comment block contains documentation for a Indicates that a comment block contains documentation for a
typedef (either global or as a member of a class). typedef (either global or as a member of a class).
This command is equivalent to \\var, \\propery, and \\fn. This command is equivalent to \\var, \\property, and \\fn.
\sa section \ref cmdfn "\\fn", \ref cmdproperty "\\property", and \sa section \ref cmdfn "\\fn", \ref cmdproperty "\\property", and
\ref cmdvar "\\var". \ref cmdvar "\\var".
...@@ -966,7 +968,7 @@ Structural indicators ...@@ -966,7 +968,7 @@ Structural indicators
\addindex \\var \addindex \\var
Indicates that a comment block contains documentation for a variable or Indicates that a comment block contains documentation for a variable or
enum value (either global or as a member of a class). enum value (either global or as a member of a class).
This command is equivalent to \\typedef, \\propery, and \\fn. This command is equivalent to \\typedef, \\property, and \\fn.
\sa section \ref cmdfn "\\fn", \ref cmdproperty "\\property", and \ref cmdtypedef "\\typedef". \sa section \ref cmdfn "\\fn", \ref cmdproperty "\\property", and \ref cmdtypedef "\\typedef".
...@@ -1159,7 +1161,7 @@ contains \c TEST, or \c DEV ...@@ -1159,7 +1161,7 @@ contains \c TEST, or \c DEV
expected life span, etc. expected life span, etc.
<hr> <hr>
\section cmddetails \\details { detailed decription } \section cmddetails \\details { detailed description }
\addindex \\details \addindex \\details
Just like \ref cmdbrief "\\brief" starts a brief description, \\details Just like \ref cmdbrief "\\brief" starts a brief description, \\details
...@@ -1385,6 +1387,18 @@ void memcpy(void *dest, const void *src, size_t n); ...@@ -1385,6 +1387,18 @@ void memcpy(void *dest, const void *src, size_t n);
sectioning command is encountered. See section \ref cmdfn "\\fn" for an sectioning command is encountered. See section \ref cmdfn "\\fn" for an
example. example.
Note that you can also document multiple parameters with a single
\\param command using a comma separated list. Here is an example:
\code
/** Sets the position.
* @param x,y,z Coordinates of the position in 3D space.
*/
void setPosition(double x,double y,double z,double t)
{
}
\endcode
Note that for PHP one can also specify the type (or types if you Note that for PHP one can also specify the type (or types if you
separate them with a pipe symbol) which are allowed for a parameter separate them with a pipe symbol) which are allowed for a parameter
(as this is not part of the definition). (as this is not part of the definition).
...@@ -1762,6 +1776,17 @@ Make sure you have first read \ref intro "the introduction". ...@@ -1762,6 +1776,17 @@ Make sure you have first read \ref intro "the introduction".
*/ */
\endverbatim \endverbatim
<hr>
\section cmdtableofcontents \\tableofcontents
\addindex \\tableofcontents
Creates a table of contents at the top of a page, listing all
sections and subsections in the page.
\warning This command only works inside related page documentation and
\e not in other documentation blocks and only has effect in the
HTML output!
<hr> <hr>
\section cmdsection \\section <section-name> (section title) \section cmdsection \\section <section-name> (section title)
...@@ -2806,6 +2831,15 @@ class Receiver ...@@ -2806,6 +2831,15 @@ class Receiver
character has to be escaped in some cases, because it is used in pairs character has to be escaped in some cases, because it is used in pairs
to indicate an unformatted text fragment. to indicate an unformatted text fragment.
<hr>
\section cmdchardot \\.
\addindex \\\.
This command writes a dot to the output. This can be useful to
prevent ending a brief description when JAVADOC_AUTOBRIEF is enabled
or to prevent starting a numbered list when the dot follows a number at
the start of a line.
<hr> <hr>
\section cmddcolon \\:: \section cmddcolon \\::
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
*/ */
/*! \page config Configuration /*! \page config Configuration
\tableofcontents
\section config_format Format \section config_format Format
A configuration file is a free-form ASCII text file with a structure A configuration file is a free-form ASCII text file with a structure
...@@ -45,7 +46,7 @@ file using a <code>\@INCLUDE</code> tag as follows: ...@@ -45,7 +46,7 @@ file using a <code>\@INCLUDE</code> tag as follows:
The include file is searched in the current working directory. You can The include file is searched in the current working directory. You can
also specify a list of directories that should be searched before looking also specify a list of directories that should be searched before looking
in the current working directory. Do this by putting a <code>\@INCLUDE_PATH</code> tag in the current working directory. Do this by putting a <code>\@INCLUDE_PATH</code> tag
with these paths before the <code>\@INCLUDE</code> tag, e.g: with these paths before the <code>\@INCLUDE</code> tag, e.g.:
\verbatim \verbatim
@INCLUDE_PATH = my_config_dir @INCLUDE_PATH = my_config_dir
\endverbatim \endverbatim
...@@ -274,6 +275,7 @@ followed by the descriptions of the tags grouped by category. ...@@ -274,6 +275,7 @@ followed by the descriptions of the tags grouped by category.
\refitem cfg_toc_expand TOC_EXPAND \refitem cfg_toc_expand TOC_EXPAND
\refitem cfg_treeview_width TREEVIEW_WIDTH \refitem cfg_treeview_width TREEVIEW_WIDTH
\refitem cfg_typedef_hides_struct TYPEDEF_HIDES_STRUCT \refitem cfg_typedef_hides_struct TYPEDEF_HIDES_STRUCT
\refitem cfg_uml_limit_num_fields UML_LIMIT_NUM_FIELDS
\refitem cfg_uml_look UML_LOOK \refitem cfg_uml_look UML_LOOK
\refitem cfg_use_htags USE_HTAGS \refitem cfg_use_htags USE_HTAGS
\refitem cfg_use_inline_trees USE_INLINE_TREES \refitem cfg_use_inline_trees USE_INLINE_TREES
...@@ -1181,7 +1183,7 @@ AClass::ANamespace, ANamespace::*Test ...@@ -1181,7 +1183,7 @@ AClass::ANamespace, ANamespace::*Test
filter if there is a match. The filters are a list of the form: filter if there is a match. The filters are a list of the form:
pattern=filter (like `*.cpp=my_cpp_filter`). See \c INPUT_FILTER for further pattern=filter (like `*.cpp=my_cpp_filter`). See \c INPUT_FILTER for further
info on how filters are used. If \c FILTER_PATTERNS is empty or if info on how filters are used. If \c FILTER_PATTERNS is empty or if
non of the patterns match the file name, \c INPUT_FILTER is applied. none of the patterns match the file name, \c INPUT_FILTER is applied.
\anchor cfg_filter_source_files \anchor cfg_filter_source_files
<dt>\c FILTER_SOURCE_FILES <dd> <dt>\c FILTER_SOURCE_FILES <dd>
...@@ -1808,8 +1810,9 @@ and Class Hierarchy pages using a tree view instead of an ordered list. ...@@ -1808,8 +1810,9 @@ and Class Hierarchy pages using a tree view instead of an ordered list.
(see http://www.mathjax.org) which uses client side Javascript for the (see http://www.mathjax.org) which uses client side Javascript for the
rendering instead of using prerendered bitmaps. Use this if you do not rendering instead of using prerendered bitmaps. Use this if you do not
have LaTeX installed or if you want to formulas look prettier in the HTML have LaTeX installed or if you want to formulas look prettier in the HTML
output. When enabled you also need to install MathJax separately and output. When enabled you may also need to install MathJax separately and
configure the path to it using the \ref cfg_mathjax_relpath "MATHJAX_RELPATH" option. configure the path to it using the \ref cfg_mathjax_relpath "MATHJAX_RELPATH"
option.
\anchor cfg_mathjax_relpath \anchor cfg_mathjax_relpath
<dt>\c MATHJAX_RELPATH <dd> <dt>\c MATHJAX_RELPATH <dd>
...@@ -1819,9 +1822,9 @@ and Class Hierarchy pages using a tree view instead of an ordered list. ...@@ -1819,9 +1822,9 @@ and Class Hierarchy pages using a tree view instead of an ordered list.
directory should contain the MathJax.js script. For instance, if the mathjax directory should contain the MathJax.js script. For instance, if the mathjax
directory is located at the same level as the HTML output directory, then directory is located at the same level as the HTML output directory, then
\c MATHJAX_RELPATH should be <code>../mathjax</code>. The default value points to \c MATHJAX_RELPATH should be <code>../mathjax</code>. The default value points to
the http://www.mathjax.org site, so you can quickly see the result without installing the MathJax Content Delivery Network so you can quickly see the result without
MathJax, but it is strongly recommended to install a local copy of MathJax installing MathJax. However, it is strongly recommended to install a local
before deployment. copy of MathJax from http://www.mathjax.org before deployment.
\anchor cfg_mathjax_extensions \anchor cfg_mathjax_extensions
<dt>\c MATHJAX_EXTENSIONS <dd> <dt>\c MATHJAX_EXTENSIONS <dd>
...@@ -2352,7 +2355,7 @@ The default size is 10pt. ...@@ -2352,7 +2355,7 @@ The default size is 10pt.
\addindex CLASS_GRAPH \addindex CLASS_GRAPH
If the \c CLASS_GRAPH and \c HAVE_DOT tags are set to \c YES then doxygen If the \c CLASS_GRAPH and \c HAVE_DOT tags are set to \c YES then doxygen
will generate a graph for each documented class showing the direct and will generate a graph for each documented class showing the direct and
indirect inheritance relations. Setting this tag to \c YES will force the indirect inheritance relations. Setting this tag to \c YES will force
the \c CLASS_DIAGRAMS tag to NO. the \c CLASS_DIAGRAMS tag to NO.
\anchor cfg_collaboration_graph \anchor cfg_collaboration_graph
...@@ -2376,6 +2379,18 @@ The default size is 10pt. ...@@ -2376,6 +2379,18 @@ The default size is 10pt.
collaboration diagrams in a style similar to the OMG's Unified Modeling collaboration diagrams in a style similar to the OMG's Unified Modeling
Language. Language.
\anchor cfg_uml_limit_num_fields
<dt>\c UML_LIMIT_NUM_FIELDS <dd>
\addindex UML_LIMIT_NUM_FIELDS
If the \c UML_LOOK tag is enabled, the fields and methods are shown inside
the class node. If there are many fields or methods and many nodes the
graph may become too big to be useful. The \c UML_LIMIT_NUM_FIELDS
threshold limits the number of items for each type to make the size more
managable. Set this to 0 for no limit. Note that the threshold may be
exceeded by 50% before the limit is enforced. So when you set the threshold
to 10, up to 15 fields may appear, but if the number exceeds 15, the
total amount of fields shown is limited to 10.
\anchor cfg_template_relations \anchor cfg_template_relations
<dt>\c TEMPLATE_RELATIONS <dd> <dt>\c TEMPLATE_RELATIONS <dd>
\addindex TEMPLATE_RELATIONS \addindex TEMPLATE_RELATIONS
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
*/ */
/*! \page custcmd Custom Commands /*! \page custcmd Custom Commands
\tableofcontents
Doxygen provides a large number of \ref commands "special commands", Doxygen provides a large number of \ref commands "special commands",
\ref xmlcmds "XML commands", and \ref htmlcmds "HTML commands". \ref xmlcmds "XML commands", and \ref htmlcmds "HTML commands".
that can be used to enhance or structure the documentation inside a comment block. that can be used to enhance or structure the documentation inside a comment block.
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
*/ */
/*! \page customize Customizing the output /*! \page customize Customizing the output
\tableofcontents
Doxygen provides various levels of customization. Doxygen provides various levels of customization.
The section \ref minor_tweaks "Minor Tweaks" discusses what to The section \ref minor_tweaks "Minor Tweaks" discusses what to
do if you want to do minor tweaking to the look and feel of the output. do if you want to do minor tweaking to the look and feel of the output.
...@@ -84,7 +86,7 @@ that are disabled by default: ...@@ -84,7 +86,7 @@ that are disabled by default:
with \ref cfg_interactive_svg "INTERACTIVE_SVG" while setting with \ref cfg_interactive_svg "INTERACTIVE_SVG" while setting
\ref cfg_dot_image_format "DOT_IMAGE_FORMAT" to \c svg, will make doxygen \ref cfg_dot_image_format "DOT_IMAGE_FORMAT" to \c svg, will make doxygen
produce SVG images that will allow the user to zoom and pan (this only produce SVG images that will allow the user to zoom and pan (this only
happens when th size of the images exceeds a certain size). happens when the size of the images exceeds a certain size).
\subsection minor_tweaks_header_css Header, Footer, and Stylesheet changes \subsection minor_tweaks_header_css Header, Footer, and Stylesheet changes
...@@ -92,7 +94,7 @@ To tweak things like fonts or colors, margins, or other look \& feel ...@@ -92,7 +94,7 @@ To tweak things like fonts or colors, margins, or other look \& feel
aspects of the HTML output in detail, you can create a different aspects of the HTML output in detail, you can create a different
<a href="http://www.w3schools.com/css/default.asp">cascading style sheet</a>. <a href="http://www.w3schools.com/css/default.asp">cascading style sheet</a>.
You can also let doxygen use a custom header and footer for each HTML You can also let doxygen use a custom header and footer for each HTML
page it generates, for instance to make the output comform to the style page it generates, for instance to make the output conform to the style
used on the rest of your web site. used on the rest of your web site.
To do this first run doxygen as follows: To do this first run doxygen as follows:
...@@ -121,13 +123,17 @@ for more information about the possible meta commands you can use inside ...@@ -121,13 +123,17 @@ for more information about the possible meta commands you can use inside
your custom header. your custom header.
\note You should not put the style sheet in the HTML output directory. Treat \note You should not put the style sheet in the HTML output directory. Treat
it is a source file. Doxygen will copy it for you. it as a source file. Doxygen will copy it for you.
\note If you use images or other external content in a custom header you \note If you use images or other external content in a custom header you
need to make sure these end up in the HTML output directory yourself, need to make sure these end up in the HTML output directory yourself,
for instance by writing a script that runs doxygen can then copies the for instance by writing a script that runs doxygen can then copies the
images to the output. images to the output.
\warning The structure of headers and footers may change after upgrading to
a newer version of doxygen, so if you are using a custom header or footer,
it might not produce valid output anymore after upgrading.
\section layout Changing the layout of pages \section layout Changing the layout of pages
In some cases you may want to change the way the output is structured. In some cases you may want to change the way the output is structured.
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
* *
*/ */
/*! \page docblocks Documenting the code /*! \page docblocks Documenting the code
\tableofcontents
This chapter covers two topics: This chapter covers two topics:
1. How to put comments in your code such that doxygen incorporates them in 1. How to put comments in your code such that doxygen incorporates them in
...@@ -504,7 +505,7 @@ lower then sign). The brief documentation also ends at a line not starting ...@@ -504,7 +505,7 @@ lower then sign). The brief documentation also ends at a line not starting
with a \c # (hash sign). with a \c # (hash sign).
Inside doxygen comment blocks all normal doxygen markings are supported. Inside doxygen comment blocks all normal doxygen markings are supported.
The only expections are described in the following two paragraphs. The only exceptions are described in the following two paragraphs.
If a doxygen comment block ends with a line containing only If a doxygen comment block ends with a line containing only
\c #\\code or \c #\@code all code until a line only containing \c #\\endcode \c #\\code or \c #\@code all code until a line only containing \c #\\endcode
...@@ -560,7 +561,7 @@ Go to the <a href="lists.html">next</a> section or return to the ...@@ -560,7 +561,7 @@ Go to the <a href="lists.html">next</a> section or return to the
\section docstructure Anatomy of a comment block \section docstructure Anatomy of a comment block
The previous section focussed on how to make the comments in your code known The previous section focused on how to make the comments in your code known
to doxygen, it explained the difference between a brief and a detailed description, and to doxygen, it explained the difference between a brief and a detailed description, and
the use of structural commands. the use of structural commands.
......
...@@ -41,6 +41,6 @@ doxygen \fB\-e\fR rtf extensionsFile ...@@ -41,6 +41,6 @@ doxygen \fB\-e\fR rtf extensionsFile
If \fB\-s\fR is specified the comments in the config file will be omitted. If \fB\-s\fR is specified the comments in the config file will be omitted.
If configName is omitted `Doxyfile' will be used as a default. If configName is omitted `Doxyfile' will be used as a default.
.SH AUTHOR .SH AUTHOR
Doxygen version VERSION, Copyright Dimitri van Heesch 1997-2011 Doxygen version VERSION, Copyright Dimitri van Heesch 1997-2012
.SH SEE ALSO .SH SEE ALSO
doxywizard(1). doxywizard(1).
...@@ -822,7 +822,7 @@ dl ...@@ -822,7 +822,7 @@ dl
padding: 0 0 0 10px; padding: 0 0 0 10px;
} }
dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug dl.section
{ {
border-left:4px solid; border-left:4px solid;
padding: 0 0 0 6px; padding: 0 0 0 6px;
...@@ -863,6 +863,10 @@ dl.bug ...@@ -863,6 +863,10 @@ dl.bug
border-color: #C08050; border-color: #C08050;
} }
dl.section dd {
margin-bottom: 1em;
}
#projectlogo #projectlogo
{ {
text-align: center; text-align: center;
...@@ -946,6 +950,54 @@ dl.citelist dd { ...@@ -946,6 +950,54 @@ dl.citelist dd {
padding:5px 0; padding:5px 0;
} }
div.toc {
padding: 14px 25px;
background-color: #F6F6F6;
border: 1px solid #DDDDDD;
border-radius: 7px 7px 7px 7px;
float: right;
height: auto;
margin: 0 20px 10px 10px;
width: 200px;
}
div.toc li {
background: url("bdwn.png") no-repeat scroll 0 5px transparent;
font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
margin-top: 5px;
padding-left: 10px;
padding-top: 2px;
}
div.toc h3 {
font: bold 12px/1.2 Arial,FreeSans,sans-serif;
border-bottom: 0 none;
color: #606060;
margin: 0;
}
div.toc ul {
list-style: none outside none;
border: medium none;
padding: 0px;
}
div.toc li.level1 {
margin-left: 0px;
}
div.toc li.level2 {
margin-left: 15px;
}
div.toc li.level3 {
margin-left: 30px;
}
div.toc li.level4 {
margin-left: 45px;
}
@media print @media print
{ {
#top { display: none; } #top { display: none; }
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
% Documents produced by Doxygen are derivative works derived from the % Documents produced by Doxygen are derivative works derived from the
% input used in their production; they are not affected by this license. % input used in their production; they are not affected by this license.
\documentclass[a4paper]{book} \documentclass{book}
\usepackage[a4paper,left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}
\usepackage{makeidx} \usepackage{makeidx}
\usepackage{natbib} \usepackage{natbib}
\usepackage{graphicx} \usepackage{graphicx}
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -28,7 +28,7 @@ The first step is to choose one of the ways to configure doxygen. ...@@ -28,7 +28,7 @@ The first step is to choose one of the ways to configure doxygen.
<dl> <dl>
<dt>Wizard<dd>Click this button to quickly configure the most important <dt>Wizard<dd>Click this button to quickly configure the most important
settings and leave the rest of the options to their defaults. settings and leave the rest of the options to their defaults.
<dt>Expert<dd>Click this button to to gain access to the <dt>Expert<dd>Click this button to gain access to the
\ref config "full range of configuration options". \ref config "full range of configuration options".
<dt>Load<dd>Click this button to load an existing configuration file <dt>Load<dd>Click this button to load an existing configuration file
from disk. from disk.
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
the Qt specific signal and slots sections. Extraction of private class the Qt specific signal and slots sections. Extraction of private class
members is optional. members is optional.
<li>Automatically generates references to documented classes, files, namespaces <li>Automatically generates references to documented classes, files, namespaces
and members. Documentation of global functions, globals variables, and members. Documentation of global functions, global variables,
typedefs, defines and enumerations is also supported. typedefs, defines and enumerations is also supported.
<li>References to base/super classes and inherited/overridden members are <li>References to base/super classes and inherited/overridden members are
generated automatically. generated automatically.
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -123,7 +123,7 @@ The special HTML character entities that are recognized by Doxygen: ...@@ -123,7 +123,7 @@ The special HTML character entities that are recognized by Doxygen:
<li><tt>\&rsquo;</tt> right single quotation mark <li><tt>\&rsquo;</tt> right single quotation mark
<li><tt>\&ldquo;</tt> left double quotation mark <li><tt>\&ldquo;</tt> left double quotation mark
<li><tt>\&rdquo;</tt> right double quotation mark <li><tt>\&rdquo;</tt> right double quotation mark
<li><tt>\&ndash;</tt> n-dash (for numeric ranges, eg. 2&ndash;8) <li><tt>\&ndash;</tt> n-dash (for numeric ranges, e.g. 2&ndash;8)
<li><tt>\&mdash;</tt> m-dash (for parenthetical punctuation &mdash; like this) <li><tt>\&mdash;</tt> m-dash (for parenthetical punctuation &mdash; like this)
<li><tt>\&?uml;</tt> where ? is one of {A,E,I,O,U,Y,a,e,i,o,u,y}, <li><tt>\&?uml;</tt> where ? is one of {A,E,I,O,U,Y,a,e,i,o,u,y},
writes a character with a diaeresis accent (like &auml;). writes a character with a diaeresis accent (like &auml;).
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -113,7 +113,7 @@ The third part provides information for developers: ...@@ -113,7 +113,7 @@ The third part provides information for developers:
\addindex license \addindex license
\addindex GPL \addindex GPL
Copyright &copy; 1997-2011 by Copyright &copy; 1997-2012 by
<a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>.<p> <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>.<p>
Permission to use, copy, modify, and distribute this software and its Permission to use, copy, modify, and distribute this software and its
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -17,21 +17,13 @@ ...@@ -17,21 +17,13 @@
/*! \page install Installation /*! \page install Installation
\addindex installation \addindex installation
\tableofcontents
First go to the First go to the
<a href="http://www.doxygen.org/download.html">download</a> page <a href="http://www.doxygen.org/download.html">download</a> page
to get the latest distribution, if you did not have it already. to get the latest distribution, if you did not downloaded doxygen already.
This section is divided into the following sections:
<ul>
<li>\ref install_src_unix "Compiling from source on UNIX"
<li>\ref install_bin_unix "Installing the binaries on UNIX"
<li>\ref unix_problems "Known compilation problems for UNIX"
<li>\ref install_src_windows "Compiling from source on Windows"
<li>\ref install_bin_windows "Installing the binaries on Windows"
<li>\ref build_tools "Tools used to develop doxygen"
</ul>
\section install_src_unix Compiling from source on UNIX \section install_src_unix Compiling from source on UNIX
If you downloaded the source distribution, you need at least the If you downloaded the source distribution, you need at least the
following to build the executable: following to build the executable:
...@@ -357,7 +349,7 @@ Now you need to add/adjust the following environment variables ...@@ -357,7 +349,7 @@ Now you need to add/adjust the following environment variables
- add <code>c:\\tools\\unxutils\\usr\\local\\wbin;</code> to the start of <code>PATH</code> - add <code>c:\\tools\\unxutils\\usr\\local\\wbin;</code> to the start of <code>PATH</code>
- set <code>BISON_SIMPLE</code> to <code>c:\\tools\\unxutils\\usr\\local\\share\\bison.simple</code> - set <code>BISON_SIMPLE</code> to <code>c:\\tools\\unxutils\\usr\\local\\share\\bison.simple</code>
Download doxygen's source tarball and put it somewhere (e.g use <code>c:\\tools</code>) Download doxygen's source tarball and put it somewhere (e.g. use <code>c:\\tools</code>)
Now start a new command shell and type Now start a new command shell and type
\verbatim \verbatim
...@@ -371,7 +363,7 @@ Now your environment is setup to build \c doxygen. ...@@ -371,7 +363,7 @@ Now your environment is setup to build \c doxygen.
Inside the \c doxygen-x.y.z directory you will find a \c winbuild directory Inside the \c doxygen-x.y.z directory you will find a \c winbuild directory
containing a \c Doxygen.sln file. Open this file in Visual Studio. containing a \c Doxygen.sln file. Open this file in Visual Studio.
You can now build the Release or Debug flavor of Doxygen and Doxytag by right-clicking You can now build the Release or Debug flavor of Doxygen by right-clicking
the project in the solutions explorer, and selecting Build. the project in the solutions explorer, and selecting Build.
Note that compiling Doxywizard currently requires Qt version 4 Note that compiling Doxywizard currently requires Qt version 4
......
...@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other ...@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other
than English (the default). The output language is chosen through the than English (the default). The output language is chosen through the
configuration file (with default name and known as Doxyfile). configuration file (with default name and known as Doxyfile).
Currently (version 1.7.5), 39 languages Currently (version 1.7.6.1), 39 languages
are supported (sorted alphabetically): are supported (sorted alphabetically):
Afrikaans, Arabic, Armenian, Brazilian Portuguese, Catalan, Chinese, Afrikaans, Arabic, Armenian, Brazilian Portuguese, Catalan, Chinese,
Chinese Traditional, Croatian, Czech, Danish, Dutch, English, Chinese Traditional, Croatian, Czech, Danish, Dutch, English,
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -16,34 +16,7 @@ ...@@ -16,34 +16,7 @@
*/ */
/*! \page markdown Markdown support /*! \page markdown Markdown support
Table of contents [TOC]
- \ref markdown_std
- \ref md_para
- \ref md_headers
- \ref md_blockquotes
- \ref md_lists
- \ref md_codeblock
- \ref md_rulers
- \ref md_emphasis
- \ref md_codespan
- \ref md_links
- \ref md_inlinelinks
- \ref md_reflinks
- \ref md_images
- \ref md_autolink
- \ref markdown_extra
- \ref md_tables
- \ref md_fenced
- \ref md_header_id
- \ref markdown_dox
- \ref md_page_header
- \ref md_html_blocks
- \ref mddox_code_blocks
- \ref mddox_code_spans
- \ref mddox_lists
- \ref mddox_stars
- \ref mddox_limits
- \ref markdown_debug
[Markdown] support [Markdown] support
was introduced in doxygen version 1.8.0. It is a plain text formatting was introduced in doxygen version 1.8.0. It is a plain text formatting
...@@ -57,7 +30,7 @@ syntax written by John Gruber, with the following underlying design goal: ...@@ -57,7 +30,7 @@ syntax written by John Gruber, with the following underlying design goal:
> text-to-HTML filters, the single biggest source of inspiration > text-to-HTML filters, the single biggest source of inspiration
> for Markdown’s syntax is the format of plain text email. > for Markdown’s syntax is the format of plain text email.
In the \ref markdown_std "next section" the standard markdown features In the \ref markdown_std "next section" the standard Markdown features
are briefly discussed. The reader is referred to the [Markdown site][markdown] are briefly discussed. The reader is referred to the [Markdown site][markdown]
for more details. for more details.
...@@ -128,7 +101,7 @@ to avoid false positives, i.e. when writing ...@@ -128,7 +101,7 @@ to avoid false positives, i.e. when writing
0 if OK\n 0 if OK\n
>1 if NOK >1 if NOK
the second line will not seen as a block quote. the second line will not be seen as a block quote.
\subsection md_lists Lists \subsection md_lists Lists
...@@ -315,13 +288,21 @@ Note that doxygen will also produce the links without the angle brackets. ...@@ -315,13 +288,21 @@ Note that doxygen will also produce the links without the angle brackets.
\section markdown_extra Markdown Extensions \section markdown_extra Markdown Extensions
\subsection md_toc Table of Contents
Doxygen supports a special link marker `[TOC]` which can be placed in a page
to produce a table of contents at the start of the page, listing all sections.
Note that using `[TOC]` is the same as using a
\ref cmdtableofcontents "\\tableofcontents" command.
\subsection md_tables Tables \subsection md_tables Tables
Of the features defined by "Markdown Extra" is support for Of the features defined by "Markdown Extra" is support for
<a href="http://michelf.com/projects/php-markdown/extra/#table">simple tables</a>: <a href="http://michelf.com/projects/php-markdown/extra/#table">simple tables</a>:
A table consists of a header line, a separator line, and at least one A table consists of a header line, a separator line, and at least one
row line. Table columns are separated by the pipe (!) character. row line. Table columns are separated by the pipe (|) character.
Here is an example: Here is an example:
...@@ -360,7 +341,7 @@ fenced code blocks</a>: ...@@ -360,7 +341,7 @@ fenced code blocks</a>:
A fenced code block does not require indentation, and is A fenced code block does not require indentation, and is
defined by a pair of "fence lines". Such a line consists of 3 or defined by a pair of "fence lines". Such a line consists of 3 or
more tile (~) characters on a line. The end of the block should have the more tilde (~) characters on a line. The end of the block should have the
same number of tildes. Here is an example: same number of tildes. Here is an example:
...@@ -370,12 +351,13 @@ same number of tildes. Here is an example: ...@@ -370,12 +351,13 @@ same number of tildes. Here is an example:
a one-line code block a one-line code block
~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
The contents of the code block is syntax highlighted. By default the output is the same as for a normal code block.
The default language is based on the file it was found in
(i.e. a fenced block in a Python file is assumed to be Python code). For languages supported by doxygen you can also make the code block
In case the language is not clear from the context or you want to appear with syntax highlighting. To do so you need to
indicate a specific language you can add the language's extension after indicate the typical file extension that corresponds to the
the opening fence: programming language after the opening fence. For highlighting according
to the Python language for instance, you would need to write the following:
~~~~~~~~~~~~~{.py} ~~~~~~~~~~~~~{.py}
# A class # A class
...@@ -383,26 +365,26 @@ the opening fence: ...@@ -383,26 +365,26 @@ the opening fence:
pass pass
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
will produce: which will produce:
~~~~~~~~~~~~~{.py} ~~~~~~~~~~~~~{.py}
# A class # A class
class Dummy: class Dummy:
pass pass
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
and and for C you would write:
~~~~~~~~~~~~~~~{.c} ~~~~~~~~~~~~~~~{.c}
int func(int a,int b) { return a*b; } int func(int a,int b) { return a*b; }
~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
will produce: which will produce:
~~~~~~~~~~~~~~~{.c} ~~~~~~~~~~~~~~~{.c}
int func(int a,int b) { return a*b; } int func(int a,int b) { return a*b; }
~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
The curly brances and dot are optional by the way. The curly braces and dot are optional by the way.
\subsection md_header_id Header Id Attributes \subsection md_header_id Header Id Attributes
...@@ -429,7 +411,7 @@ Note this only works for the headers of level 1 to 4. ...@@ -429,7 +411,7 @@ Note this only works for the headers of level 1 to 4.
\section markdown_dox Doxygen specifics \section markdown_dox Doxygen specifics
Even doxygen tries to following the Markdown standard as closely as Even though doxygen tries to following the Markdown standard as closely as
possible, there are couple of deviation and doxygen specifics additions. possible, there are couple of deviation and doxygen specifics additions.
\subsection md_page_header Including Markdown files as pages \subsection md_page_header Including Markdown files as pages
...@@ -479,7 +461,7 @@ and in other sections that need to be processed without changes ...@@ -479,7 +461,7 @@ and in other sections that need to be processed without changes
\subsection mddox_code_blocks Code Block Indentation \subsection mddox_code_blocks Code Block Indentation
With markdown any block that is indented by 4 spaces (and 8 spaces With Markdown any block that is indented by 4 spaces (and 8 spaces
inside lists) is treated as a code block. This indentation amount inside lists) is treated as a code block. This indentation amount
is absolute, i.e. counting from the start of the line. is absolute, i.e. counting from the start of the line.
...@@ -580,13 +562,13 @@ To avoid that a stray * or _ matches something many paragraphs later, ...@@ -580,13 +562,13 @@ To avoid that a stray * or _ matches something many paragraphs later,
and shows everything in between with emphasis, doxygen limits the scope and shows everything in between with emphasis, doxygen limits the scope
of a * and _ to a single paragraph. of a * and _ to a single paragraph.
For code span, between the starting and ending backtick only two For a code span, between the starting and ending backtick only two
new lines are allowed. new lines are allowed.
Also for links there are limits; the link text, and link title each can Also for links there are limits; the link text, and link title each can
contain only one new line, the URL may not contain any newlines. contain only one new line, the URL may not contain any newlines.
\section markdown_debug Debugging problems \section markdown_debug Debugging of problems
When doxygen parses the source code it first extracts the comments blocks, When doxygen parses the source code it first extracts the comments blocks,
then passes these through the Markdown preprocessor. The output of the then passes these through the Markdown preprocessor. The output of the
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -47,7 +47,7 @@ Then by default doxygen will feed the following to its parser: ...@@ -47,7 +47,7 @@ Then by default doxygen will feed the following to its parser:
You can disable all preprocessing by setting You can disable all preprocessing by setting
\ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" to \c \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" to \c
NO in the configuration file. In the case above doxygen will then read NO in the configuration file. In the case above doxygen will then read
both statements, i.e: both statements, i.e.:
\verbatim \verbatim
static CONST_STRING version = "2.xx"; static CONST_STRING version = "2.xx";
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -139,7 +139,7 @@ has its own advantages and disadvantages: ...@@ -139,7 +139,7 @@ has its own advantages and disadvantages:
To enable the help plugin set To enable the help plugin set
\ref cfg_generate_eclipsehelp "GENERATE_ECLIPSEHELP" to \c YES, \ref cfg_generate_eclipsehelp "GENERATE_ECLIPSEHELP" to \c YES,
and define a unique identifier for your project via and define a unique identifier for your project via
\ref cfg_eclipse_doc_id "ECLIPSE_DOC_ID", i.e: \ref cfg_eclipse_doc_id "ECLIPSE_DOC_ID", i.e.:
\verbatim \verbatim
GENERATE_ECLIPSEHELP = YES GENERATE_ECLIPSEHELP = YES
ECLIPSE_DOC_ID = com.yourcompany.yourproject ECLIPSE_DOC_ID = com.yourcompany.yourproject
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
* *
*/ */
/*! \page starting Getting started /*! \page starting Getting started
\tableofcontents
The executable \c doxygen is the main program that parses the sources and The executable \c doxygen is the main program that parses the sources and
generates the documentation. See section \ref doxygen_usage for more generates the documentation. See section \ref doxygen_usage for more
...@@ -196,7 +197,8 @@ The generated \f$\mbox{\LaTeX}\f$ documentation must first be compiled by ...@@ -196,7 +197,8 @@ The generated \f$\mbox{\LaTeX}\f$ documentation must first be compiled by
a \f$\mbox{\LaTeX}\f$ compiler (I use a recent teTeX distribution for Linux a \f$\mbox{\LaTeX}\f$ compiler (I use a recent teTeX distribution for Linux
and MacOSX and MikTex for Windows). and MacOSX and MikTex for Windows).
To simplify the process of compiling the generated To simplify the process of compiling the generated
documentation, \c doxygen writes a \c Makefile into the \c latex directory. documentation, \c doxygen writes a \c Makefile into the \c latex directory
(on the Windows platform also a \c make.bat batch file is generated).
The contents and targets in the \c Makefile depend on the setting of The contents and targets in the \c Makefile depend on the setting of
\ref cfg_use_pdflatex "USE_PDFLATEX". If it is disabled (set to \c NO), then \ref cfg_use_pdflatex "USE_PDFLATEX". If it is disabled (set to \c NO), then
......
(1.7.5) (1.7.6.1)
Doxygen supports the following 39 languages (sorted alphabetically): Doxygen supports the following 39 languages (sorted alphabetically):
...@@ -112,6 +112,7 @@ for occurence of the method identifiers: ...@@ -112,6 +112,7 @@ for occurence of the method identifiers:
QCString trAlphabeticalList() QCString trAlphabeticalList()
QCString trDCOPMethods() QCString trDCOPMethods()
QCString trDirDependency(const char *) QCString trDirDependency(const char *)
QCString trFuncProtos()
QCString trFunctionPrototypeDocumentation() QCString trFunctionPrototypeDocumentation()
QCString trGraphicalHierarchy() QCString trGraphicalHierarchy()
QCString trSearchForIndex() QCString trSearchForIndex()
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
or unions with the same name in your code. It should not crash however, or unions with the same name in your code. It should not crash however,
rather it should ignore all of the classes with the same name except one. rather it should ignore all of the classes with the same name except one.
<li>Some commands do not work inside the arguments of other commands. <li>Some commands do not work inside the arguments of other commands.
Inside a HTML link (i.e \<a href="..."\>...\<a\>) for instance Inside a HTML link (i.e. \<a href="..."\>...\<a\>) for instance
other commands (including other HTML commands) do not work! other commands (including other HTML commands) do not work!
The sectioning commands are an important exception. The sectioning commands are an important exception.
<li>Redundant braces can confuse doxygen in some cases. <li>Redundant braces can confuse doxygen in some cases.
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
/*! \page page1 A documentation page /*! \page page1 A documentation page
\tableofcontents
Leading text. Leading text.
\section sec An example section \section sec An example section
This page contains the subsections \ref subsection1 and \ref subsection2. This page contains the subsections \ref subsection1 and \ref subsection2.
......
...@@ -173,7 +173,7 @@ EXT_LINKS_IN_WINDOW = NO ...@@ -173,7 +173,7 @@ EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10 FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES FORMULA_TRANSPARENT = YES
USE_MATHJAX = NO USE_MATHJAX = NO
MATHJAX_RELPATH = http://www.mathjax.org/mathjax MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
SEARCHENGINE = YES SEARCHENGINE = YES
SERVER_BASED_SEARCH = NO SERVER_BASED_SEARCH = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# #
# #
# #
# Copyright (C) 1997-2011 by Dimitri van Heesch. # Copyright (C) 1997-2012 by Dimitri van Heesch.
# #
# Permission to use, copy, modify, and distribute this software and its # Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby # documentation under the terms of the GNU General Public License is hereby
......
#include "arguments.h"
/*! the argument list is documented if one of its
* arguments is documented
*/
bool ArgumentList::hasDocumentation() const
{
bool hasDocs=FALSE;
ArgumentListIterator ali(*this);
Argument *a;
for (ali.toFirst();!hasDocs && (a=ali.current());++ali)
{
hasDocs = a->hasDocumentation();
}
return hasDocs;
}
/******************************************************************************
*
* Copyright (C) 1997-2012 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
#ifndef ARGUMENTS_H
#define ARGUMENTS_H
#include "qtbc.h"
#include <qlist.h>
/*! \brief This class contains the information about the argument of a
* function or template
*
*/
struct Argument
{
/*! Construct a new argument. */
Argument() {}
/*! Copy an argument (does a deep copy of all strings). */
Argument(const Argument &a)
{
attrib=a.attrib.copy();
type=a.type.copy();
name=a.name.copy();
defval=a.defval.copy();
docs=a.docs.copy();
array=a.array.copy();
}
/*! Assignment of an argument (does a deep copy of all strings). */
Argument &operator=(const Argument &a)
{
if (this!=&a)
{
attrib=a.attrib.copy();
type=a.type.copy();
name=a.name.copy();
defval=a.defval.copy();
docs=a.docs.copy();
array=a.array.copy();
}
return *this;
}
/*! return TRUE if this argument is documentation and the argument has a
* non empty name.
*/
bool hasDocumentation() const
{
return !name.isEmpty() && !docs.isEmpty();
}
QCString attrib; /*!< Argument's attribute (IDL only) */
QCString type; /*!< Argument's type */
QCString canType; /*!< Cached value of canonical type (after type resolution). Empty initially. */
QCString name; /*!< Argument's name (may be empty) */
QCString array; /*!< Argument's array specifier (may be empty) */
QCString defval; /*!< Argument's default value (may be empty) */
QCString docs; /*!< Argument's documentation (may be empty) */
};
/*! \brief This class represents an function or template argument list.
*
* This class also stores some information about member that is typically
* put after the argument list, such as wether the member is const,
* volatile or pure virtual.
*/
class ArgumentList : public QList<Argument>
{
public:
/*! Creates an empty argument list */
ArgumentList() : QList<Argument>(),
constSpecifier(FALSE),
volatileSpecifier(FALSE),
pureSpecifier(FALSE)
{ setAutoDelete(TRUE); }
/*! Destroys the argument list */
~ArgumentList() {}
bool hasDocumentation() const;
/*! Does the member modify the state of the class? default: FALSE. */
bool constSpecifier;
/*! Is the member volatile? default: FALSE. */
bool volatileSpecifier;
/*! Is this a pure virtual member? default: FALSE */
bool pureSpecifier;
};
typedef QListIterator<Argument> ArgumentListIterator;
#endif
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -52,11 +52,16 @@ static QCString getListOfBibFiles(const QCString &sep,bool stripExtension) ...@@ -52,11 +52,16 @@ static QCString getListOfBibFiles(const QCString &sep,bool stripExtension)
const char *bibdata = citeDataList.first(); const char *bibdata = citeDataList.first();
while (bibdata) while (bibdata)
{ {
int i;
QCString bibFile = bibdata; QCString bibFile = bibdata;
if (stripExtension && bibFile.right(4)==".bib") if (stripExtension && bibFile.right(4)==".bib")
{ {
bibFile = bibFile.left(bibFile.length()-4); bibFile = bibFile.left(bibFile.length()-4);
} }
if (stripExtension && (i=bibFile.findRev('/'))!=-1)
{
bibFile = bibFile.mid(i+1);
}
if (!bibFile.isEmpty()) if (!bibFile.isEmpty())
{ {
result+=bibFile; result+=bibFile;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
#include "searchindex.h" #include "searchindex.h"
#include "vhdldocgen.h" #include "vhdldocgen.h"
#include "layout.h" #include "layout.h"
#include "arguments.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
...@@ -404,14 +405,12 @@ void ClassDef::internalInsertMember(MemberDef *md, ...@@ -404,14 +405,12 @@ void ClassDef::internalInsertMember(MemberDef *md,
if (1 /*!isReference()*/) // changed to 1 for showing members of external if (1 /*!isReference()*/) // changed to 1 for showing members of external
// classes when HAVE_DOT and UML_LOOK are enabled. // classes when HAVE_DOT and UML_LOOK are enabled.
{ {
static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
bool isSimple=FALSE; bool isSimple=FALSE;
/********************************************/ /********************************************/
/* insert member in the declaration section */ /* insert member in the declaration section */
/********************************************/ /********************************************/
if (md->isRelated() && (extractPrivate || prot!=Private)) if (md->isRelated() && protectionLevelVisible(prot))
{ {
addMemberToList(MemberList::related,md,TRUE); addMemberToList(MemberList::related,md,TRUE);
} }
...@@ -560,7 +559,7 @@ void ClassDef::internalInsertMember(MemberDef *md, ...@@ -560,7 +559,7 @@ void ClassDef::internalInsertMember(MemberDef *md,
/*******************************************************/ /*******************************************************/
/* insert member in the detailed documentation section */ /* insert member in the detailed documentation section */
/*******************************************************/ /*******************************************************/
if ((md->isRelated() && (extractPrivate || prot!=Private)) || md->isFriend()) if ((md->isRelated() && protectionLevelVisible(prot)) || md->isFriend())
{ {
addMemberToList(MemberList::relatedMembers,md,FALSE); addMemberToList(MemberList::relatedMembers,md,FALSE);
} }
...@@ -579,23 +578,13 @@ void ClassDef::internalInsertMember(MemberDef *md, ...@@ -579,23 +578,13 @@ void ClassDef::internalInsertMember(MemberDef *md,
addMemberToList(MemberList::functionMembers,md,FALSE); addMemberToList(MemberList::functionMembers,md,FALSE);
break; break;
case MemberDef::Slot: case MemberDef::Slot:
switch (prot) if (protectionLevelVisible(prot))
{ {
case Protected: addMemberToList(MemberList::functionMembers,md,FALSE);
case Package:
case Public:
addMemberToList(MemberList::functionMembers,md,FALSE);
break;
case Private:
if (extractPrivate)
{
addMemberToList(MemberList::functionMembers,md,FALSE);
}
break;
} }
break; break;
default: // any of the other members default: // any of the other members
if (prot!=Private || extractPrivate) if (protectionLevelVisible(prot))
{ {
switch (md->memberType()) switch (md->memberType())
{ {
...@@ -2047,7 +2036,7 @@ void ClassDef::writeDocumentationForInnerClasses(OutputList &ol) ...@@ -2047,7 +2036,7 @@ void ClassDef::writeDocumentationForInnerClasses(OutputList &ol)
for (cli.toFirst();(innerCd=cli.current());++cli) for (cli.toFirst();(innerCd=cli.current());++cli)
{ {
if (innerCd->isLinkableInProject() && innerCd->templateMaster()==0 && if (innerCd->isLinkableInProject() && innerCd->templateMaster()==0 &&
(innerCd->protection()!=Private || Config_getBool("EXTRACT_PRIVATE")) && protectionLevelVisible(innerCd->protection()) &&
!innerCd->isEmbeddedInOuterScope() !innerCd->isEmbeddedInOuterScope()
) )
{ {
...@@ -2162,7 +2151,7 @@ void ClassDef::writeMemberList(OutputList &ol) ...@@ -2162,7 +2151,7 @@ void ClassDef::writeMemberList(OutputList &ol)
memberWritten=TRUE; memberWritten=TRUE;
} }
else if (!Config_getBool("HIDE_UNDOC_MEMBERS") && else if (!Config_getBool("HIDE_UNDOC_MEMBERS") &&
(md->protection()!=Private || Config_getBool("EXTRACT_PRIVATE") || md->isFriend()) (protectionLevelVisible(md->protection()) || md->isFriend())
) // no documentation, ) // no documentation,
// generate link to the class instead. // generate link to the class instead.
{ {
...@@ -2429,6 +2418,8 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup) ...@@ -2429,6 +2418,8 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup)
mg->writePlainDeclarations(ol,this,0,0,0); mg->writePlainDeclarations(ol,this,0,0,0);
} }
} }
static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
static bool extractPackage = Config_getBool("EXTRACT_PACKAGE");
writePlainMemberDeclaration(ol,MemberList::pubTypes,inGroup); writePlainMemberDeclaration(ol,MemberList::pubTypes,inGroup);
writePlainMemberDeclaration(ol,MemberList::pubMethods,inGroup); writePlainMemberDeclaration(ol,MemberList::pubMethods,inGroup);
...@@ -2446,12 +2437,15 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup) ...@@ -2446,12 +2437,15 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup)
writePlainMemberDeclaration(ol,MemberList::proSlots,inGroup); writePlainMemberDeclaration(ol,MemberList::proSlots,inGroup);
writePlainMemberDeclaration(ol,MemberList::proStaticMethods,inGroup); writePlainMemberDeclaration(ol,MemberList::proStaticMethods,inGroup);
writePlainMemberDeclaration(ol,MemberList::proStaticAttribs,inGroup); writePlainMemberDeclaration(ol,MemberList::proStaticAttribs,inGroup);
writePlainMemberDeclaration(ol,MemberList::pacTypes,inGroup); if (extractPackage)
writePlainMemberDeclaration(ol,MemberList::pacMethods,inGroup); {
writePlainMemberDeclaration(ol,MemberList::pacAttribs,inGroup); writePlainMemberDeclaration(ol,MemberList::pacTypes,inGroup);
writePlainMemberDeclaration(ol,MemberList::pacStaticMethods,inGroup); writePlainMemberDeclaration(ol,MemberList::pacMethods,inGroup);
writePlainMemberDeclaration(ol,MemberList::pacStaticAttribs,inGroup); writePlainMemberDeclaration(ol,MemberList::pacAttribs,inGroup);
if (Config_getBool("EXTRACT_PRIVATE")) writePlainMemberDeclaration(ol,MemberList::pacStaticMethods,inGroup);
writePlainMemberDeclaration(ol,MemberList::pacStaticAttribs,inGroup);
}
if (extractPrivate)
{ {
writePlainMemberDeclaration(ol,MemberList::priTypes,inGroup); writePlainMemberDeclaration(ol,MemberList::priTypes,inGroup);
writePlainMemberDeclaration(ol,MemberList::priMethods,inGroup); writePlainMemberDeclaration(ol,MemberList::priMethods,inGroup);
...@@ -2467,7 +2461,6 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup) ...@@ -2467,7 +2461,6 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup)
/*! a link to this class is possible within this project */ /*! a link to this class is possible within this project */
bool ClassDef::isLinkableInProject() const bool ClassDef::isLinkableInProject() const
{ {
static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
static bool extractLocal = Config_getBool("EXTRACT_LOCAL_CLASSES"); static bool extractLocal = Config_getBool("EXTRACT_LOCAL_CLASSES");
static bool extractStatic = Config_getBool("EXTRACT_STATIC"); static bool extractStatic = Config_getBool("EXTRACT_STATIC");
static bool hideUndoc = Config_getBool("HIDE_UNDOC_CLASSES"); static bool hideUndoc = Config_getBool("HIDE_UNDOC_CLASSES");
...@@ -2480,7 +2473,7 @@ bool ClassDef::isLinkableInProject() const ...@@ -2480,7 +2473,7 @@ bool ClassDef::isLinkableInProject() const
return !name().isEmpty() && /* has a name */ return !name().isEmpty() && /* has a name */
!isArtificial() && !isHidden() && /* not hidden */ !isArtificial() && !isHidden() && /* not hidden */
name().find('@')==-1 && /* not anonymous */ name().find('@')==-1 && /* not anonymous */
(m_impl->prot!=Private || extractPrivate) && /* private */ protectionLevelVisible(m_impl->prot) && /* private/internal */
(!m_impl->isLocal || extractLocal) && /* local */ (!m_impl->isLocal || extractLocal) && /* local */
(hasDocumentation() || !hideUndoc) && /* documented */ (hasDocumentation() || !hideUndoc) && /* documented */
(!m_impl->isStatic || extractStatic) && /* static */ (!m_impl->isStatic || extractStatic) && /* static */
...@@ -2505,7 +2498,6 @@ bool ClassDef::isLinkable() const ...@@ -2505,7 +2498,6 @@ bool ClassDef::isLinkable() const
bool ClassDef::isVisibleInHierarchy() bool ClassDef::isVisibleInHierarchy()
{ {
static bool allExternals = Config_getBool("ALLEXTERNALS"); static bool allExternals = Config_getBool("ALLEXTERNALS");
static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
static bool hideUndocClasses = Config_getBool("HIDE_UNDOC_CLASSES"); static bool hideUndocClasses = Config_getBool("HIDE_UNDOC_CLASSES");
static bool extractStatic = Config_getBool("EXTRACT_STATIC"); static bool extractStatic = Config_getBool("EXTRACT_STATIC");
...@@ -2516,7 +2508,7 @@ bool ClassDef::isVisibleInHierarchy() ...@@ -2516,7 +2508,7 @@ bool ClassDef::isVisibleInHierarchy()
// not an artificially introduced class // not an artificially introduced class
!isArtificial() && !isArtificial() &&
// and not privately inherited // and not privately inherited
(m_impl->prot!=Private || extractPrivate) && protectionLevelVisible(m_impl->prot) &&
// documented or shown anyway or documentation is external // documented or shown anyway or documentation is external
(hasDocumentation() || (hasDocumentation() ||
!hideUndocClasses || !hideUndocClasses ||
...@@ -2587,7 +2579,7 @@ void ClassDef::mergeMembers() ...@@ -2587,7 +2579,7 @@ void ClassDef::mergeMembers()
//static bool optimizeOutputForJava = Config_getBool("OPTIMIZE_OUTPUT_JAVA"); //static bool optimizeOutputForJava = Config_getBool("OPTIMIZE_OUTPUT_JAVA");
//static bool vhdlOpt = Config_getBool("OPTIMIZE_OUTPUT_VHDL"); //static bool vhdlOpt = Config_getBool("OPTIMIZE_OUTPUT_VHDL");
SrcLangExt lang = getLanguage(); SrcLangExt lang = getLanguage();
QCString sep=getLanguageSpecificSeparator(lang); QCString sep=getLanguageSpecificSeparator(lang,TRUE);
int sepLen = sep.length(); int sepLen = sep.length();
m_impl->membersMerged=TRUE; m_impl->membersMerged=TRUE;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include "util.h" #include "util.h"
#include "membername.h" #include "membername.h"
#include "searchindex.h" #include "searchindex.h"
#include "arguments.h"
#define YY_NEVER_INTERACTIVE 1 #define YY_NEVER_INTERACTIVE 1
...@@ -546,10 +547,10 @@ static void nextCodeLine() ...@@ -546,10 +547,10 @@ static void nextCodeLine()
/*! write a code fragment `text' that may span multiple lines, inserting /*! write a code fragment `text' that may span multiple lines, inserting
* line numbers for each line. * line numbers for each line.
*/ */
static void codifyLines(char *text) static void codifyLines(const char *text)
{ {
//printf("codifyLines(%d,\"%s\")\n",g_yyLineNr,text); //printf("codifyLines(%d,\"%s\")\n",g_yyLineNr,text);
char *p=text,*sp=p; const char *p=text,*sp=p;
char c; char c;
bool done=FALSE; bool done=FALSE;
while (!done) while (!done)
...@@ -559,8 +560,13 @@ static void codifyLines(char *text) ...@@ -559,8 +560,13 @@ static void codifyLines(char *text)
if (c=='\n') if (c=='\n')
{ {
g_yyLineNr++; g_yyLineNr++;
*(p-1)='\0'; //*(p-1)='\0';
g_code->codify(sp); int l = p-sp-1;
char *tmp = (char*)malloc(l+1);
memcpy(tmp,sp,l);
tmp[l]='\0';
g_code->codify(tmp);
free(tmp);
nextCodeLine(); nextCodeLine();
} }
else else
...@@ -874,6 +880,7 @@ static bool getLinkInScope(const QCString &c, // scope ...@@ -874,6 +880,7 @@ static bool getLinkInScope(const QCString &c, // scope
if (getDefs(c,m,"()",md,cd,fd,nd,gd,FALSE,g_sourceFileDef,FALSE,g_forceTagReference) && if (getDefs(c,m,"()",md,cd,fd,nd,gd,FALSE,g_sourceFileDef,FALSE,g_forceTagReference) &&
md->isLinkable() && (!varOnly || md->isVariable())) md->isLinkable() && (!varOnly || md->isVariable()))
{ {
//printf("found it!\n");
if (g_exampleBlock) if (g_exampleBlock)
{ {
QCString anchor; QCString anchor;
...@@ -939,7 +946,7 @@ static bool getLink(const char *className, ...@@ -939,7 +946,7 @@ static bool getLink(const char *className,
return TRUE; return TRUE;
} }
static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName, static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName,
bool typeOnly=FALSE,bool varOnly=FALSE) bool typeOnly=FALSE,bool varOnly=FALSE)
{ {
int i=0; int i=0;
...@@ -954,6 +961,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName, ...@@ -954,6 +961,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
{ {
className+="-p"; className+="-p";
} }
className = substitute(className,"\\","::"); // for PHP namespaces
ClassDef *cd=0,*lcd=0; ClassDef *cd=0,*lcd=0;
MemberDef *md=0; MemberDef *md=0;
bool isLocal=FALSE; bool isLocal=FALSE;
...@@ -1277,7 +1285,18 @@ static void generateMemberLink(CodeOutputInterface &ol,const QCString &varName, ...@@ -1277,7 +1285,18 @@ static void generateMemberLink(CodeOutputInterface &ol,const QCString &varName,
return; return;
} }
static void generateFunctionLink(CodeOutputInterface &ol,char *funcName) static void generatePHPVariableLink(CodeOutputInterface &ol,const char *varName)
{
QCString name = varName+7; // strip $this->
name.prepend("$");
//printf("generatePHPVariableLink(%s) name=%s scope=%s\n",varName,name.data(),g_classScope.data());
if (!getLink(g_classScope,name,ol,varName))
{
codifyLines(varName);
}
}
static void generateFunctionLink(CodeOutputInterface &ol,const char *funcName)
{ {
//CodeClassDef *ccd=0; //CodeClassDef *ccd=0;
ClassDef *ccd=0; ClassDef *ccd=0;
...@@ -2105,6 +2124,8 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP} ...@@ -2105,6 +2124,8 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
} }
<ClassName>{ID}("\\"{ID})* { // PHP namespace <ClassName>{ID}("\\"{ID})* { // PHP namespace
g_curClassName=substitute(yytext,"\\","::"); g_curClassName=substitute(yytext,"\\","::");
g_scopeStack.push(CLASSBLOCK);
pushScope(g_curClassName);
addType(); addType();
generateClassOrGlobalLink(*g_code,yytext); generateClassOrGlobalLink(*g_code,yytext);
BEGIN( ClassVar ); BEGIN( ClassVar );
...@@ -2204,8 +2225,8 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP} ...@@ -2204,8 +2225,8 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
g_code->codify(yytext); g_code->codify(yytext);
endFontClass(); endFontClass();
} }
<Bases>{ID} { <Bases>{SEP}?({ID}{SEP})*{ID} {
//printf("%s:addBase(%s)\n",g_ccd.name.data(),yytext); //fprintf(stderr,"%s:addBase(%s)\n",g_curClassName.data(),yytext);
g_curClassBases.inSort(yytext); g_curClassBases.inSort(yytext);
generateClassOrGlobalLink(*g_code,yytext); generateClassOrGlobalLink(*g_code,yytext);
} }
...@@ -2421,6 +2442,11 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP} ...@@ -2421,6 +2442,11 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
g_lastTemplCastContext = YY_START; g_lastTemplCastContext = YY_START;
BEGIN(TemplCast); BEGIN(TemplCast);
} }
<Body>"$this->"{SCOPENAME}/{BN}*[;,)\]] { // PHP member variable
addType();
generatePHPVariableLink(*g_code,yytext);
g_name+=yytext+7;
}
<Body,TemplCast>{SCOPENAME}{B}*"<"[^\n\/\-\.\{\"\>]*">"("::"{ID})*/{B}* { // A<T> *pt; <Body,TemplCast>{SCOPENAME}{B}*"<"[^\n\/\-\.\{\"\>]*">"("::"{ID})*/{B}* { // A<T> *pt;
int i=QCString(yytext).find('<'); int i=QCString(yytext).find('<');
QCString kw = QCString(yytext).left(i).stripWhiteSpace(); QCString kw = QCString(yytext).left(i).stripWhiteSpace();
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
/****************************************************************************** /******************************************************************************
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
/***************************************************************************** /*****************************************************************************
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -109,6 +109,7 @@ static bool handleProtected(const QCString &); ...@@ -109,6 +109,7 @@ static bool handleProtected(const QCString &);
static bool handleProtectedSection(const QCString &); static bool handleProtectedSection(const QCString &);
static bool handlePublic(const QCString &s); static bool handlePublic(const QCString &s);
static bool handlePublicSection(const QCString &s); static bool handlePublicSection(const QCString &s);
static bool handleToc(const QCString &s);
static bool handleInherit(const QCString &); static bool handleInherit(const QCString &);
static bool handleExtends(const QCString &); static bool handleExtends(const QCString &);
static bool handleCopyDoc(const QCString &); static bool handleCopyDoc(const QCString &);
...@@ -203,6 +204,7 @@ static DocCmdMap docCmdMap[] = ...@@ -203,6 +204,7 @@ static DocCmdMap docCmdMap[] =
{ "protectedsection",&handleProtectedSection, FALSE }, { "protectedsection",&handleProtectedSection, FALSE },
{ "public", &handlePublic, FALSE }, { "public", &handlePublic, FALSE },
{ "publicsection", &handlePublicSection, FALSE }, { "publicsection", &handlePublicSection, FALSE },
{ "tableofcontents", &handleToc, FALSE },
{ "inherit", &handleInherit, TRUE }, { "inherit", &handleInherit, TRUE },
{ "extends", &handleExtends, TRUE }, { "extends", &handleExtends, TRUE },
{ "implements", &handleExtends, TRUE }, { "implements", &handleExtends, TRUE },
...@@ -590,9 +592,9 @@ static QCString addFormula() ...@@ -590,9 +592,9 @@ static QCString addFormula()
formLabel.sprintf("\\form#%d",f->getId()); formLabel.sprintf("\\form#%d",f->getId());
} }
int i; int i;
for (i=0;i<formulaNewLines;i++) formLabel+="\\_fakenl"; // add fake newlines to for (i=0;i<formulaNewLines;i++) formLabel+="@_fakenl"; // add fake newlines to
// keep the warnings // keep the warnings
// correctly aligned. // correctly aligned.
return formLabel; return formLabel;
} }
...@@ -2560,6 +2562,16 @@ static bool handlePublicSection(const QCString &) ...@@ -2560,6 +2562,16 @@ static bool handlePublicSection(const QCString &)
return FALSE; return FALSE;
} }
static bool handleToc(const QCString &)
{
if (current->section==Entry::PAGEDOC_SEC ||
current->section==Entry::MAINPAGEDOC_SEC)
{
current->stat=TRUE; // we 'abuse' stat to pass whether or the TOC is enabled
}
return FALSE;
}
static bool handleInherit(const QCString &) static bool handleInherit(const QCString &)
{ {
BEGIN(InheritParam); BEGIN(InheritParam);
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -354,6 +354,10 @@ the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES ...@@ -354,6 +354,10 @@ the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
<option type='bool' id='EXTRACT_PRIVATE' docs=' <option type='bool' id='EXTRACT_PRIVATE' docs='
If the EXTRACT_PRIVATE tag is set to YES all private members of a class If the EXTRACT_PRIVATE tag is set to YES all private members of a class
will be included in the documentation. will be included in the documentation.
' defval='0'/>
<option type='bool' id='EXTRACT_PACKAGE' docs='
If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
scope will be included in the documentation.
' defval='0'/> ' defval='0'/>
<option type='bool' id='EXTRACT_STATIC' docs=' <option type='bool' id='EXTRACT_STATIC' docs='
If the EXTRACT_STATIC tag is set to YES all static members of a file If the EXTRACT_STATIC tag is set to YES all static members of a file
...@@ -1084,7 +1088,7 @@ Enable the USE_MATHJAX option to render LaTeX formulas using MathJax ...@@ -1084,7 +1088,7 @@ Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
(see http://www.mathjax.org) which uses client side Javascript for the (see http://www.mathjax.org) which uses client side Javascript for the
rendering instead of using prerendered bitmaps. Use this if you do not rendering instead of using prerendered bitmaps. Use this if you do not
have LaTeX installed or if you want to formulas look prettier in the HTML have LaTeX installed or if you want to formulas look prettier in the HTML
output. When enabled you also need to install MathJax separately and output. When enabled you may also need to install MathJax separately and
configure the path to it using the MATHJAX_RELPATH option. configure the path to it using the MATHJAX_RELPATH option.
' defval='0'/> ' defval='0'/>
<option type='string' id='MATHJAX_RELPATH' docs=' <option type='string' id='MATHJAX_RELPATH' docs='
...@@ -1092,11 +1096,11 @@ When MathJax is enabled you need to specify the location relative to the ...@@ -1092,11 +1096,11 @@ When MathJax is enabled you need to specify the location relative to the
HTML output directory using the MATHJAX_RELPATH option. The destination HTML output directory using the MATHJAX_RELPATH option. The destination
directory should contain the MathJax.js script. For instance, if the mathjax directory should contain the MathJax.js script. For instance, if the mathjax
directory is located at the same level as the HTML output directory, then directory is located at the same level as the HTML output directory, then
MATHJAX_RELPATH should be ../mathjax. The default value points to the MATHJAX_RELPATH should be ../mathjax. The default value points to
mathjax.org site, so you can quickly see the result without installing the MathJax Content Delivery Network so you can quickly see the result without
MathJax, but it is strongly recommended to install a local copy of MathJax installing MathJax. However, it is strongly recommended to install a local
before deployment. copy of MathJax from http://www.mathjax.org before deployment.
' defval='http://www.mathjax.org/mathjax'/> ' defval='http://cdn.mathjax.org/mathjax/latest'/>
<option type='list' id='MATHJAX_EXTENSIONS' format='string' docs=' <option type='list' id='MATHJAX_EXTENSIONS' format='string' docs='
The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
names that should be enabled during MathJax rendering. names that should be enabled during MathJax rendering.
...@@ -1493,6 +1497,14 @@ If the UML_LOOK tag is set to YES doxygen will generate inheritance and ...@@ -1493,6 +1497,14 @@ If the UML_LOOK tag is set to YES doxygen will generate inheritance and
collaboration diagrams in a style similar to the OMG&apos;s Unified Modeling collaboration diagrams in a style similar to the OMG&apos;s Unified Modeling
Language. Language.
' defval='0' depends='HAVE_DOT'/> ' defval='0' depends='HAVE_DOT'/>
<option type='int' id='UML_LIMIT_NUM_FIELDS' docs='
If the UML_LOOK tag is enabled, the fields and methods are shown inside
the class node. If there are many fields or methods and many nodes the
graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS
threshold limits the number of items for each type to make the size more
managable. Set this to 0 for no limit. Note that the threshold may be
exceeded by 50% before the limit is enforced.
' defval='10' minval='0' maxval='100' depends='HAVE_DOT'/>
<option type='bool' id='TEMPLATE_RELATIONS' docs=' <option type='bool' id='TEMPLATE_RELATIONS' docs='
If set to YES, the inheritance and collaboration graphs will show the If set to YES, the inheritance and collaboration graphs will show the
relations between templates and their instances. relations between templates and their instances.
......
# python script to generate configoptions.cpp from config.xml # python script to generate configoptions.cpp from config.xml
# #
# Copyright (C) 1997-2008 by Dimitri van Heesch. # Copyright (C) 1997-2012 by Dimitri van Heesch.
# #
# Permission to use, copy, modify, and distribute this software and its # Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby # documentation under the terms of the GNU General Public License is hereby
......
...@@ -499,6 +499,12 @@ void addConfigOptions(Config *cfg) ...@@ -499,6 +499,12 @@ void addConfigOptions(Config *cfg)
FALSE FALSE
); );
//---- //----
cb = cfg->addBool(
"EXTRACT_PACKAGE",
"If the EXTRACT_PACKAGE tag is set to YES all members with package or internal scope will be included in the documentation.",
FALSE
);
//----
cb = cfg->addBool( cb = cfg->addBool(
"EXTRACT_STATIC", "EXTRACT_STATIC",
"If the EXTRACT_STATIC tag is set to YES all static members of a file\n" "If the EXTRACT_STATIC tag is set to YES all static members of a file\n"
...@@ -1596,7 +1602,7 @@ void addConfigOptions(Config *cfg) ...@@ -1596,7 +1602,7 @@ void addConfigOptions(Config *cfg)
"(see http://www.mathjax.org) which uses client side Javascript for the\n" "(see http://www.mathjax.org) which uses client side Javascript for the\n"
"rendering instead of using prerendered bitmaps. Use this if you do not\n" "rendering instead of using prerendered bitmaps. Use this if you do not\n"
"have LaTeX installed or if you want to formulas look prettier in the HTML\n" "have LaTeX installed or if you want to formulas look prettier in the HTML\n"
"output. When enabled you also need to install MathJax separately and\n" "output. When enabled you may also need to install MathJax separately and\n"
"configure the path to it using the MATHJAX_RELPATH option.", "configure the path to it using the MATHJAX_RELPATH option.",
FALSE FALSE
); );
...@@ -1607,12 +1613,13 @@ void addConfigOptions(Config *cfg) ...@@ -1607,12 +1613,13 @@ void addConfigOptions(Config *cfg)
"HTML output directory using the MATHJAX_RELPATH option. The destination\n" "HTML output directory using the MATHJAX_RELPATH option. The destination\n"
"directory should contain the MathJax.js script. For instance, if the mathjax\n" "directory should contain the MathJax.js script. For instance, if the mathjax\n"
"directory is located at the same level as the HTML output directory, then\n" "directory is located at the same level as the HTML output directory, then\n"
"MATHJAX_RELPATH should be ../mathjax. The default value points to the\n" "MATHJAX_RELPATH should be ../mathjax. The default value points to\n"
"mathjax.org site, so you can quickly see the result without installing\n" "the MathJax Content Delivery Network so you can quickly see the result without\n"
"MathJax, but it is strongly recommended to install a local copy of MathJax\n" "installing MathJax.\n"
"before deployment." "However, it is strongly recommended to install a local\n"
"copy of MathJax from http://www.mathjax.org before deployment."
); );
cs->setDefaultValue("http://www.mathjax.org/mathjax"); cs->setDefaultValue("http://cdn.mathjax.org/mathjax/latest");
//---- //----
cl = cfg->addList( cl = cfg->addList(
"MATHJAX_EXTENSIONS", "MATHJAX_EXTENSIONS",
...@@ -2260,6 +2267,18 @@ void addConfigOptions(Config *cfg) ...@@ -2260,6 +2267,18 @@ void addConfigOptions(Config *cfg)
); );
cb->addDependency("HAVE_DOT"); cb->addDependency("HAVE_DOT");
//---- //----
ci = cfg->addInt(
"UML_LIMIT_NUM_FIELDS",
"If the UML_LOOK tag is enabled, the fields and methods are shown inside\n"
"the class node. If there are many fields or methods and many nodes the\n"
"graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS\n"
"threshold limits the number of items for each type to make the size more\n"
"managable. Set this to 0 for no limit. Note that the threshold may be\n"
"exceeded by 50% before the limit is enforced.",
0,100,10
);
ci->addDependency("HAVE_DOT");
//----
cb = cfg->addBool( cb = cfg->addBool(
"TEMPLATE_RELATIONS", "TEMPLATE_RELATIONS",
"If set to YES, the inheritance and collaboration graphs will show the\n" "If set to YES, the inheritance and collaboration graphs will show the\n"
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* *
* *
* Copyright (C) 1997-2011 by Dimitri van Heesch. * Copyright (C) 1997-2012 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment