Commit deaa34e0 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.8.3.1-20130324

parent aacd1557
# Doxyfile 1.8.0 # Doxyfile 1.8.3.1
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Project related configuration options # Project related configuration options
...@@ -34,6 +34,7 @@ OPTIMIZE_FOR_FORTRAN = NO ...@@ -34,6 +34,7 @@ OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO OPTIMIZE_OUTPUT_VHDL = NO
EXTENSION_MAPPING = EXTENSION_MAPPING =
MARKDOWN_SUPPORT = YES MARKDOWN_SUPPORT = YES
AUTOLINK_SUPPORT = YES
BUILTIN_STL_SUPPORT = NO BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO SIP_SUPPORT = NO
...@@ -100,7 +101,7 @@ INPUT = src ...@@ -100,7 +101,7 @@ INPUT = src
INPUT_ENCODING = UTF-8 INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.h \ FILE_PATTERNS = *.h \
*.cpp \ *.cpp \
*.md *.md
RECURSIVE = NO RECURSIVE = NO
EXCLUDE = src/code.cpp \ EXCLUDE = src/code.cpp \
src/ce_lex.cpp \ src/ce_lex.cpp \
...@@ -115,8 +116,6 @@ EXCLUDE = src/code.cpp \ ...@@ -115,8 +116,6 @@ EXCLUDE = src/code.cpp \
src/logos.cpp \ src/logos.cpp \
src/suffixtree.cpp \ src/suffixtree.cpp \
src/suffixtree.h \ src/suffixtree.h \
src/searchindex.cpp \
src/searchindex.h \
src/commentcnv.cpp \ src/commentcnv.cpp \
src/commentscan.cpp \ src/commentscan.cpp \
src/pycode.cpp \ src/pycode.cpp \
...@@ -128,7 +127,7 @@ EXCLUDE = src/code.cpp \ ...@@ -128,7 +127,7 @@ EXCLUDE = src/code.cpp \
src/vhdlparser.cpp \ src/vhdlparser.cpp \
src/vhdlcode.cpp \ src/vhdlcode.cpp \
src/tclscanner.cpp \ src/tclscanner.cpp \
src/lodepng.cpp \ src/lodepng.cpp \
src/doxygen_css.h \ src/doxygen_css.h \
src/doxygen_js.h \ src/doxygen_js.h \
src/doxygen_php.h \ src/doxygen_php.h \
...@@ -147,9 +146,14 @@ EXCLUDE = src/code.cpp \ ...@@ -147,9 +146,14 @@ EXCLUDE = src/code.cpp \
src/search_functions_php.h \ src/search_functions_php.h \
src/search_opensearch_php.h \ src/search_opensearch_php.h \
src/search_js.h \ src/search_js.h \
src/sizzle_js.h src/sizzle_js.h \
src/navtree_js.h \
src/resize_js.h \
src/svgpan_js.h \
src/dynsections_js.h \
src/extsearch_js.h \
src/footer_html.h \
EXCLUDE_SYMLINKS = NO EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS = EXCLUDE_SYMBOLS =
EXAMPLE_PATH = EXAMPLE_PATH =
EXAMPLE_PATTERNS = EXAMPLE_PATTERNS =
...@@ -159,6 +163,7 @@ INPUT_FILTER = ...@@ -159,6 +163,7 @@ INPUT_FILTER =
FILTER_PATTERNS = FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO FILTER_SOURCE_FILES = NO
FILTER_SOURCE_PATTERNS = FILTER_SOURCE_PATTERNS =
USE_MDFILE_AS_MAINPAGE =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to source browsing # configuration options related to source browsing
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
...@@ -170,6 +175,8 @@ REFERENCES_RELATION = YES ...@@ -170,6 +175,8 @@ REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO USE_HTAGS = NO
VERBATIM_HEADERS = YES VERBATIM_HEADERS = YES
CLANG_ASSISTED_PARSING = YES
CLANG_OPTIONS =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the alphabetical class index # configuration options related to the alphabetical class index
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
...@@ -185,12 +192,14 @@ HTML_FILE_EXTENSION = .html ...@@ -185,12 +192,14 @@ HTML_FILE_EXTENSION = .html
HTML_HEADER = HTML_HEADER =
HTML_FOOTER = HTML_FOOTER =
HTML_STYLESHEET = HTML_STYLESHEET =
HTML_EXTRA_STYLESHEET =
HTML_EXTRA_FILES = HTML_EXTRA_FILES =
HTML_COLORSTYLE_HUE = 220 HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_SAT = 100 HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80 HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = YES HTML_TIMESTAMP = YES
HTML_DYNAMIC_SECTIONS = YES HTML_DYNAMIC_SECTIONS = YES
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = YES GENERATE_DOCSET = YES
DOCSET_FEEDNAME = "Doxygen docs" DOCSET_FEEDNAME = "Doxygen docs"
DOCSET_BUNDLE_ID = org.doxygen.Doxygen DOCSET_BUNDLE_ID = org.doxygen.Doxygen
...@@ -221,10 +230,16 @@ EXT_LINKS_IN_WINDOW = NO ...@@ -221,10 +230,16 @@ EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10 FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES FORMULA_TRANSPARENT = YES
USE_MATHJAX = NO USE_MATHJAX = NO
MATHJAX_FORMAT = HTML-CSS
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
MATHJAX_EXTENSIONS = MATHJAX_EXTENSIONS =
SEARCHENGINE = YES SEARCHENGINE = YES
SERVER_BASED_SEARCH = YES SERVER_BASED_SEARCH = YES
EXTERNAL_SEARCH = NO
SEARCHENGINE_URL =
SEARCHDATA_FILE = searchdata.xml
EXTERNAL_SEARCH_ID =
EXTRA_SEARCH_MAPPINGS =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the LaTeX output # configuration options related to the LaTeX output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
...@@ -237,6 +252,7 @@ PAPER_TYPE = a4wide ...@@ -237,6 +252,7 @@ PAPER_TYPE = a4wide
EXTRA_PACKAGES = EXTRA_PACKAGES =
LATEX_HEADER = LATEX_HEADER =
LATEX_FOOTER = LATEX_FOOTER =
LATEX_EXTRA_FILES =
PDF_HYPERLINKS = YES PDF_HYPERLINKS = YES
USE_PDFLATEX = NO USE_PDFLATEX = NO
LATEX_BATCHMODE = NO LATEX_BATCHMODE = NO
...@@ -268,6 +284,11 @@ XML_SCHEMA = ...@@ -268,6 +284,11 @@ XML_SCHEMA =
XML_DTD = XML_DTD =
XML_PROGRAMLISTING = YES XML_PROGRAMLISTING = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT = docbook
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output # configuration options for the AutoGen Definitions output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO GENERATE_AUTOGEN_DEF = NO
...@@ -285,7 +306,7 @@ ENABLE_PREPROCESSING = YES ...@@ -285,7 +306,7 @@ ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES SEARCH_INCLUDES = YES
INCLUDE_PATH = INCLUDE_PATH = qtools libmd5
INCLUDE_FILE_PATTERNS = INCLUDE_FILE_PATTERNS =
PREDEFINED = PREDEFINED =
EXPAND_AS_DEFINED = EXPAND_AS_DEFINED =
...@@ -297,6 +318,7 @@ TAGFILES = qtools_docs/qtools.tag=../../qtools_docs/html ...@@ -297,6 +318,7 @@ TAGFILES = qtools_docs/qtools.tag=../../qtools_docs/html
GENERATE_TAGFILE = doxygen.tag GENERATE_TAGFILE = doxygen.tag
ALLEXTERNALS = NO ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
PERL_PATH = /usr/bin/perl PERL_PATH = /usr/bin/perl
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the dot tool # Configuration options related to the dot tool
......
DOXYGEN Version 1.8.3.1-20130209 DOXYGEN Version 1.8.3.1-20130324
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 (09 February 2013) Dimitri van Heesch (24 March 2013)
...@@ -45,7 +45,7 @@ distclean: clean ...@@ -45,7 +45,7 @@ distclean: clean
-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
-rm -f src/doxygen.pro src/libdoxygen.pro qtools/qtools.pro src/libdoxycfg.pro libmd5/libmd5.pro -rm -f src/doxygen.pro src/libdoxygen.pro qtools/qtools.pro src/libdoxycfg.pro libmd5/libmd5.pro
-rm -f src/version.cpp -rm -f src/version.cpp
-rm -r addon/doxywizard/Makefile -rm -r addon/doxywizard/Makefile
-rm -f addon/doxywizard/doxywizard.pro -rm -f addon/doxywizard/doxywizard.pro
-rm -f VERSION -rm -f VERSION
......
DOXYGEN Version 1.8.3.1_20130209 DOXYGEN Version 1.8.3.1_20130324
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) (09 February 2013) Dimitri van Heesch (dimitri@stack.nl) (24 March 2013)
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <QtXml> #include <QtXml>
#include "config.h" #include "config.h"
#include "version.h" #include "version.h"
#include "../../src/settings.h"
#undef SA #undef SA
#define SA(x) QString::fromAscii(x) #define SA(x) QString::fromAscii(x)
...@@ -120,144 +121,148 @@ QWidget *Expert::createTopicWidget(QDomElement &elem) ...@@ -120,144 +121,148 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
int row=0; int row=0;
while (!child.isNull()) while (!child.isNull())
{ {
QString type = child.attribute(SA("type")); QString setting = child.attribute(SA("setting"));
if (type==SA("bool")) if (setting.isEmpty() || IS_SUPPORTED(setting.toAscii()))
{ {
InputBool *boolOption = QString type = child.attribute(SA("type"));
if (type==SA("bool"))
{
InputBool *boolOption =
new InputBool( new InputBool(
layout,row, layout,row,
child.attribute(SA("id")),
child.attribute(SA("defval"))==SA("1"),
child.attribute(SA("docs"))
);
m_options.insert(
child.attribute(SA("id")), child.attribute(SA("id")),
child.attribute(SA("defval"))==SA("1"), boolOption
child.attribute(SA("docs")) );
); connect(boolOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
m_options.insert( connect(boolOption,SIGNAL(changed()),SIGNAL(changed()));
child.attribute(SA("id")),
boolOption
);
connect(boolOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(boolOption,SIGNAL(changed()),SIGNAL(changed()));
}
else if (type==SA("string"))
{
InputString::StringMode mode;
QString format = child.attribute(SA("format"));
if (format==SA("dir"))
{
mode = InputString::StringDir;
}
else if (format==SA("file"))
{
mode = InputString::StringFile;
} }
else // format=="string" else if (type==SA("string"))
{ {
mode = InputString::StringFree; InputString::StringMode mode;
} QString format = child.attribute(SA("format"));
InputString *stringOption = if (format==SA("dir"))
{
mode = InputString::StringDir;
}
else if (format==SA("file"))
{
mode = InputString::StringFile;
}
else // format=="string"
{
mode = InputString::StringFree;
}
InputString *stringOption =
new InputString( new InputString(
layout,row, layout,row,
child.attribute(SA("id")),
child.attribute(SA("defval")),
mode,
child.attribute(SA("docs")),
child.attribute(SA("abspath"))
);
m_options.insert(
child.attribute(SA("id")), child.attribute(SA("id")),
child.attribute(SA("defval")), stringOption
mode, );
child.attribute(SA("docs")), connect(stringOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
child.attribute(SA("abspath")) connect(stringOption,SIGNAL(changed()),SIGNAL(changed()));
); }
m_options.insert( else if (type==SA("enum"))
child.attribute(SA("id")), {
stringOption InputString *enumList = new InputString(
);
connect(stringOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(stringOption,SIGNAL(changed()),SIGNAL(changed()));
}
else if (type==SA("enum"))
{
InputString *enumList = new InputString(
layout,row, layout,row,
child.attribute(SA("id")), child.attribute(SA("id")),
child.attribute(SA("defval")), child.attribute(SA("defval")),
InputString::StringFixed, InputString::StringFixed,
child.attribute(SA("docs")) child.attribute(SA("docs"))
); );
QDomElement enumVal = child.firstChildElement(); QDomElement enumVal = child.firstChildElement();
while (!enumVal.isNull()) while (!enumVal.isNull())
{ {
enumList->addValue(enumVal.attribute(SA("name"))); enumList->addValue(enumVal.attribute(SA("name")));
enumVal = enumVal.nextSiblingElement(); enumVal = enumVal.nextSiblingElement();
}
enumList->setDefault();
m_options.insert(child.attribute(SA("id")),enumList);
connect(enumList,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(enumList,SIGNAL(changed()),SIGNAL(changed()));
} }
enumList->setDefault(); else if (type==SA("int"))
{
m_options.insert(child.attribute(SA("id")),enumList); InputInt *intOption =
connect(enumList,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(enumList,SIGNAL(changed()),SIGNAL(changed()));
}
else if (type==SA("int"))
{
InputInt *intOption =
new InputInt( new InputInt(
layout,row, layout,row,
child.attribute(SA("id")),
child.attribute(SA("defval")).toInt(),
child.attribute(SA("minval")).toInt(),
child.attribute(SA("maxval")).toInt(),
child.attribute(SA("docs"))
);
m_options.insert(
child.attribute(SA("id")), child.attribute(SA("id")),
child.attribute(SA("defval")).toInt(), intOption
child.attribute(SA("minval")).toInt(), );
child.attribute(SA("maxval")).toInt(), connect(intOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
child.attribute(SA("docs")) connect(intOption,SIGNAL(changed()),SIGNAL(changed()));
);
m_options.insert(
child.attribute(SA("id")),
intOption
);
connect(intOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(intOption,SIGNAL(changed()),SIGNAL(changed()));
}
else if (type==SA("list"))
{
InputStrList::ListMode mode;
QString format = child.attribute(SA("format"));
if (format==SA("dir"))
{
mode = InputStrList::ListDir;
}
else if (format==SA("file"))
{
mode = InputStrList::ListFile;
} }
else if (format==SA("filedir")) else if (type==SA("list"))
{ {
mode = InputStrList::ListFileDir; InputStrList::ListMode mode;
QString format = child.attribute(SA("format"));
if (format==SA("dir"))
{
mode = InputStrList::ListDir;
}
else if (format==SA("file"))
{
mode = InputStrList::ListFile;
}
else if (format==SA("filedir"))
{
mode = InputStrList::ListFileDir;
}
else // format=="string"
{
mode = InputStrList::ListString;
}
QStringList sl;
QDomElement listVal = child.firstChildElement();
while (!listVal.isNull())
{
sl.append(listVal.attribute(SA("name")));
listVal = listVal.nextSiblingElement();
}
InputStrList *listOption =
new InputStrList(
layout,row,
child.attribute(SA("id")),
sl,
mode,
child.attribute(SA("docs"))
);
m_options.insert(
child.attribute(SA("id")),
listOption
);
connect(listOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(listOption,SIGNAL(changed()),SIGNAL(changed()));
} }
else // format=="string" else if (type==SA("obsolete"))
{ {
mode = InputStrList::ListString; // ignore
} }
QStringList sl; else // should not happen
QDomElement listVal = child.firstChildElement();
while (!listVal.isNull())
{ {
sl.append(listVal.attribute(SA("name"))); printf("Unsupported type %s\n",qPrintable(child.attribute(SA("type"))));
listVal = listVal.nextSiblingElement();
} }
InputStrList *listOption = } // IS_SUPPORTED
new InputStrList(
layout,row,
child.attribute(SA("id")),
sl,
mode,
child.attribute(SA("docs"))
);
m_options.insert(
child.attribute(SA("id")),
listOption
);
connect(listOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(listOption,SIGNAL(changed()),SIGNAL(changed()));
}
else if (type==SA("obsolete"))
{
// ignore
}
else // should not happen
{
printf("Unsupported type %s\n",qPrintable(child.attribute(SA("type"))));
}
child = child.nextSiblingElement(); child = child.nextSiblingElement();
} }
......
...@@ -20,7 +20,7 @@ doxygen_version_minor=8 ...@@ -20,7 +20,7 @@ doxygen_version_minor=8
doxygen_version_revision=3.1 doxygen_version_revision=3.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=20130209 doxygen_version_mmn=20130324
bin_dirs=`echo $PATH | sed -e "s/:/ /g"` bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
...@@ -41,6 +41,7 @@ f_bison=NO ...@@ -41,6 +41,7 @@ f_bison=NO
f_search=NO f_search=NO
f_langs=nl,sv,cz,fr,id,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,mk,br,dk,sk,ua,gr,tw,sr,ca,lt,za,ar,fa,sc,vi,tr,eo,am f_langs=nl,sv,cz,fr,id,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,mk,br,dk,sk,ua,gr,tw,sr,ca,lt,za,ar,fa,sc,vi,tr,eo,am
f_sqlite3=NO f_sqlite3=NO
f_libclang=NO
while test -n "$1"; do while test -n "$1"; do
case $1 in case $1 in
...@@ -101,6 +102,9 @@ while test -n "$1"; do ...@@ -101,6 +102,9 @@ while test -n "$1"; do
--with-sqlite3 | -with-sqlite3) --with-sqlite3 | -with-sqlite3)
f_sqlite3=YES f_sqlite3=YES
;; ;;
--with-libclang | -with-libclang)
f_libclang=YES
;;
-h | -help | --help) -h | -help | --help)
f_help=y f_help=y
;; ;;
...@@ -152,6 +156,7 @@ Options: ...@@ -152,6 +156,7 @@ Options:
--enable-langs list Include support for output languages listed in list. --enable-langs list Include support for output languages listed in list.
[default: $f_langs] [default: $f_langs]
--with-sqlite3 Add support for sqlite3 output [experimental] --with-sqlite3 Add support for sqlite3 output [experimental]
--with-libclang Add support for libclang parsing [experimental]
--with-doxywizard Build the GUI frontend for doxygen. This --with-doxywizard Build the GUI frontend for doxygen. This
requires Qt version 4. requires Qt version 4.
--with-doxysearch Build external search tools (doxysearch and doxyindexer) --with-doxysearch Build external search tools (doxysearch and doxyindexer)
...@@ -270,7 +275,7 @@ if test -z "$f_docdir"; then ...@@ -270,7 +275,7 @@ if test -z "$f_docdir"; then
fi fi
if test "$f_plf_auto" = NO; then if test "$f_plf_auto" = NO; then
echo -n " Checking for platform $f_platform... " printf " Checking for platform $f_platform... "
if test '!' -d tmake/lib/$f_platform; then if test '!' -d tmake/lib/$f_platform; then
echo "not supported!" echo "not supported!"
echo echo
...@@ -284,7 +289,7 @@ fi ...@@ -284,7 +289,7 @@ fi
if test "$f_wizard" = YES; then if test "$f_wizard" = YES; then
if test -z "$QTDIR"; then if test -z "$QTDIR"; then
echo " QTDIR environment variable not set!" echo " QTDIR environment variable not set!"
echo -n " Checking for Qt..." printf " Checking for Qt..."
for d in /usr/{lib,share,qt}/{qt-4,qt4,qt,qt*,4} /usr; do for d in /usr/{lib,share,qt}/{qt-4,qt4,qt,qt*,4} /usr; do
if test -x "$d/bin/qmake"; then if test -x "$d/bin/qmake"; then
QTDIR=$d QTDIR=$d
...@@ -292,7 +297,7 @@ if test "$f_wizard" = YES; then ...@@ -292,7 +297,7 @@ if test "$f_wizard" = YES; then
done done
else else
echo " Detected Qt via the QTDIR environment variable..." echo " Detected Qt via the QTDIR environment variable..."
echo -n " " printf " "
fi fi
if test -z "$QTDIR"; then if test -z "$QTDIR"; then
echo "QTDIR not set and Qt not found at standard locations!" echo "QTDIR not set and Qt not found at standard locations!"
...@@ -307,7 +312,7 @@ fi ...@@ -307,7 +312,7 @@ fi
if test "$f_search" = YES; then if test "$f_search" = YES; then
if test -z "$XAPIAN"; then if test -z "$XAPIAN"; then
echo -n " Checking for Xapian..." printf " Checking for Xapian..."
for d in /usr /usr/local /opt/local; do for d in /usr /usr/local /opt/local; do
if test -e "$d/include/xapian.h"; then if test -e "$d/include/xapian.h"; then
XAPIAN=$d XAPIAN=$d
...@@ -322,7 +327,7 @@ fi ...@@ -322,7 +327,7 @@ fi
# - check for make ------------------------------------------------------------ # - check for make ------------------------------------------------------------
echo -n " Checking for GNU make tool... " printf " Checking for GNU make tool... "
if test "$f_make" = NO; then if test "$f_make" = NO; then
make_names="gmake make" make_names="gmake make"
make_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin" make_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin"
...@@ -349,7 +354,7 @@ echo "using $f_make" ...@@ -349,7 +354,7 @@ echo "using $f_make"
# - check for install ------------------------------------------------------------ # - check for install ------------------------------------------------------------
echo -n " Checking for GNU install tool... " printf " Checking for GNU install tool... "
if test "$f_insttool" = NO; then if test "$f_insttool" = NO; then
install_names="ginstall install" install_names="ginstall install"
install_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin /usr/ucb" install_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin /usr/ucb"
...@@ -386,7 +391,7 @@ echo "using $f_insttool"; ...@@ -386,7 +391,7 @@ echo "using $f_insttool";
# - check for dot ------------------------------------------------------------ # - check for dot ------------------------------------------------------------
echo -n " Checking for dot (part of GraphViz)... " printf " Checking for dot (part of GraphViz)... "
if test "$f_dot" = NO; then if test "$f_dot" = NO; then
dot_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin" dot_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin"
dot_prog=NO dot_prog=NO
...@@ -408,7 +413,7 @@ fi ...@@ -408,7 +413,7 @@ fi
# - check for sqlite3 --------------------------------------------------------- # - check for sqlite3 ---------------------------------------------------------
if test "$f_sqlite3" = YES; then if test "$f_sqlite3" = YES; then
echo -n " Checking for sqlite3 ... " printf " Checking for sqlite3 ... "
sqlite3_hdr_dir="/usr/include /usr/local/include /opt/local/include" sqlite3_hdr_dir="/usr/include /usr/local/include /opt/local/include"
sqlite3_lib_dir="/usr/lib /usr/local/lib /opt/local/lib" sqlite3_lib_dir="/usr/lib /usr/local/lib /opt/local/lib"
sqlite3_lib_name="libsqlite3.so libsqlite3.dylib libsqlite3.a" sqlite3_lib_name="libsqlite3.so libsqlite3.dylib libsqlite3.a"
...@@ -439,10 +444,43 @@ if test "$f_sqlite3" = YES; then ...@@ -439,10 +444,43 @@ if test "$f_sqlite3" = YES; then
fi fi
fi fi
# - check for libclang ---------------------------------------------------------
if test "$f_libclang" = YES; then
printf " Checking for libclang ... "
libclang_hdr_dir="/usr/include /usr/local/include /opt/local/include"
libclang_lib_dir="/usr/lib /usr/local/lib /opt/local/lib"
libclang_lib_name="libclang.so libclang.dylib libclang.a"
libclang_hdr=NO
libclang_lib=NO
libclang_link=
for j in $libclang_hdr_dir; do
if test -f "$j/clang-c/Index.h"; then
libclang_hdr="$j/clang-c/Index.h"
break
fi
done
for i in $libclang_lib_dir; do
if test "$libclang_lib" = NO; then
for j in $libclang_lib_name; do
if test -f "$i/$j"; then
libclang_lib="$i/$j"
libclang_link="-L $i -lclang"
break
fi
done
fi
done
if test "$libclang_hdr" = NO -o "$libclang_lib" = NO; then
echo "not found!";
else
echo "using header $libclang_hdr and library $libclang_lib...";
fi
fi
# - check for perl ------------------------------------------------------------ # - check for perl ------------------------------------------------------------
echo -n " Checking for perl... " printf " Checking for perl... "
if test "$f_perl" = NO; then if test "$f_perl" = NO; then
perl_names="perl perl5" perl_names="perl perl5"
perl_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin" perl_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin"
...@@ -475,7 +513,7 @@ echo "using $f_perl"; ...@@ -475,7 +513,7 @@ echo "using $f_perl";
# - check for flex ------------------------------------------------------------ # - check for flex ------------------------------------------------------------
echo -n " Checking for flex... " printf " Checking for flex... "
if test "$f_flex" = NO; then if test "$f_flex" = NO; then
flex_dirs="$bin_dirs /usr/bin /usr/local/bin /bin" flex_dirs="$bin_dirs /usr/bin /usr/local/bin /bin"
flex_prog=NO flex_prog=NO
...@@ -499,7 +537,7 @@ fi ...@@ -499,7 +537,7 @@ fi
# - check for bison ------------------------------------------------------------ # - check for bison ------------------------------------------------------------
echo -n " Checking for bison... " printf " Checking for bison... "
if test "$f_bison" = NO; then if test "$f_bison" = NO; then
bison_dirs="$bin_dirs /usr/bin /usr/local/bin /bin" bison_dirs="$bin_dirs /usr/bin /usr/local/bin /bin"
bison_prog=NO bison_prog=NO
...@@ -739,7 +777,7 @@ EOF ...@@ -739,7 +777,7 @@ EOF
#if test "$f_thread" = YES; then #if test "$f_thread" = YES; then
# realopts="$realopts thread" # realopts="$realopts thread"
#fi #fi
cat $SRC .tmakeconfig | sed -e "s/\$extraopts/$realopts/g" -e "s;%%SQLITE3_LIBS%%;$sqlite3_link;g" >> $DST cat $SRC .tmakeconfig | sed -e "s/\$extraopts/$realopts/g" -e "s;%%SQLITE3_LIBS%%;$sqlite3_link;g" -e "s;%%LIBCLANG_LIBS%%;$libclang_link;g" >> $DST
echo " Created $DST from $SRC..." echo " Created $DST from $SRC..."
done done
...@@ -768,10 +806,22 @@ fi ...@@ -768,10 +806,22 @@ fi
echo " Generating src/settings.h..." echo " Generating src/settings.h..."
echo "#ifndef SETTINGS_H" > src/settings.h echo "#ifndef SETTINGS_H" > src/settings.h
echo "#define SETTINGS_H" >> src/settings.h echo "#define SETTINGS_H" >> src/settings.h
echo "" >> src/settings.h
if test "$f_sqlite3" != NO; then if test "$f_sqlite3" != NO; then
echo "#define USE_SQLITE3 1" >> src/settings.h echo "#define USE_SQLITE3 1" >> src/settings.h
else else
echo "#define USE_SQLITE3 0" >> src/settings.h echo "#define USE_SQLITE3 0" >> src/settings.h
fi fi
if test "$f_libclang" != NO; then
echo "#define USE_LIBCLANG 1" >> src/settings.h
else
echo "#define USE_LIBCLANG 0" >> src/settings.h
fi
echo "" >> src/settings.h
echo "#define IS_SUPPORTED(x) \\" >> src/settings.h
echo " ((USE_SQLITE3 && strcmp(\"USE_SQLITE3\",(x))==0) || \\" >> src/settings.h
echo " (USE_LIBCLANG && strcmp(\"USE_LIBCLANG\",(x))==0) || \\" >> src/settings.h
echo " 0)" >> src/settings.h
echo "" >> src/settings.h
echo "#endif" >> src/settings.h echo "#endif" >> src/settings.h
echo echo
...@@ -237,6 +237,10 @@ utime $now, $now, $file ...@@ -237,6 +237,10 @@ utime $now, $now, $file
\endverbatim \endverbatim
\htmlonly
Return to the <a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -131,4 +131,10 @@ typedef struct StructName TypeName ...@@ -131,4 +131,10 @@ typedef struct StructName TypeName
Click <a href="$(DOXYGEN_DOCDIR)/examples/restypedef/html/restypedef_8cpp.html">here</a> Click <a href="$(DOXYGEN_DOCDIR)/examples/restypedef/html/restypedef_8cpp.html">here</a>
for the corresponding HTML documentation that is generated by Doxygen. for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly \endhtmlonly
\htmlonly
Go to the <a href="output.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -2909,5 +2909,11 @@ browser generator. Do \e not use these commands in your own documentation. ...@@ -2909,5 +2909,11 @@ browser generator. Do \e not use these commands in your own documentation.
</ul> </ul>
<hr> <hr>
\htmlonly
Go to the <a href="htmlcmds.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -2840,5 +2840,11 @@ Here doxygen's preprocessor is used to substitute some ...@@ -2840,5 +2840,11 @@ Here doxygen's preprocessor is used to substitute some
macro names that are normally substituted by the C preprocessor, macro names that are normally substituted by the C preprocessor,
but without doing full macro expansion. but without doing full macro expansion.
\htmlonly
Go to the <a href="commands.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -122,4 +122,11 @@ which will expand to ...@@ -122,4 +122,11 @@ which will expand to
\endverbatim \endverbatim
\htmlonly
<br/>
Go to the <a href="external.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -392,4 +392,10 @@ See <a href="https://github.com/michaeljones/breathe">the Breathe project</a> fo ...@@ -392,4 +392,10 @@ See <a href="https://github.com/michaeljones/breathe">the Breathe project</a> fo
a example that uses doxygen XML output from Python to bridge it with the a example that uses doxygen XML output from Python to bridge it with the
<a href="http://sphinx.pocoo.org/">Sphinx</a> document generator. <a href="http://sphinx.pocoo.org/">Sphinx</a> document generator.
\htmlonly
Go to the <a href="custcmd.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -133,15 +133,15 @@ that doxygen can generate: ...@@ -133,15 +133,15 @@ that doxygen can generate:
<code>diagrams_e.h</code> <code>diagrams_e.h</code>
\verbinclude diagrams_e.h \verbinclude diagrams_e.h
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/diagrams/html/index.html">here</a> Click <a href="$(DOXYGEN_DOCDIR)/examples/diagrams/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen<br/> for the corresponding HTML documentation that is generated by doxygen<br/>
(<code>EXTRACT_ALL</code> = <code>YES</code> is used here).<p> (<code>EXTRACT_ALL</code> = <code>YES</code> is used here).
\endhtmlonly \endhtmlonly
\htmlonly \htmlonly
Go to the <a href="preprocessing.html">next</a> section or return to the Go to the <a href="preprocessing.html">next</a> section or return to the
<a href="index.html">index</a>. <a href="index.html">index</a>.
\endhtmlonly \endhtmlonly
*/ */
......
...@@ -429,11 +429,6 @@ Since python looks more like Java than like C or C++, you should set ...@@ -429,11 +429,6 @@ Since python looks more like Java than like C or C++, you should set
config file. config file.
\htmlonly
Go to the <a href="lists.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
\subsection vhdlblocks Comment blocks in VHDL \subsection vhdlblocks Comment blocks in VHDL
For VHDL a comment normally start with "--". Doxygen will extract comments For VHDL a comment normally start with "--". Doxygen will extract comments
...@@ -554,10 +549,6 @@ Following is a example using doxygen style comments: ...@@ -554,10 +549,6 @@ Following is a example using doxygen style comments:
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
\htmlonly
Go to the <a href="lists.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
\section docstructure Anatomy of a comment block \section docstructure Anatomy of a comment block
......
...@@ -71,15 +71,19 @@ doxygen -w html header.html footer.html stylesheet.css <config_file> ...@@ -71,15 +71,19 @@ doxygen -w html header.html footer.html stylesheet.css <config_file>
a file named Doxyfile and process that. When this is also not found it a file named Doxyfile and process that. When this is also not found it
will used the default settings. will used the default settings.
<li>For LaTeX output, you can generate the first part of \c refman.tex <li>For LaTeX output, you can generate the first and last part of \c refman.tex
(see \ref cfg_latex_header "LATEX_HEADER") and the style sheet included (see \ref cfg_latex_header "LATEX_HEADER" and
by that header (normally <code>doxygen.sty</code>), using: \ref cfg_latex_footer "LATEX_FOOTER") and the style sheet included
by that header (normally <code>doxygen.sty</code>), using the following
command:
\verbatim \verbatim
doxygen -w latex header.tex doxygen.sty doxygen -w latex header.tex footer.tex doxygen.sty <config_file>
\endverbatim \endverbatim
If you need non-default options (for instance to use pdflatex) you need If you need non-default options (for instance to use extra latex packages)
to make a config file with those options set correctly and then specify you need to make a config file with those options set correctly and then specify
that config file as the third argument. that config file after the generated files (make a backup of the configuration
file first so you don't loose it in case you forget to specify one of the
output files).
<li>For RTF output, you can generate the default style sheet file (see <li>For RTF output, you can generate the default style sheet file (see
\ref cfg_rtf_stylesheet_file "RTF_STYLESHEET_FILE") using: \ref cfg_rtf_stylesheet_file "RTF_STYLESHEET_FILE") using:
\verbatim \verbatim
...@@ -103,4 +107,10 @@ doxygen -w rtf rtfstyle.cfg ...@@ -103,4 +107,10 @@ doxygen -w rtf rtfstyle.cfg
a file, use \c - for the file name. a file, use \c - for the file name.
</ul> </ul>
\htmlonly
Go to the <a href="doxywizard_usage.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -135,4 +135,10 @@ The GUI front-end has a menu with a couple of useful items ...@@ -135,4 +135,10 @@ The GUI front-end has a menu with a couple of useful items
You will be asked to confirm the action. You will be asked to confirm the action.
</dl> </dl>
\htmlonly
Go to the <a href="config.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -304,4 +304,10 @@ The fields for such an item have the following meaning: ...@@ -304,4 +304,10 @@ The fields for such an item have the following meaning:
These words should be wrapped in `<span class="hl">` and `</span>` tags to highlight them These words should be wrapped in `<span class="hl">` and `</span>` tags to highlight them
in the output. in the output.
\htmlonly
Go to the <a href="customize.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -113,4 +113,10 @@ members or classes belonging to the Qt toolkit, a link will be generated to ...@@ -113,4 +113,10 @@ members or classes belonging to the Qt toolkit, a link will be generated to
the Qt documentation. This is done independent of where this documentation the Qt documentation. This is done independent of where this documentation
is located! is located!
\htmlonly
Go to the <a href="doxygen_usage.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -199,11 +199,6 @@ Here Group1 is displayed as a subsection of the "Public Members". And ...@@ -199,11 +199,6 @@ Here Group1 is displayed as a subsection of the "Public Members". And
Group2 is a separate section because it contains members with Group2 is a separate section because it contains members with
different protection levels (i.e. public and protected). different protection levels (i.e. public and protected).
\htmlonly
Go to the <a href="formulas.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
\section subpaging Subpaging \section subpaging Subpaging
Information can be grouped into pages using the \ref cmdpage "\\page" and Information can be grouped into pages using the \ref cmdpage "\\page" and
......
...@@ -216,4 +216,11 @@ comments can be used: ...@@ -216,4 +216,11 @@ comments can be used:
/*! <!-- This is a comment with a comment block --> Visible text */ /*! <!-- This is a comment with a comment block --> Visible text */
\endverbatim \endverbatim
\htmlonly
<br/>
Go to the <a href="xmlcmds.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -194,5 +194,10 @@ Thanks go to: ...@@ -194,5 +194,10 @@ Thanks go to:
providing hours of great music to listen to while coding. providing hours of great music to listen to while coding.
<li>many, many others for suggestions, patches and bug reports. <li>many, many others for suggestions, patches and bug reports.
</ul> </ul>
\htmlonly
Go to the <a href="install.html">next</a> section.
\endhtmlonly
*/ */
...@@ -46,12 +46,12 @@ tools should be installed. ...@@ -46,12 +46,12 @@ tools should be installed.
<ul> <ul>
<li>Qt Software's GUI toolkit <li>Qt Software's GUI toolkit
<a href="http://qt.nokia.com/">Qt</A> <a href="http://qt-project.org/">Qt</A>
\addindex Qt \addindex Qt
version 4.3 or higher. version 4.3 or higher.
This is needed to build the GUI front-end doxywizard. This is needed to build the GUI front-end doxywizard.
<li>A \f$\mbox{\LaTeX}\f$ distribution: for instance <li>A \f$\mbox{\LaTeX}\f$ distribution: for instance
<a href="http://www.tug.org/interest.html#free">teTeX 1.0</a> <a href="http://www.tug.org/interest.html#free">TeX Live</a>
This is needed for generating LaTeX, Postscript, and PDF output. This is needed for generating LaTeX, Postscript, and PDF output.
<li><a href="http://www.graphviz.org/"> <li><a href="http://www.graphviz.org/">
the Graph visualization toolkit version 1.8.10 or higher</a> the Graph visualization toolkit version 1.8.10 or higher</a>
...@@ -536,7 +536,7 @@ install <a href="http://en.wikipedia.org/wiki/LaTeX">LaTeX</a> and ...@@ -536,7 +536,7 @@ install <a href="http://en.wikipedia.org/wiki/LaTeX">LaTeX</a> and
For LaTeX a number of distributions exists. Popular ones that should work with For LaTeX a number of distributions exists. Popular ones that should work with
doxygen are <a href="http://www.miktex.org">MikTex</a> doxygen are <a href="http://www.miktex.org">MikTex</a>
and <a href="http://www.xemtex.org">XemTex</a>. and <a href="http://www.tug.org/protext/">proTeXt</a>.
Ghostscript can be <a href="http://sourceforge.net/projects/ghostscript/">downloaded</a> Ghostscript can be <a href="http://sourceforge.net/projects/ghostscript/">downloaded</a>
from Sourceforge. from Sourceforge.
...@@ -616,16 +616,12 @@ features: ...@@ -616,16 +616,12 @@ features:
Doxygen was developed and tested under Linux &amp; MacOSX using the following Doxygen was developed and tested under Linux &amp; MacOSX using the following
open-source tools: open-source tools:
<ul> <ul>
<li>GCC version 3.3.6 (Linux) and 4.0.1 (MacOSX) <li>GCC version 4.6.3 (Linux) and 4.2.1 (MacOSX)
<li>GNU flex version 2.5.33 (Linux) and 2.5.4 (MacOSX) <li>GNU flex version 2.5.35
<li>GNU bison version 1.75 <li>GNU bison version 2.5 (Linux) and 2.3 (MacOSX)
<li>GNU make version 3.80 <li>GNU make version 3.81
<li>Perl version 5.8.1 <li>Perl version 5.12
<li>VIM version 6.2 <li>TeX Live 2009 (or later)
<li>Firefox 1.5
<li>Trolltech's tmake version 1.3 (included in the distribution)
<li>teTeX version 2.0.2
<li>CVS 1.12.12
</ul> </ul>
\htmlonly \htmlonly
......
...@@ -23,15 +23,15 @@ text fragments, generated by doxygen, can be produced in languages other ...@@ -23,15 +23,15 @@ 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.8.3), 39 languages Currently (version 1.8.3.1), 40 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,
Esperanto, Finnish, French, German, Greek, Hungarian, Indonesian, Esperanto, Finnish, French, German, Greek, Hungarian, Indonesian,
Italian, Japanese (+En), Korean (+En), Latvian, Lithuanian, Macedonian, Italian, Japanese (+En), Korean (+En), Latvian, Lithuanian,
Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, Macedonian, Norwegian, Persian, Polish, Portuguese, Romanian, Russian,
SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian, Serbian, SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish,
and Vietnamese.. Ukrainian, and Vietnamese..
The table of information related to the supported languages follows. The table of information related to the supported languages follows.
It is sorted by language alphabetically. The <b>Status</b> column It is sorted by language alphabetically. The <b>Status</b> column
...@@ -196,6 +196,12 @@ when the translator was updated. ...@@ -196,6 +196,12 @@ when the translator was updated.
<td>&nbsp;</td> <td>&nbsp;</td>
<td>English based</td> <td>English based</td>
</tr> </tr>
<tr bgcolor="#ffffff">
<td>Latvian</td>
<td>Lauris</td>
<td>lauris at nix.lv</td>
<td>up-to-date</td>
</tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Lithuanian</td> <td>Lithuanian</td>
<td>Tomas Simonaitis<br/>Mindaugas Radzius<br/>Aidas Berukstis<br/><span style="color: red; background-color: yellow">-- searching for the maintainer --</span></td> <td>Tomas Simonaitis<br/>Mindaugas Radzius<br/>Aidas Berukstis<br/><span style="color: red; background-color: yellow">-- searching for the maintainer --</span></td>
...@@ -288,9 +294,9 @@ when the translator was updated. ...@@ -288,9 +294,9 @@ when the translator was updated.
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Ukrainian</td> <td>Ukrainian</td>
<td>Olexij Tkatchenko<br/><span style="color: red; background-color: yellow">-- searching for the maintainer --</span></td> <td>Olexij Tkatchenko<br/>Petro Yermolenko</td>
<td><span style="color: brown">[resigned]</span><br/><span style="color: brown">[Please, try to help to find someone.]</span></td> <td><span style="color: brown">[resigned]</span><br/>python at i dot ua</td>
<td>1.4.1</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Vietnamese</td> <td>Vietnamese</td>
...@@ -309,7 +315,7 @@ when the translator was updated. ...@@ -309,7 +315,7 @@ when the translator was updated.
\latexonly \latexonly
\footnotesize \footnotesize
\begin{longtable}{|l|l|l|l|} \begin{longtable}{|l|l|l|l|}
\hline \hline
{\bf Language} & {\bf Maintainer} & {\bf Contact address} & {\bf Status} \\ {\bf Language} & {\bf Maintainer} & {\bf Contact address} & {\bf Status} \\
\hline \hline
...@@ -377,6 +383,8 @@ when the translator was updated. ...@@ -377,6 +383,8 @@ when the translator was updated.
\hline \hline
KoreanEn & see the Korean language & {\tt\tiny ~} & English based \\ KoreanEn & see the Korean language & {\tt\tiny ~} & English based \\
\hline \hline
Latvian & Lauris & {\tt\tiny lauris at nix.lv} & up-to-date \\
\hline
Lithuanian & Tomas Simonaitis & {\tt\tiny [unreachable] haden at homelan dot lt} & 1.4.6 \\ Lithuanian & Tomas Simonaitis & {\tt\tiny [unreachable] haden at homelan dot lt} & 1.4.6 \\
~ & Mindaugas Radzius & {\tt\tiny [unreachable] mindaugasradzius at takas dot lt} & ~ \\ ~ & Mindaugas Radzius & {\tt\tiny [unreachable] mindaugasradzius at takas dot lt} & ~ \\
~ & Aidas Berukstis & {\tt\tiny [unreachable] aidasber at takas dot lt} & ~ \\ ~ & Aidas Berukstis & {\tt\tiny [unreachable] aidasber at takas dot lt} & ~ \\
...@@ -417,8 +425,8 @@ when the translator was updated. ...@@ -417,8 +425,8 @@ when the translator was updated.
\hline \hline
Turkish & Emin Ilker Cetinbas & {\tt\tiny niw3 at yahoo dot com} & 1.7.5 \\ Turkish & Emin Ilker Cetinbas & {\tt\tiny niw3 at yahoo dot com} & 1.7.5 \\
\hline \hline
Ukrainian & Olexij Tkatchenko & {\tt\tiny [resigned] olexij at tkatchenko dot com} & 1.4.1 \\ Ukrainian & Olexij Tkatchenko & {\tt\tiny [resigned] olexij at tkatchenko dot com} & up-to-date \\
~ & -- searching for the maintainer -- & {\tt\tiny [Please, try to help to find someone.]} & ~ \\ ~ & Petro Yermolenko & {\tt\tiny python at i dot ua} & ~ \\
\hline \hline
Vietnamese & Dang Minh Tuan & {\tt\tiny tuanvietkey at gmail dot com} & 1.6.0 \\ Vietnamese & Dang Minh Tuan & {\tt\tiny tuanvietkey at gmail dot com} & 1.6.0 \\
\hline \hline
......
...@@ -157,7 +157,7 @@ Emin Ilker Cetinbas: niw3 at yahoo dot com ...@@ -157,7 +157,7 @@ Emin Ilker Cetinbas: niw3 at yahoo dot com
TranslatorUkrainian TranslatorUkrainian
Olexij Tkatchenko: [resigned] olexij at tkatchenko dot com Olexij Tkatchenko: [resigned] olexij at tkatchenko dot com
-- searching for the maintainer --: [Please, try to help to find someone.] Petro Yermolenko: python at i dot ua
TranslatorVietnamese TranslatorVietnamese
Dang Minh Tuan: tuanvietkey at gmail dot com Dang Minh Tuan: tuanvietkey at gmail dot com
......
...@@ -61,4 +61,10 @@ The following output formats are \e indirectly supported by doxygen: ...@@ -61,4 +61,10 @@ The following output formats are \e indirectly supported by doxygen:
\ref cfg_pdf_hyperlinks "PDF_HYPERLINKS". \ref cfg_pdf_hyperlinks "PDF_HYPERLINKS".
</dl> </dl>
\htmlonly
Go to the <a href="searching.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -190,4 +190,10 @@ you can look at the Perl scripts generated by Doxygen (such as ...@@ -190,4 +190,10 @@ you can look at the Perl scripts generated by Doxygen (such as
<b>doxylatex.pl</b> or <b>doxytemplate-latex.pl</b>) to get an idea on <b>doxylatex.pl</b> or <b>doxytemplate-latex.pl</b>) to get an idea on
how to use <b>DoxyModel.pm</b>. how to use <b>DoxyModel.pm</b>.
\htmlonly
Go to the <a href="perlmod_tree.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -374,4 +374,10 @@ The meaning of each node in the documentation tree is as follows: ...@@ -374,4 +374,10 @@ The meaning of each node in the documentation tree is as follows:
</ul> </ul>
</ul> </ul>
\htmlonly
Go to the <a href="arch.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -96,6 +96,15 @@ PREDEFINED = __declspec(x)= ...@@ -96,6 +96,15 @@ PREDEFINED = __declspec(x)=
This will make sure the __declspec(dllexport) is removed before doxygen This will make sure the __declspec(dllexport) is removed before doxygen
parses the source code. parses the source code.
Similar settings can be used for removing __attribute__ expressions from the input:
\verbatim
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = __attribute__(x)=
\endverbatim
For a more complex example, suppose you have the following obfuscated For a more complex example, suppose you have the following obfuscated
code fragment of an abstract base class called \c IUnknown: code fragment of an abstract base class called \c IUnknown:
...@@ -256,7 +265,7 @@ preprocessing has been done (Hint: set <code>QUIET = YES</code> and ...@@ -256,7 +265,7 @@ preprocessing has been done (Hint: set <code>QUIET = YES</code> and
output). output).
\htmlonly \htmlonly
Go to the <a href="external.html">next</a> section or return to the Go to the <a href="autolink.html">next</a> section or return to the
<a href="index.html">index</a>. <a href="index.html">index</a>.
\endhtmlonly \endhtmlonly
......
...@@ -185,4 +185,10 @@ has its own advantages and disadvantages: ...@@ -185,4 +185,10 @@ has its own advantages and disadvantages:
Qt compressed help or CHM output, but it does require that Eclipse is Qt compressed help or CHM output, but it does require that Eclipse is
installed and running. installed and running.
\htmlonly
Go to the <a href="extsearch.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
This diff is collapsed.
(1.8.3) (1.8.3.1)
Doxygen supports the following 39 languages (sorted alphabetically): Doxygen supports the following 40 languages (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,
Esperanto, Finnish, French, German, Greek, Hungarian, Indonesian, Esperanto, Finnish, French, German, Greek, Hungarian, Indonesian,
Italian, Japanese (+En), Korean (+En), Lithuanian, Macedonian, Italian, Japanese (+En), Korean (+En), Latvian, Lithuanian,
Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, Macedonian, Norwegian, Persian, Polish, Portuguese, Romanian, Russian,
SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian, Serbian, SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish,
and Vietnamese. Ukrainian, and Vietnamese.
Of them, 8 translators are up-to-date, 31 translators are based on Of them, 10 translators are up-to-date, 30 translators are based on
some adapter class, and 2 are English based. some adapter class, and 2 are English based.
---------------------------------------------------------------------- ----------------------------------------------------------------------
...@@ -25,8 +25,10 @@ still may be some details listed even for them: ...@@ -25,8 +25,10 @@ still may be some details listed even for them:
TranslatorEsperanto TranslatorEsperanto
TranslatorGerman TranslatorGerman
TranslatorGreek TranslatorGreek
TranslatorLatvian -- Reimplementation using UTF-8 suggested.
TranslatorSlovak TranslatorSlovak
TranslatorSpanish TranslatorSpanish
TranslatorUkrainian
---------------------------------------------------------------------- ----------------------------------------------------------------------
The following translator classes need some maintenance (the most The following translator classes need some maintenance (the most
...@@ -96,9 +98,6 @@ must be implemented to become up-to-date: ...@@ -96,9 +98,6 @@ must be implemented to become up-to-date:
TranslatorArabic 1.4.6 49 methods to implement (20 %) TranslatorArabic 1.4.6 49 methods to implement (20 %)
Note: Reimplementation using UTF-8 suggested. Note: Reimplementation using UTF-8 suggested.
TranslatorUkrainian 1.4.1 50 methods to implement (20 %)
Note: Reimplementation using UTF-8 suggested.
---------------------------------------------------------------------- ----------------------------------------------------------------------
The following translator classes derive directly from the The following translator classes derive directly from the
...@@ -629,6 +628,12 @@ TranslatorKoreanEn (TranslatorEnglish) 237 methods to implement (97 %) ...@@ -629,6 +628,12 @@ TranslatorKoreanEn (TranslatorEnglish) 237 methods to implement (97 %)
virtual QCString latexLanguageSupportCommand() virtual QCString latexLanguageSupportCommand()
TranslatorLatvian (Translator)
-----------------
Implements 242 of the required methods (100 %).
TranslatorLithuanian (TranslatorAdapter_1_4_6) 50 methods to implement (20 %) TranslatorLithuanian (TranslatorAdapter_1_4_6) 50 methods to implement (20 %)
-------------------- --------------------
...@@ -1121,77 +1126,6 @@ TranslatorTurkish (TranslatorAdapter_1_7_5) 17 methods to implement (7 %) ...@@ -1121,77 +1126,6 @@ TranslatorTurkish (TranslatorAdapter_1_7_5) 17 methods to implement (7 %)
virtual QCString trInstanceMethods() virtual QCString trInstanceMethods()
TranslatorUkrainian (TranslatorAdapter_1_4_1) 50 methods to implement (20 %)
-------------------
Implements 192 of the required methods (79 %).
Missing methods (should be implemented):
virtual QCString trDetailLevel()
virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
virtual QCString trSearching()
virtual QCString trTemplateParameters()
virtual QCString trOverloadText()
virtual QCString trNoMatches()
virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single)
virtual QCString trLoading()
virtual QCString trSubprograms()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
virtual QCString trGlobalNamespace()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
virtual QCString trDesignOverview()
virtual QCString trTypeDocumentation()
virtual QCString trAndMore(const QCString & number)
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
virtual QCString trDirDepGraph(const char * name)
virtual QCString trModulesIndex()
virtual QCString trDirRelation(const char * name)
virtual QCString trMethodDocumentation()
virtual QCString trCompoundListFortran()
virtual QCString trDataTypes()
virtual QCString trEnumReference(const char * name)
virtual QCString trInheritedFrom(const char * members, const char * what)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
virtual QCString trDirDependency(const char * name)
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
virtual QCString trEnumGeneratedFromFiles(bool single)
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trCallerGraph()
virtual QCString trExtendsClass()
virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate)
virtual QCString trType(bool first_capital, bool singular)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
virtual QCString trInstanceMethods()
Obsolete methods (should be removed, never used):
virtual QCString trHeaderFilesDescription()
virtual QCString trField(bool first_capital, bool singular)
virtual QCString trPackageDocumentation()
virtual QCString trSources()
virtual QCString trReimplementedForInternalReasons()
virtual QCString trInterfaces()
virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations()
virtual QCString trNoDescriptionAvailable()
TranslatorVietnamese (TranslatorAdapter_1_6_0) 26 methods to implement (10 %) TranslatorVietnamese (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
-------------------- --------------------
......
...@@ -134,8 +134,10 @@ one file please tar or zip everything, so I only have to save and download ...@@ -134,8 +134,10 @@ one file please tar or zip everything, so I only have to save and download
one file. one file.
\htmlonly \htmlonly
Return to the <a href="index.html">index</a>. Go to the <a href="features.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly \endhtmlonly
*/ */
...@@ -99,5 +99,11 @@ class Engine ...@@ -99,5 +99,11 @@ class Engine
} }
\endcode \endcode
\htmlonly
Go to the <a href="langhowto.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/ */
...@@ -38,93 +38,91 @@ clean: ...@@ -38,93 +38,91 @@ clean:
memgrp docstring pyexample mux manual dbusxml tclexample memgrp docstring pyexample mux manual dbusxml tclexample
class/html/index.html: class.h class.cfg class/html/index.html: class.h class.cfg
$(DOXYGEN)/bin/doxygen class.cfg "$(DOXYGEN)/bin/doxygen" class.cfg
define/html/index.html: define.h define.cfg define/html/index.html: define.h define.cfg
$(DOXYGEN)/bin/doxygen define.cfg "$(DOXYGEN)/bin/doxygen" define.cfg
enum/html/index.html: enum.h enum.cfg enum/html/index.html: enum.h enum.cfg
$(DOXYGEN)/bin/doxygen enum.cfg "$(DOXYGEN)/bin/doxygen" enum.cfg
file/html/index.html: file.h file.cfg file/html/index.html: file.h file.cfg
$(DOXYGEN)/bin/doxygen file.cfg "$(DOXYGEN)/bin/doxygen" file.cfg
func/html/index.html: func.h func.cfg func/html/index.html: func.h func.cfg
$(DOXYGEN)/bin/doxygen func.cfg "$(DOXYGEN)/bin/doxygen" func.cfg
page/html/index.html: page.doc page.cfg page/html/index.html: page.doc page.cfg
$(DOXYGEN)/bin/doxygen page.cfg "$(DOXYGEN)/bin/doxygen" page.cfg
relates/html/index.html: relates.cpp relates.cfg relates/html/index.html: relates.cpp relates.cfg
$(DOXYGEN)/bin/doxygen relates.cfg "$(DOXYGEN)/bin/doxygen" relates.cfg
author/html/index.html: author.cpp author.cfg author/html/index.html: author.cpp author.cfg
$(DOXYGEN)/bin/doxygen author.cfg "$(DOXYGEN)/bin/doxygen" author.cfg
par/html/index.html: par.cpp par.cfg par/html/index.html: par.cpp par.cfg
$(DOXYGEN)/bin/doxygen par.cfg "$(DOXYGEN)/bin/doxygen" par.cfg
overload/html/index.html: overload.cpp overload.cfg overload/html/index.html: overload.cpp overload.cfg
$(DOXYGEN)/bin/doxygen overload.cfg "$(DOXYGEN)/bin/doxygen" overload.cfg
example/html/index.html: example.cpp example_test.cpp example.cfg example/html/index.html: example.cpp example_test.cpp example.cfg
$(DOXYGEN)/bin/doxygen example.cfg "$(DOXYGEN)/bin/doxygen" example.cfg
include/html/index.html: include.cpp example_test.cpp include.cfg include/html/index.html: include.cpp example_test.cpp include.cfg
$(DOXYGEN)/bin/doxygen include.cfg "$(DOXYGEN)/bin/doxygen" include.cfg
qtstyle/html/index.html: qtstyle.cpp qtstyle.cfg qtstyle/html/index.html: qtstyle.cpp qtstyle.cfg
$(DOXYGEN)/bin/doxygen qtstyle.cfg "$(DOXYGEN)/bin/doxygen" qtstyle.cfg
jdstyle/html/index.html: jdstyle.cpp jdstyle.cfg jdstyle/html/index.html: jdstyle.cpp jdstyle.cfg
$(DOXYGEN)/bin/doxygen jdstyle.cfg "$(DOXYGEN)/bin/doxygen" jdstyle.cfg
structcmd/html/index.html: structcmd.h structcmd.cfg structcmd/html/index.html: structcmd.h structcmd.cfg
$(DOXYGEN)/bin/doxygen structcmd.cfg "$(DOXYGEN)/bin/doxygen" structcmd.cfg
autolink/html/index.html: autolink.cpp autolink.cfg autolink/html/index.html: autolink.cpp autolink.cfg
$(DOXYGEN)/bin/doxygen autolink.cfg "$(DOXYGEN)/bin/doxygen" autolink.cfg
tag/html/index.html: tag.cpp tag.cfg example/html/index.html tag/html/index.html: tag.cpp tag.cfg example/html/index.html
$(DOXYGEN)/bin/doxygen tag.cfg "$(DOXYGEN)/bin/doxygen" tag.cfg
# sed -e "1,1s#perl#$(PERL)#g" tag/html/installdox >tag/html/installdox.perl
# cd tag/html ; $(PERL) installdox.perl -lexample.tag@../../example/html
restypedef/html/index.html: restypedef.cpp restypedef.cfg restypedef/html/index.html: restypedef.cpp restypedef.cfg
$(DOXYGEN)/bin/doxygen restypedef.cfg "$(DOXYGEN)/bin/doxygen" restypedef.cfg
afterdoc/html/index.html: afterdoc.h afterdoc.cfg afterdoc/html/index.html: afterdoc.h afterdoc.cfg
$(DOXYGEN)/bin/doxygen afterdoc.cfg "$(DOXYGEN)/bin/doxygen" afterdoc.cfg
template/html/index.html: templ.cpp templ.cfg template/html/index.html: templ.cpp templ.cfg
$(DOXYGEN)/bin/doxygen templ.cfg "$(DOXYGEN)/bin/doxygen" templ.cfg
group/html/index.html: group.cpp group.cfg group/html/index.html: group.cpp group.cfg
$(DOXYGEN)/bin/doxygen group.cfg "$(DOXYGEN)/bin/doxygen" group.cfg
memgrp/html/index.html: memgrp.cpp memgrp.cfg memgrp/html/index.html: memgrp.cpp memgrp.cfg
$(DOXYGEN)/bin/doxygen memgrp.cfg "$(DOXYGEN)/bin/doxygen" memgrp.cfg
pyexample/html/index.html: pyexample.py pyexample.cfg pyexample/html/index.html: pyexample.py pyexample.cfg
$(DOXYGEN)/bin/doxygen pyexample.cfg "$(DOXYGEN)/bin/doxygen" pyexample.cfg
tclexample/html/index.html: tclexample.tcl tclexample.cfg tclexample/html/index.html: tclexample.tcl tclexample.cfg
$(DOXYGEN)/bin/doxygen tclexample.cfg "$(DOXYGEN)/bin/doxygen" tclexample.cfg
mux/html/index.html: mux.vhdl mux.cfg mux/html/index.html: mux.vhdl mux.cfg
$(DOXYGEN)/bin/doxygen mux.cfg "$(DOXYGEN)/bin/doxygen" mux.cfg
manual/html/index.html: manual.c manual.cfg manual/html/index.html: manual.c manual.cfg
$(DOXYGEN)/bin/doxygen manual.cfg "$(DOXYGEN)/bin/doxygen" manual.cfg
docstring/html/index.html: docstring.py docstring.cfg docstring/html/index.html: docstring.py docstring.cfg
$(DOXYGEN)/bin/doxygen docstring.cfg "$(DOXYGEN)/bin/doxygen" docstring.cfg
#dbusxml/html/index.html: dbusxml.xml dbusxml.cfg #dbusxml/html/index.html: dbusxml.xml dbusxml.cfg
# $(DOXYGEN)/bin/doxygen dbusxml.cfg # $(DOXYGEN)/bin/doxygen dbusxml.cfg
diagrams/html/index.html: diagrams_a.h diagrams_b.h diagrams_c.h diagrams_d.h diagrams_e.h diagrams.cfg diagrams/html/index.html: diagrams_a.h diagrams_b.h diagrams_c.h diagrams_d.h diagrams_e.h diagrams.cfg
ifneq ($(HAVE_DOT),) ifneq ($(HAVE_DOT),)
$(DOXYGEN)/bin/doxygen diagrams.cfg "$(DOXYGEN)/bin/doxygen" diagrams.cfg
endif endif
...@@ -50,7 +50,7 @@ LOOKUP_CACHE_SIZE = 0 ...@@ -50,7 +50,7 @@ LOOKUP_CACHE_SIZE = 0
# Build related configuration options # Build related configuration options
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
EXTRACT_ALL = YES EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO EXTRACT_PRIVATE = YES
EXTRACT_PACKAGE = NO EXTRACT_PACKAGE = NO
EXTRACT_STATIC = YES EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_CLASSES = YES
...@@ -120,13 +120,14 @@ USE_MDFILE_AS_MAINPAGE = ...@@ -120,13 +120,14 @@ USE_MDFILE_AS_MAINPAGE =
# configuration options related to source browsing # configuration options related to source browsing
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
SOURCE_BROWSER = YES SOURCE_BROWSER = YES
INLINE_SOURCES = NO INLINE_SOURCES = YES
STRIP_CODE_COMMENTS = YES STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO USE_HTAGS = NO
VERBATIM_HEADERS = YES VERBATIM_HEADERS = YES
CLANG_ASSISTED_PARSING = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the alphabetical class index # configuration options related to the alphabetical class index
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
...@@ -228,7 +229,7 @@ MAN_LINKS = NO ...@@ -228,7 +229,7 @@ MAN_LINKS = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the XML output # configuration options related to the XML output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_XML = YES GENERATE_XML = NO
XML_OUTPUT = xml XML_OUTPUT = xml
XML_SCHEMA = XML_SCHEMA =
XML_DTD = XML_DTD =
...@@ -236,7 +237,7 @@ XML_PROGRAMLISTING = YES ...@@ -236,7 +237,7 @@ XML_PROGRAMLISTING = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the DOCBOOK output # configuration options related to the DOCBOOK output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_DOCBOOK = YES GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT = docbook DOCBOOK_OUTPUT = docbook
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output # configuration options for the AutoGen Definitions output
...@@ -258,7 +259,7 @@ EXPAND_ONLY_PREDEF = YES ...@@ -258,7 +259,7 @@ EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES SEARCH_INCLUDES = YES
INCLUDE_PATH = INCLUDE_PATH =
INCLUDE_FILE_PATTERNS = INCLUDE_FILE_PATTERNS =
PREDEFINED = PREDEFINED = Q_EXPORT=
EXPAND_AS_DEFINED = EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES SKIP_FUNCTION_MACROS = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
......
...@@ -88,6 +88,12 @@ Q_EXPORT void *qmemmove( void *dst, const void *src, uint len ); ...@@ -88,6 +88,12 @@ Q_EXPORT void *qmemmove( void *dst, const void *src, uint len );
#define memmove(s1,s2,n) qmemmove((s1),(s2),(n)) #define memmove(s1,s2,n) qmemmove((s1),(s2),(n))
#endif #endif
#if defined(_OS_WIN32_)
#define qsnprintf _snprintf
#else
#define qsnprintf snprintf
#endif
Q_EXPORT char *qstrdup( const char * ); Q_EXPORT char *qstrdup( const char * );
Q_EXPORT inline uint cstrlen( const char *str ) Q_EXPORT inline uint cstrlen( const char *str )
......
...@@ -18,6 +18,10 @@ ...@@ -18,6 +18,10 @@
#ifndef _BUFSTR_H #ifndef _BUFSTR_H
#define _BUFSTR_H #define _BUFSTR_H
#include <qglobal.h>
#include <qcstring.h>
#include <stdlib.h>
/*! @brief Buffer used to store strings /*! @brief Buffer used to store strings
* *
* This buffer is used append characters and strings. It will automatically * This buffer is used append characters and strings. It will automatically
......
...@@ -88,11 +88,19 @@ static QCString getListOfBibFiles(const QCString &sep,bool namesOnly) ...@@ -88,11 +88,19 @@ static QCString getListOfBibFiles(const QCString &sep,bool namesOnly)
void CiteDict::writeLatexBibliography(FTextStream &t) void CiteDict::writeLatexBibliography(FTextStream &t)
{ {
if (m_entries.count()==0) return; if (m_entries.isEmpty())
return;
QCString style = Config_getString("LATEX_BIB_STYLE"); QCString style = Config_getString("LATEX_BIB_STYLE");
if (style.isEmpty()) style="plain"; if (style.isEmpty())
t << "\\newpage \\bibliographystyle{" << style << "}" << endl; style="plain";
t << "\\bibliography{" << getListOfBibFiles(",",TRUE) << "}" << endl; t << "% Bibliography\n"
"\\newpage\n"
"\\phantomsection\n"
"\\addcontentsline{toc}{part}{" << theTranslator->trCiteReferences() << "}\n"
"\\bibliographystyle{" << style << "}\n"
"\\bibliography{" << getListOfBibFiles(",",TRUE) << "}\n"
"\n";
} }
void CiteDict::insert(const char *label) void CiteDict::insert(const char *label)
......
This diff is collapsed.
#ifndef CLANGPARSER_H
#define CLANGPARSER_H
#include <qcstring.h>
class OutputList;
class FileDef;
class ClangParser
{
public:
static ClangParser *instance();
void start(const char *fileName);
void finish();
QCString lookup(uint line,const char *symbol);
void writeSources(OutputList &ol,FileDef *fd);
private:
void linkIdentifier(OutputList &ol,FileDef *fd,
uint &line,uint &column,
const char *text,int tokenIndex);
void linkMacro(OutputList &ol,FileDef *fd,
uint &line,uint &column,
const char *text);
void linkInclude(OutputList &ol,FileDef *fd,
uint &line,uint &column,
const char *text);
class Private;
Private *p;
ClangParser();
virtual ~ClangParser();
static ClangParser *s_instance;
};
#endif
...@@ -3503,8 +3503,9 @@ ClassDef *ClassDef::insertTemplateInstance(const QCString &fileName, ...@@ -3503,8 +3503,9 @@ ClassDef *ClassDef::insertTemplateInstance(const QCString &fileName,
if (templateClass==0) if (templateClass==0)
{ {
Debug::print(Debug::Classes,0," New template instance class `%s'`%s'\n",name().data(),templSpec.data()); Debug::print(Debug::Classes,0," New template instance class `%s'`%s'\n",name().data(),templSpec.data());
QCString tcname = removeRedundantWhiteSpace(localName()+templSpec);
templateClass = new ClassDef( templateClass = new ClassDef(
fileName,startLine,startColumn,localName()+templSpec,ClassDef::Class); fileName,startLine,startColumn,tcname,ClassDef::Class);
templateClass->setTemplateMaster(this); templateClass->setTemplateMaster(this);
templateClass->setOuterScope(getOuterScope()); templateClass->setOuterScope(getOuterScope());
templateClass->setHidden(isHidden()); templateClass->setHidden(isHidden());
...@@ -3525,7 +3526,8 @@ ClassDef *ClassDef::getVariableInstance(const char *templSpec) ...@@ -3525,7 +3526,8 @@ ClassDef *ClassDef::getVariableInstance(const char *templSpec)
if (templateClass==0) if (templateClass==0)
{ {
Debug::print(Debug::Classes,0," New template variable instance class `%s'`%s'\n",qPrint(name()),qPrint(templSpec)); Debug::print(Debug::Classes,0," New template variable instance class `%s'`%s'\n",qPrint(name()),qPrint(templSpec));
templateClass = new ClassDef("<code>",1,1,name()+templSpec, QCString tcname = removeRedundantWhiteSpace(name()+templSpec);
templateClass = new ClassDef("<code>",1,1,tcname,
ClassDef::Class,0,0,FALSE); ClassDef::Class,0,0,FALSE);
templateClass->addMembersToTemplateInstance( this, templSpec ); templateClass->addMembersToTemplateInstance( this, templSpec );
templateClass->setTemplateMaster(this); templateClass->setTemplateMaster(this);
...@@ -4164,13 +4166,13 @@ void ClassDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QC ...@@ -4164,13 +4166,13 @@ void ClassDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QC
//static bool optimizeVhdl = Config_getBool("OPTIMIZE_OUTPUT_VHDL"); //static bool optimizeVhdl = Config_getBool("OPTIMIZE_OUTPUT_VHDL");
if (ml) if (ml)
{ {
ml->writeDeclarations(ol,this,0,0,0,title,subTitle,FALSE,showInline,inheritedFrom); ml->writeDeclarations(ol,this,0,0,0,title,subTitle,definitionType(),FALSE,showInline,inheritedFrom);
if (lt2!=-1) if (lt2!=-1)
{ {
MemberList * ml2 = getMemberList((MemberListType)lt2); MemberList * ml2 = getMemberList((MemberListType)lt2);
if (ml2) if (ml2)
{ {
ml2->writeDeclarations(ol,this,0,0,0,0,0,FALSE,showInline,inheritedFrom); ml2->writeDeclarations(ol,this,0,0,0,0,0,definitionType(),FALSE,showInline,inheritedFrom);
} }
} }
} }
...@@ -4226,7 +4228,7 @@ void ClassDef::writePlainMemberDeclaration(OutputList &ol, ...@@ -4226,7 +4228,7 @@ void ClassDef::writePlainMemberDeclaration(OutputList &ol,
if (ml) if (ml)
{ {
ml->setInGroup(inGroup); ml->setInGroup(inGroup);
ml->writePlainDeclarations(ol,this,0,0,0,inheritedFrom,inheritId); ml->writePlainDeclarations(ol,this,0,0,0,definitionType(),inheritedFrom,inheritId);
} }
} }
......
...@@ -72,6 +72,7 @@ class ClassDef : public Definition ...@@ -72,6 +72,7 @@ class ClassDef : public Definition
* \param startColumn column number where the definition of this compound * \param startColumn column number where the definition of this compound
* starts. * starts.
* \param name the name of this compound (including scope) * \param name the name of this compound (including scope)
* \param symId unique Id for this symbol
* \param ct the kind of Compound * \param ct the kind of Compound
* \param ref the tag file from which this compound is extracted * \param ref the tag file from which this compound is extracted
* or 0 if the compound doesn't come from a tag file * or 0 if the compound doesn't come from a tag file
......
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
class CodeOutputInterface; class CodeOutputInterface;
class FileDef; class FileDef;
class MemberDef; class MemberDef;
class QCString;
class Definition;
void parseCCode(CodeOutputInterface &,const char *,const QCString &, void parseCCode(CodeOutputInterface &,const char *,const QCString &,
bool ,const char *,FileDef *fd, bool ,const char *,FileDef *fd,
......
This diff is collapsed.
...@@ -341,7 +341,8 @@ void replaceComment(int offset); ...@@ -341,7 +341,8 @@ void replaceComment(int offset);
<Scan>\n { /* new line */ <Scan>\n { /* new line */
copyToOutput(yytext,(int)yyleng); copyToOutput(yytext,(int)yyleng);
} }
<Scan>("//!"|"///"[/]*)/.*\n[ \t]*"//"[\/!][^\/] { /* start C++ style special comment block */ <Scan>"//!"/.*\n[ \t]*"//"[\/!][^\/] | /* start C++ style special comment block */
<Scan>("///"[/]*)/[^/].*\n[ \t]*"//"[\/!][^\/] { /* start C++ style special comment block */
if (g_mlBrief) if (g_mlBrief)
{ {
REJECT; // bail out if we do not need to convert REJECT; // bail out if we do not need to convert
......
...@@ -1188,11 +1188,23 @@ RCSTAG "$"{ID}":"[^\n$]+"$" ...@@ -1188,11 +1188,23 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
{ {
// see bug 613024, we need to put the newlines after ending the XRef section. // see bug 613024, we need to put the newlines after ending the XRef section.
setOutput(OutputDoc); setOutput(OutputDoc);
addOutput("\n\n"); int i;
for (i=0;i<yyleng;)
{
if (yytext[i]=='\n') addOutput('\n'),i++;
else if (strcmp(yytext+i,"\\_linebr")==0) addOutput('\n'),i+=8;
else i++;
}
} }
else if (inContext!=OutputBrief) else if (inContext!=OutputBrief)
{ {
addOutput("\n\n"); int i;
for (i=0;i<yyleng;)
{
if (yytext[i]=='\n') addOutput('\n'),i++;
else if (strcmp(yytext+i,"\\_linebr")==0) addOutput('\n'),i+=8;
else i++;
}
setOutput(OutputDoc); setOutput(OutputDoc);
} }
else // inContext==OutputBrief else // inContext==OutputBrief
......
...@@ -49,9 +49,9 @@ The default language is English, other supported languages are: ...@@ -49,9 +49,9 @@ The default language is English, other supported languages are:
Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian, Persian, messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian,
Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Persian, Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic,
Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
'> '>
<value name='Afrikaans'/> <value name='Afrikaans'/>
<value name='Arabic'/> <value name='Arabic'/>
...@@ -262,10 +262,10 @@ can mix doxygen, HTML, and XML commands with Markdown formatting. ...@@ -262,10 +262,10 @@ can mix doxygen, HTML, and XML commands with Markdown formatting.
Disable only in case of backward compatibilities issues. Disable only in case of backward compatibilities issues.
' defval='1'/> ' defval='1'/>
<option type='bool' id='AUTOLINK_SUPPORT' docs=' <option type='bool' id='AUTOLINK_SUPPORT' docs='
When enabled doxygen tries to link words that correspond to documented classes, When enabled doxygen tries to link words that correspond to documented
or namespaces to their corresponding documentation. Such a link can be classes, or namespaces to their corresponding documentation. Such a link can
prevented in individual cases by by putting a % sign in front of the word or be prevented in individual cases by by putting a % sign in front of the word
globally by setting AUTOLINK_SUPPORT to NO. or globally by setting AUTOLINK_SUPPORT to NO.
' defval='1'/> ' defval='1'/>
<option type='bool' id='BUILTIN_STL_SUPPORT' docs=' <option type='bool' id='BUILTIN_STL_SUPPORT' docs='
If you use STL classes (i.e. std::string, std::vector, etc.) but do not want If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
...@@ -736,8 +736,10 @@ invoke to filter for each input file. Doxygen will invoke the filter program ...@@ -736,8 +736,10 @@ invoke to filter for each input file. Doxygen will invoke the filter program
by executing (via popen()) the command &lt;filter&gt; &lt;input-file&gt;, where &lt;filter&gt; by executing (via popen()) the command &lt;filter&gt; &lt;input-file&gt;, where &lt;filter&gt;
is the value of the INPUT_FILTER tag, and &lt;input-file&gt; is the name of an is the value of the INPUT_FILTER tag, and &lt;input-file&gt; is the name of an
input file. Doxygen will then use the output that the filter program writes input file. Doxygen will then use the output that the filter program writes
to standard output. If FILTER_PATTERNS is specified, this tag will be to standard output. If FILTER_PATTERNS is specified, this tag will be ignored.
ignored. Note that the filter must not add or remove lines; it is applied before the
code is scanned, but not when the output code is generated. If lines are added
or removed, the anchors will not be placed correctly.
' defval=''/> ' defval=''/>
<option type='list' id='FILTER_PATTERNS' format='string' docs=' <option type='list' id='FILTER_PATTERNS' format='string' docs='
The FILTER_PATTERNS tag can be used to specify filters on a per file pattern The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
...@@ -762,9 +764,9 @@ FILTER_SOURCE_FILES is enabled. ...@@ -762,9 +764,9 @@ FILTER_SOURCE_FILES is enabled.
' depends='FILTER_SOURCE_FILES'/> ' depends='FILTER_SOURCE_FILES'/>
<option type='string' id='USE_MDFILE_AS_MAINPAGE' format='string' docs=' <option type='string' id='USE_MDFILE_AS_MAINPAGE' format='string' docs='
If the USE_MD_FILE_AS_MAINPAGE tag refers to the name of a markdown file that If the USE_MD_FILE_AS_MAINPAGE tag refers to the name of a markdown file that
is part of the input, its contents will be placed on the main page (index.html). is part of the input, its contents will be placed on the main page
This can be useful if you have a project on for instance GitHub and want reuse (index.html). This can be useful if you have a project on for instance GitHub
the introduction page also for the doxygen output. and want reuse the introduction page also for the doxygen output.
' defval=''/> ' defval=''/>
</group> </group>
<group name='Source Browser' docs='configuration options related to source browsing'> <group name='Source Browser' docs='configuration options related to source browsing'>
...@@ -811,6 +813,18 @@ If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen ...@@ -811,6 +813,18 @@ If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
will generate a verbatim copy of the header file for each class for will generate a verbatim copy of the header file for each class for
which an include is specified. Set to NO to disable this. which an include is specified. Set to NO to disable this.
' defval='1'/> ' defval='1'/>
<option type='bool' id='CLANG_ASSISTED_PARSING' setting='USE_LIBCLANG' docs='
If CLANG_ASSISTED_PARSING is set to YES, then doxygen will use the clang parser
for better parsing at the cost of reduced performance. This can be particularly
helpful with template rich C++ code for which doxygen&apos;s built-in
parser lacks the necessairy type information.
' defval='0'/>
<option type='string' id='CLANG_OPTIONS' settings='USE_LIBCLANG' docs='
If clang assisted parsing is enabled you can provide the compiler with command
line options that you would normally use when invoking the compiler. Note that
the include paths will be set by doxygen based on the files and directory
specified at INPUT and INCLUDE_PATH.
' defval='' depends='CLANG_ASSISTED_PARSING'/>
</group> </group>
<group name='Index' docs='configuration options related to the alphabetical class index'> <group name='Index' docs='configuration options related to the alphabetical class index'>
<option type='bool' id='ALPHABETICAL_INDEX' docs=' <option type='bool' id='ALPHABETICAL_INDEX' docs='
...@@ -1163,8 +1177,8 @@ script for searching. Instead the search results are written to an XML file ...@@ -1163,8 +1177,8 @@ script for searching. Instead the search results are written to an XML file
which needs to be processed by an external indexer. Doxygen will invoke an which needs to be processed by an external indexer. Doxygen will invoke an
external search engine pointed to by the SEARCHENGINE_URL option to obtain external search engine pointed to by the SEARCHENGINE_URL option to obtain
the search results. Doxygen ships with an example indexer (doxyindexer) and the search results. Doxygen ships with an example indexer (doxyindexer) and
search engine (doxysearch.cgi) which are based on the open source search engine search engine (doxysearch.cgi) which are based on the open source search
library Xapian. See the manual for configuration details. engine library Xapian. See the manual for configuration details.
' defval='0' depends='SEARCHENGINE'/> ' defval='0' depends='SEARCHENGINE'/>
<option type='string' id='SEARCHENGINE_URL' docs=' <option type='string' id='SEARCHENGINE_URL' docs='
The SEARCHENGINE_URL should point to a search engine hosted by a web server The SEARCHENGINE_URL should point to a search engine hosted by a web server
......
...@@ -29,11 +29,14 @@ def parseOption(node): ...@@ -29,11 +29,14 @@ def parseOption(node):
defval = node.getAttribute('defval') defval = node.getAttribute('defval')
adefval = node.getAttribute('altdefval') adefval = node.getAttribute('altdefval')
depends = node.getAttribute('depends') depends = node.getAttribute('depends')
setting = node.getAttribute('setting')
# replace \ by \\, replace " by \", and ' ' by a newline with end string and start string at next line # replace \ by \\, replace " by \", and ' ' by a newline with end string and start string at next line
docC = doc.strip().replace('\\','\\\\').replace('"','\\"').replace(' ','\\n"\n "') docC = doc.strip().replace('\\','\\\\').replace('"','\\"').replace(' ','\\n"\n "')
if len(setting)>0:
print "#if %s" % (setting)
print " //----" print " //----"
if type=='bool': if type=='bool':
if len(adefval)>0: if len(adefval)>0:
enabled = adefval enabled = adefval
elif defval=='1': elif defval=='1':
enabled = "TRUE" enabled = "TRUE"
...@@ -94,6 +97,8 @@ def parseOption(node): ...@@ -94,6 +97,8 @@ def parseOption(node):
print " cl->setWidgetType(ConfigList::FileAndDir);" print " cl->setWidgetType(ConfigList::FileAndDir);"
elif type=='obsolete': elif type=='obsolete':
print " cfg->addObsolete(\"%s\");" % (name) print " cfg->addObsolete(\"%s\");" % (name)
if len(setting)>0:
print "#endif"
...@@ -121,6 +126,7 @@ def main(): ...@@ -121,6 +126,7 @@ def main():
print "#include \"configoptions.h\"" print "#include \"configoptions.h\""
print "#include \"config.h\"" print "#include \"config.h\""
print "#include \"portable.h\"" print "#include \"portable.h\""
print "#include \"settings.h\""
print "" print ""
print "void addConfigOptions(Config *cfg)" print "void addConfigOptions(Config *cfg)"
print "{" print "{"
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "configoptions.h" #include "configoptions.h"
#include "config.h" #include "config.h"
#include "portable.h" #include "portable.h"
#include "settings.h"
void addConfigOptions(Config *cfg) void addConfigOptions(Config *cfg)
{ {
...@@ -90,9 +91,9 @@ void addConfigOptions(Config *cfg) ...@@ -90,9 +91,9 @@ void addConfigOptions(Config *cfg)
"Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,\n" "Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,\n"
"Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,\n" "Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,\n"
"Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English\n" "Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English\n"
"messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian, Persian,\n" "messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian,\n"
"Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,\n" "Persian, Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic,\n"
"Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.", "Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.",
"English" "English"
); );
ce->addValue("Afrikaans"); ce->addValue("Afrikaans");
...@@ -366,10 +367,10 @@ void addConfigOptions(Config *cfg) ...@@ -366,10 +367,10 @@ void addConfigOptions(Config *cfg)
//---- //----
cb = cfg->addBool( cb = cfg->addBool(
"AUTOLINK_SUPPORT", "AUTOLINK_SUPPORT",
"When enabled doxygen tries to link words that correspond to documented classes,\n" "When enabled doxygen tries to link words that correspond to documented\n"
"or namespaces to their corresponding documentation. Such a link can be\n" "classes, or namespaces to their corresponding documentation. Such a link can\n"
"prevented in individual cases by by putting a % sign in front of the word or\n" "be prevented in individual cases by by putting a % sign in front of the word\n"
"globally by setting AUTOLINK_SUPPORT to NO.", "or globally by setting AUTOLINK_SUPPORT to NO.",
TRUE TRUE
); );
//---- //----
...@@ -1033,8 +1034,10 @@ void addConfigOptions(Config *cfg) ...@@ -1033,8 +1034,10 @@ void addConfigOptions(Config *cfg)
"is the value of the INPUT_FILTER tag, and <input-file> is the name of an\n" "is the value of the INPUT_FILTER tag, and <input-file> is the name of an\n"
"input file. Doxygen will then use the output that the filter program writes\n" "input file. Doxygen will then use the output that the filter program writes\n"
"to standard output.\n" "to standard output.\n"
"If FILTER_PATTERNS is specified, this tag will be\n" "If FILTER_PATTERNS is specified, this tag will be ignored.\n"
"ignored." "Note that the filter must not add or remove lines; it is applied before the\n"
"code is scanned, but not when the output code is generated. If lines are added\n"
"or removed, the anchors will not be placed correctly."
); );
cs->setWidgetType(ConfigString::File); cs->setWidgetType(ConfigString::File);
//---- //----
...@@ -1071,9 +1074,9 @@ void addConfigOptions(Config *cfg) ...@@ -1071,9 +1074,9 @@ void addConfigOptions(Config *cfg)
cs = cfg->addString( cs = cfg->addString(
"USE_MDFILE_AS_MAINPAGE", "USE_MDFILE_AS_MAINPAGE",
"If the USE_MD_FILE_AS_MAINPAGE tag refers to the name of a markdown file that\n" "If the USE_MD_FILE_AS_MAINPAGE tag refers to the name of a markdown file that\n"
"is part of the input, its contents will be placed on the main page (index.html).\n" "is part of the input, its contents will be placed on the main page\n"
"This can be useful if you have a project on for instance GitHub and want reuse\n" "(index.html). This can be useful if you have a project on for instance GitHub\n"
"the introduction page also for the doxygen output." "and want reuse the introduction page also for the doxygen output."
); );
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
cfg->addInfo("Source Browser","configuration options related to source browsing"); cfg->addInfo("Source Browser","configuration options related to source browsing");
...@@ -1148,6 +1151,26 @@ void addConfigOptions(Config *cfg) ...@@ -1148,6 +1151,26 @@ void addConfigOptions(Config *cfg)
"which an include is specified. Set to NO to disable this.", "which an include is specified. Set to NO to disable this.",
TRUE TRUE
); );
#if USE_LIBCLANG
//----
cb = cfg->addBool(
"CLANG_ASSISTED_PARSING",
"If CLANG_ASSISTED_PARSING is set to YES, then doxygen will use the clang parser\n"
"for better parsing at the cost of reduced performance. This can be particularly\n"
"helpful with template rich C++ code for which doxygen's built-in\n"
"parser lacks the necessairy type information.",
FALSE
);
#endif
//----
cs = cfg->addString(
"CLANG_OPTIONS",
"If clang assisted parsing is enabled you can provide the compiler with command\n"
"line options that you would normally use when invoking the compiler. Note that\n"
"the include paths will be set by doxygen based on the files and directory\n"
"specified at INPUT and INCLUDE_PATH."
);
cs->addDependency("CLANG_ASSISTED_PARSING");
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
cfg->addInfo("Index","configuration options related to the alphabetical class index"); cfg->addInfo("Index","configuration options related to the alphabetical class index");
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -1698,8 +1721,8 @@ void addConfigOptions(Config *cfg) ...@@ -1698,8 +1721,8 @@ void addConfigOptions(Config *cfg)
"which needs to be processed by an external indexer. Doxygen will invoke an\n" "which needs to be processed by an external indexer. Doxygen will invoke an\n"
"external search engine pointed to by the SEARCHENGINE_URL option to obtain\n" "external search engine pointed to by the SEARCHENGINE_URL option to obtain\n"
"the search results. Doxygen ships with an example indexer (doxyindexer) and\n" "the search results. Doxygen ships with an example indexer (doxyindexer) and\n"
"search engine (doxysearch.cgi) which are based on the open source search engine\n" "search engine (doxysearch.cgi) which are based on the open source search\n"
"library Xapian. See the manual for configuration details.", "engine library Xapian. See the manual for configuration details.",
FALSE FALSE
); );
cb->addDependency("SEARCHENGINE"); cb->addDependency("SEARCHENGINE");
......
...@@ -394,6 +394,16 @@ void Definition::setName(const char *name) ...@@ -394,6 +394,16 @@ void Definition::setName(const char *name)
m_name = name; m_name = name;
} }
void Definition::setId(const char *id)
{
if (id==0) return;
if (Doxygen::clangUsrMap)
{
//printf("Definition::setId '%s'->'%s'\n",id,m_name.data());
Doxygen::clangUsrMap->insert(id,this);
}
}
void Definition::addSectionsToDefinition(QList<SectionInfo> *anchorList) void Definition::addSectionsToDefinition(QList<SectionInfo> *anchorList)
{ {
if (!anchorList) return; if (!anchorList) return;
...@@ -798,12 +808,12 @@ bool readCodeFragment(const char *fileName, ...@@ -798,12 +808,12 @@ bool readCodeFragment(const char *fileName,
} }
// copy until end of line // copy until end of line
result+=c; result+=c;
startLine=lineNr;
if (c==':') if (c==':')
{ {
result+=cn; result+=cn;
if (cn=='\n') lineNr++; if (cn=='\n') lineNr++;
} }
startLine=lineNr;
const int maxLineLength=4096; const int maxLineLength=4096;
char lineStr[maxLineLength]; char lineStr[maxLineLength];
do do
...@@ -852,6 +862,7 @@ bool readCodeFragment(const char *fileName, ...@@ -852,6 +862,7 @@ bool readCodeFragment(const char *fileName,
} }
} }
result = transcodeCharacterStringToUTF8(result); result = transcodeCharacterStringToUTF8(result);
//fprintf(stderr,"readCodeFragement(%d-%d)=%s\n",startLine,endLine,result.data());
return found; return found;
} }
......
...@@ -265,6 +265,9 @@ class Definition : public DefinitionIntf, public LockableObj ...@@ -265,6 +265,9 @@ class Definition : public DefinitionIntf, public LockableObj
/*! Sets a new \a name for the definition */ /*! Sets a new \a name for the definition */
void setName(const char *name); void setName(const char *name);
/*! Sets a unique id for the symbol. Used for libclang integration. */
void setId(const char *name);
/*! Sets the documentation of this definition to \a d. */ /*! Sets the documentation of this definition to \a d. */
virtual void setDocumentation(const char *d,const char *docFile,int docLine,bool stripWhiteSpace=TRUE); virtual void setDocumentation(const char *d,const char *docFile,int docLine,bool stripWhiteSpace=TRUE);
......
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
#ifndef DIAGRAM_H #ifndef DIAGRAM_H
#define DIAGRAM_H #define DIAGRAM_H
#include <qglobal.h>
class ClassDef; class ClassDef;
class TreeDiagram; class TreeDiagram;
class FTextStream; class FTextStream;
......
...@@ -276,9 +276,6 @@ class DocbookCodeGenerator : public CodeOutputInterface ...@@ -276,9 +276,6 @@ class DocbookCodeGenerator : public CodeOutputInterface
if (extRef) m_external=extRef; if (extRef) m_external=extRef;
} }
} }
void linkableSymbol(int, const char *,Definition *,Definition *)
{
}
void setCurrentDoc(Definition *,const char *,bool) void setCurrentDoc(Definition *,const char *,bool)
{ {
} }
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <qcstring.h> #include <qcstring.h>
#include <qlist.h> #include <qlist.h>
#include <stdio.h>
#include "htmlattrib.h" #include "htmlattrib.h"
class Definition; class Definition;
......
...@@ -92,29 +92,37 @@ static const char svgZoomHeader[] = ...@@ -92,29 +92,37 @@ static const char svgZoomHeader[] =
; ;
static const char svgZoomFooter[] = static const char svgZoomFooter[] =
// navigation panel
" <g id=\"navigator\" transform=\"translate(0 0)\" fill=\"#404254\">\n" " <g id=\"navigator\" transform=\"translate(0 0)\" fill=\"#404254\">\n"
" <rect fill=\"#f2f5e9\" fill-opacity=\"0.5\" stroke=\"#606060\" stroke-width=\".5\" x=\"0\" y=\"0\" width=\"60\" height=\"60\"/>\n" " <rect fill=\"#f2f5e9\" fill-opacity=\"0.5\" stroke=\"#606060\" stroke-width=\".5\" x=\"0\" y=\"0\" width=\"60\" height=\"60\"/>\n"
// zoom in
" <use id=\"zoomplus\" xlink:href=\"#zoomPlus\" x=\"17\" y=\"9\" onmousedown=\"handleZoom(evt,'in')\"/>\n" " <use id=\"zoomplus\" xlink:href=\"#zoomPlus\" x=\"17\" y=\"9\" onmousedown=\"handleZoom(evt,'in')\"/>\n"
// zoom out
" <use id=\"zoomminus\" xlink:href=\"#zoomMin\" x=\"42\" y=\"9\" onmousedown=\"handleZoom(evt,'out')\"/>\n" " <use id=\"zoomminus\" xlink:href=\"#zoomMin\" x=\"42\" y=\"9\" onmousedown=\"handleZoom(evt,'out')\"/>\n"
// reset zoom
" <use id=\"reset\" xlink:href=\"#resetDef\" x=\"30\" y=\"36\" onmousedown=\"handleReset()\"/>\n" " <use id=\"reset\" xlink:href=\"#resetDef\" x=\"30\" y=\"36\" onmousedown=\"handleReset()\"/>\n"
// arrow up
" <g id=\"arrowUp\" xlink:href=\"#dirArrow\" transform=\"translate(30 24)\" onmousedown=\"handlePan(0,-1)\">\n" " <g id=\"arrowUp\" xlink:href=\"#dirArrow\" transform=\"translate(30 24)\" onmousedown=\"handlePan(0,-1)\">\n"
" <use xlink:href=\"#rim\" fill=\"#404040\">\n" " <use xlink:href=\"#rim\" fill=\"#404040\">\n"
" <set attributeName=\"fill\" to=\"#808080\" begin=\"arrowUp.mouseover\" end=\"arrowUp.mouseout\"/>\n" " <set attributeName=\"fill\" to=\"#808080\" begin=\"arrowUp.mouseover\" end=\"arrowUp.mouseout\"/>\n"
" </use>\n" " </use>\n"
" <path fill=\"none\" stroke=\"white\" stroke-width=\"1.5\" d=\"M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5\"/>\n" " <path fill=\"none\" stroke=\"white\" stroke-width=\"1.5\" d=\"M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5\"/>\n"
" </g>\n" " </g>\n"
// arrow right
" <g id=\"arrowRight\" xlink:href=\"#dirArrow\" transform=\"rotate(90) translate(36 -43)\" onmousedown=\"handlePan(1,0)\">\n" " <g id=\"arrowRight\" xlink:href=\"#dirArrow\" transform=\"rotate(90) translate(36 -43)\" onmousedown=\"handlePan(1,0)\">\n"
" <use xlink:href=\"#rim\" fill=\"#404040\">\n" " <use xlink:href=\"#rim\" fill=\"#404040\">\n"
" <set attributeName=\"fill\" to=\"#808080\" begin=\"arrowRight.mouseover\" end=\"arrowRight.mouseout\"/>\n" " <set attributeName=\"fill\" to=\"#808080\" begin=\"arrowRight.mouseover\" end=\"arrowRight.mouseout\"/>\n"
" </use>\n" " </use>\n"
" <path fill=\"none\" stroke=\"white\" stroke-width=\"1.5\" d=\"M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5\"/>\n" " <path fill=\"none\" stroke=\"white\" stroke-width=\"1.5\" d=\"M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5\"/>\n"
" </g>\n" " </g>\n"
// arrow down
" <g id=\"arrowDown\" xlink:href=\"#dirArrow\" transform=\"rotate(180) translate(-30 -48)\" onmousedown=\"handlePan(0,1)\">\n" " <g id=\"arrowDown\" xlink:href=\"#dirArrow\" transform=\"rotate(180) translate(-30 -48)\" onmousedown=\"handlePan(0,1)\">\n"
" <use xlink:href=\"#rim\" fill=\"#404040\">\n" " <use xlink:href=\"#rim\" fill=\"#404040\">\n"
" <set attributeName=\"fill\" to=\"#808080\" begin=\"arrowDown.mouseover\" end=\"arrowDown.mouseout\"/>\n" " <set attributeName=\"fill\" to=\"#808080\" begin=\"arrowDown.mouseover\" end=\"arrowDown.mouseout\"/>\n"
" </use>\n" " </use>\n"
" <path fill=\"none\" stroke=\"white\" stroke-width=\"1.5\" d=\"M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5\"/>\n" " <path fill=\"none\" stroke=\"white\" stroke-width=\"1.5\" d=\"M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5\"/>\n"
" </g>\n" " </g>\n"
// arrow left
" <g id=\"arrowLeft\" xlink:href=\"#dirArrow\" transform=\"rotate(270) translate(-36 17)\" onmousedown=\"handlePan(-1,0)\">\n" " <g id=\"arrowLeft\" xlink:href=\"#dirArrow\" transform=\"rotate(270) translate(-36 17)\" onmousedown=\"handlePan(-1,0)\">\n"
" <use xlink:href=\"#rim\" fill=\"#404040\">\n" " <use xlink:href=\"#rim\" fill=\"#404040\">\n"
" <set attributeName=\"fill\" to=\"#808080\" begin=\"arrowLeft.mouseover\" end=\"arrowLeft.mouseout\"/>\n" " <set attributeName=\"fill\" to=\"#808080\" begin=\"arrowLeft.mouseover\" end=\"arrowLeft.mouseout\"/>\n"
...@@ -122,15 +130,7 @@ static const char svgZoomFooter[] = ...@@ -122,15 +130,7 @@ static const char svgZoomFooter[] =
" <path fill=\"none\" stroke=\"white\" stroke-width=\"1.5\" d=\"M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5\"/>\n" " <path fill=\"none\" stroke=\"white\" stroke-width=\"1.5\" d=\"M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5\"/>\n"
" </g>\n" " </g>\n"
" </g>\n" " </g>\n"
/* // link to orginial SVG
" <svg viewBox=\"0 0 25 25\" width=\"100%\" height=\"30px\" preserveAspectRatio=\"xMaxYMin meet\"> \n"
" <g id=\"printButton\" transform=\"scale(0.4 0.4)\" onmousedown=\"handlePrint(evt)\">\n"
" <rect height=\"23.33753581\" id=\"paper\" rx=\"2\" style=\"fill:#f2f5e9;fill-rule:evenodd;stroke:#111111;stroke-width:3.224;stroke-linejoin:round;\" transform=\"matrix(1.000000,0.000000,-0.339266,0.940691,0.000000,0.000000)\" width=\"25.55231285\" x=\"26.69387353\" y=\"7.36162977\"/>\n"
" <rect height=\"26.272097\" id=\"body\" rx=\"2\" style=\"fill:#404040;fill-rule:evenodd;stroke:#111111;stroke-width:3.125;stroke-linejoin:round;\" width=\"50\" x=\"4.5295201\" y=\"27.078951\"/>\n"
" <rect height=\"8.27750969\" id=\"tray\" style=\"fill:#d2d5c9;fill-rule:evenodd;stroke:#111111;stroke-width:3.125;stroke-linecap:round;stroke-linejoin:round;\" width=\"40\" x=\"10.28778839\" y=\"44.96812282\"/>\n"
" </g>\n"
" </svg>\n"
*/
" <svg viewBox=\"0 0 15 15\" width=\"100%\" height=\"30px\" preserveAspectRatio=\"xMaxYMin meet\">\n" " <svg viewBox=\"0 0 15 15\" width=\"100%\" height=\"30px\" preserveAspectRatio=\"xMaxYMin meet\">\n"
" <g id=\"arrow_out\" transform=\"scale(0.3 0.3)\">\n" " <g id=\"arrow_out\" transform=\"scale(0.3 0.3)\">\n"
" <a xlink:href=\"$orgname\" target=\"_base\">\n" " <a xlink:href=\"$orgname\" target=\"_base\">\n"
......
This diff is collapsed.
...@@ -103,6 +103,7 @@ class Doxygen ...@@ -103,6 +103,7 @@ class Doxygen
static bool insideMainPage; static bool insideMainPage;
static FileNameDict *includeNameDict; static FileNameDict *includeNameDict;
static FileNameDict *exampleNameDict; static FileNameDict *exampleNameDict;
static QDict<void> inputPaths;
static FileNameDict *inputNameDict; static FileNameDict *inputNameDict;
static FileNameList *inputNameList; static FileNameList *inputNameList;
static FileNameDict *imageNameDict; static FileNameDict *imageNameDict;
...@@ -130,6 +131,7 @@ class Doxygen ...@@ -130,6 +131,7 @@ class Doxygen
static QTime runningTime; static QTime runningTime;
static SearchIndexIntf *searchIndex; static SearchIndexIntf *searchIndex;
static QDict<DefinitionIntf> *symbolMap; static QDict<DefinitionIntf> *symbolMap;
static QDict<Definition> *clangUsrMap;
static bool outputToWizard; static bool outputToWizard;
static QDict<int> *htmlDirMap; static QDict<int> *htmlDirMap;
static QCache<LookupInfo> *lookupCache; static QCache<LookupInfo> *lookupCache;
...@@ -161,6 +163,7 @@ void parseInput(); ...@@ -161,6 +163,7 @@ void parseInput();
void generateOutput(); void generateOutput();
void readAliases(); void readAliases();
void readFormulaRepository(); void readFormulaRepository();
void cleanUpDoxygen();
int readFileOrDirectory(const char *s, int readFileOrDirectory(const char *s,
FileNameList *fnList, FileNameList *fnList,
FileNameDict *fnDict, FileNameDict *fnDict,
...@@ -171,7 +174,8 @@ int readFileOrDirectory(const char *s, ...@@ -171,7 +174,8 @@ int readFileOrDirectory(const char *s,
StringDict *resultDict, StringDict *resultDict,
bool recursive, bool recursive,
bool errorIfNotExist=TRUE, bool errorIfNotExist=TRUE,
QDict<void> *killDict = 0 QDict<void> *killDict = 0,
QDict<void> *paths = 0
); );
int readDir(QFileInfo *fi, int readDir(QFileInfo *fi,
FileNameList *fnList, FileNameList *fnList,
......
...@@ -92,7 +92,7 @@ For doxygen specific concepts the following subclasses are available ...@@ -92,7 +92,7 @@ For doxygen specific concepts the following subclasses are available
- GroupDef: for storing grouping related data - GroupDef: for storing grouping related data
- PageDef: for storing page related data - PageDef: for storing page related data
Finally the data for members of classes, namespaces, and files is stored is Finally the data for members of classes, namespaces, and files is stored in
the subclass MemberDef. the subclass MemberDef.
Producing output Producing output
......
...@@ -18,7 +18,7 @@ TEMPLATE = app.t ...@@ -18,7 +18,7 @@ TEMPLATE = app.t
CONFIG = console warn_on $extraopts CONFIG = console warn_on $extraopts
HEADERS = doxygen.h HEADERS = doxygen.h
SOURCES = main.cpp SOURCES = main.cpp
unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread %%SQLITE3_LIBS%% unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread %%SQLITE3_LIBS%% %%LIBCLANG_LIBS%%
win32:INCLUDEPATH += . win32:INCLUDEPATH += .
win32-mingw:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread win32-mingw:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread
win32-msvc:LIBS += qtools.lib md5.lib doxygen.lib doxycfg.lib shell32.lib iconv.lib win32-msvc:LIBS += qtools.lib md5.lib doxygen.lib doxycfg.lib shell32.lib iconv.lib
...@@ -26,7 +26,7 @@ win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\lib ...@@ -26,7 +26,7 @@ win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\lib
win32-borland:LIBS += qtools.lib md5.lib doxygen.lib doxycfg.lib shell32.lib iconv.lib win32-borland:LIBS += qtools.lib md5.lib doxygen.lib doxycfg.lib shell32.lib iconv.lib
win32-borland:TMAKE_LFLAGS += -L..\lib -L$(BCB)\lib\psdk win32-borland:TMAKE_LFLAGS += -L..\lib -L$(BCB)\lib\psdk
win32:TMAKE_CXXFLAGS += -DQT_NODLL win32:TMAKE_CXXFLAGS += -DQT_NODLL
win32-g++:LIBS = -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -liconv -lpthread %%SQLITE3_LIBS%% -Wl,--as-needed -lole32 win32-g++:LIBS = -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -liconv -lpthread %%SQLITE3_LIBS%% %%LIBCLANG_LIBS%% -Wl,--as-needed -lole32
win32-g++:TMAKE_CXXFLAGS += -fno-exceptions -fno-rtti win32-g++:TMAKE_CXXFLAGS += -fno-exceptions -fno-rtti
INCLUDEPATH += ../qtools ../libmd5 . INCLUDEPATH += ../qtools ../libmd5 .
DESTDIR = ../bin DESTDIR = ../bin
......
...@@ -133,6 +133,7 @@ Entry::Entry(const Entry &e) ...@@ -133,6 +133,7 @@ Entry::Entry(const Entry &e)
hidden = e.hidden; hidden = e.hidden;
artificial = e.artificial; artificial = e.artificial;
groupDocType = e.groupDocType; groupDocType = e.groupDocType;
id = e.id;
m_parent = e.m_parent; m_parent = e.m_parent;
m_sublist = new QList<Entry>; m_sublist = new QList<Entry>;
...@@ -259,6 +260,7 @@ void Entry::reset() ...@@ -259,6 +260,7 @@ void Entry::reset()
subGrouping = TRUE; subGrouping = TRUE;
protection = Public; protection = Public;
groupDocType = GROUPDOC_NORMAL; groupDocType = GROUPDOC_NORMAL;
id.resize(0);
m_sublist->clear(); m_sublist->clear();
extends->clear(); extends->clear();
groups->clear(); groups->clear();
......
...@@ -267,6 +267,7 @@ class Entry ...@@ -267,6 +267,7 @@ class Entry
bool hidden; //!< does this represent an entity that is hidden from the output bool hidden; //!< does this represent an entity that is hidden from the output
bool artificial; //!< Artificially introduced item bool artificial; //!< Artificially introduced item
GroupDocType groupDocType; GroupDocType groupDocType;
QCString id; //!< libclang id
static int num; //!< counts the total number of entries static int num; //!< counts the total number of entries
......
...@@ -41,6 +41,8 @@ ...@@ -41,6 +41,8 @@
#include "membergroup.h" #include "membergroup.h"
#include "dirdef.h" #include "dirdef.h"
#include "config.h" #include "config.h"
#include "clangparser.h"
#include "settings.h"
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -794,7 +796,7 @@ void FileDef::writeQuickMemberLinks(OutputList &ol,MemberDef *currentMd) const ...@@ -794,7 +796,7 @@ void FileDef::writeQuickMemberLinks(OutputList &ol,MemberDef *currentMd) const
/*! Write a source listing of this file to the output */ /*! Write a source listing of this file to the output */
void FileDef::writeSource(OutputList &ol) void FileDef::writeSource(OutputList &ol)
{ {
static bool generateTreeView = Config_getBool("GENERATE_TREEVIEW"); static bool generateTreeView = Config_getBool("GENERATE_TREEVIEW");
static bool filterSourceFiles = Config_getBool("FILTER_SOURCE_FILES"); static bool filterSourceFiles = Config_getBool("FILTER_SOURCE_FILES");
static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE"); static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE");
QCString title = docname; QCString title = docname;
...@@ -843,14 +845,29 @@ void FileDef::writeSource(OutputList &ol) ...@@ -843,14 +845,29 @@ void FileDef::writeSource(OutputList &ol)
if (latexSourceCode) ol.enable(OutputGenerator::Latex); if (latexSourceCode) ol.enable(OutputGenerator::Latex);
} }
ParserInterface *pIntf = Doxygen::parserManager->getParser(getDefFileExtension()); #if USE_LIBCLANG
pIntf->resetCodeParserState(); static bool clangAssistedParsing = Config_getBool("CLANG_ASSISTED_PARSING");
ol.startCodeFragment(); if (clangAssistedParsing &&
pIntf->parseCode(ol,0, (getLanguage()==SrcLangExt_Cpp || getLanguage()==SrcLangExt_ObjC))
fileToString(absFilePath(),filterSourceFiles,TRUE), {
FALSE,0,this ol.startCodeFragment();
); ClangParser::instance()->start(absFilePath());
ol.endCodeFragment(); ClangParser::instance()->writeSources(ol,this);
ClangParser::instance()->finish();
ol.endCodeFragment();
}
else
#endif
{
ParserInterface *pIntf = Doxygen::parserManager->getParser(getDefFileExtension());
pIntf->resetCodeParserState();
ol.startCodeFragment();
pIntf->parseCode(ol,0,
fileToString(absFilePath(),filterSourceFiles,TRUE),
FALSE,0,this
);
ol.endCodeFragment();
}
ol.endContents(); ol.endContents();
endFileWithNavPath(this,ol); endFileWithNavPath(this,ol);
ol.enableAll(); ol.enableAll();
...@@ -1659,7 +1676,7 @@ void FileDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QCS ...@@ -1659,7 +1676,7 @@ void FileDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QCS
} }
else else
{ {
ml->writeDeclarations(ol,0,0,this,0,title,0); ml->writeDeclarations(ol,0,0,this,0,title,0,definitionType());
} }
} }
} }
......
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
class CodeOutputInterface; class CodeOutputInterface;
class FileDef; class FileDef;
class MemberDef; class MemberDef;
class QCString;
class Definition;
void parseFortranCode(CodeOutputInterface &,const char *,const QCString &, void parseFortranCode(CodeOutputInterface &,const char *,const QCString &,
bool ,const char *,FileDef *fd, bool ,const char *,FileDef *fd,
......
...@@ -368,16 +368,14 @@ static void writeMultiLineCodeLink(CodeOutputInterface &ol, ...@@ -368,16 +368,14 @@ static void writeMultiLineCodeLink(CodeOutputInterface &ol,
} }
} }
static const char* fileLocation() static QCString fileLocation()
{ {
const int maxLen=4096; QCString result = g_sourceFileDef?g_sourceFileDef->absFilePath():QCString("[unknown]");
static char floc[maxLen+1]; result+=":"+QCString().setNum(g_yyLineNr);
floc[maxLen]='\0'; result+=":"+QCString().setNum(1);
snprintf(floc,maxLen,"%s:%d:%d",g_sourceFileDef?g_sourceFileDef->absFilePath().data():"[unknown]",g_yyLineNr,1); return result;
return floc;
} }
/** /**
generates dictionay entries that are used if REFERENCED_BY_RELATION ... options are set generates dictionay entries that are used if REFERENCED_BY_RELATION ... options are set
(e.g. the "referenced by ..." list after the function documentation) (e.g. the "referenced by ..." list after the function documentation)
...@@ -558,8 +556,6 @@ static bool getLink(UseSDict *usedict, // dictonary with used modules ...@@ -558,8 +556,6 @@ static bool getLink(UseSDict *usedict, // dictonary with used modules
{ {
addDocCrossReference(g_currentMemberDef,md); addDocCrossReference(g_currentMemberDef,md);
} }
ol.linkableSymbol(g_yyLineNr,md->name(),md,
g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
writeMultiLineCodeLink(ol,md->getReference(), writeMultiLineCodeLink(ol,md->getReference(),
md->getOutputFileBase(), md->getOutputFileBase(),
md->anchor(), md->anchor(),
...@@ -588,7 +584,6 @@ static void generateLink(CodeOutputInterface &ol, char *lname) ...@@ -588,7 +584,6 @@ static void generateLink(CodeOutputInterface &ol, char *lname)
} }
else else
{ // write type or interface link { // write type or interface link
ol.linkableSymbol(g_yyLineNr, tmp, cd, g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),cd->anchor(),tmp); writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),cd->anchor(),tmp);
addToSearchIndex(tmp.data()); addToSearchIndex(tmp.data());
} }
...@@ -601,7 +596,6 @@ static void generateLink(CodeOutputInterface &ol, char *lname) ...@@ -601,7 +596,6 @@ static void generateLink(CodeOutputInterface &ol, char *lname)
else else
{ {
// nothing found, just write out the word // nothing found, just write out the word
ol.linkableSymbol(g_yyLineNr, tmp, 0, g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
//startFontClass("charliteral"); //test //startFontClass("charliteral"); //test
codifyLines(tmp); codifyLines(tmp);
//endFontClass(); //test //endFontClass(); //test
......
...@@ -893,11 +893,13 @@ protected { ...@@ -893,11 +893,13 @@ protected {
pushBuffer(inputStringSemi); pushBuffer(inputStringSemi);
} }
<Initialization,ArrayInitializer>"[" |
<Initialization,ArrayInitializer>"(/" { initializer+=yytext; <Initialization,ArrayInitializer>"(/" { initializer+=yytext;
initializerArrayScope++; initializerArrayScope++;
BEGIN(ArrayInitializer); // initializer may contain comma BEGIN(ArrayInitializer); // initializer may contain comma
} }
<ArrayInitializer>"/)" { initializer+=yytext; <ArrayInitializer>"]" |
<ArrayInitializer>"/)" { initializer+=yytext;
initializerArrayScope--; initializerArrayScope--;
if(initializerArrayScope<=0) if(initializerArrayScope<=0)
{ {
......
...@@ -1465,7 +1465,7 @@ void GroupDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QC ...@@ -1465,7 +1465,7 @@ void GroupDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QC
} }
if (ml) if (ml)
{ {
ml->writeDeclarations(ol,0,0,0,this,title,0); ml->writeDeclarations(ol,0,0,0,this,title,0,definitionType());
} }
} }
......
...@@ -15,6 +15,9 @@ ...@@ -15,6 +15,9 @@
#ifndef _HTMLATTRIB_H #ifndef _HTMLATTRIB_H
#define _HTMLATTRIB_H #define _HTMLATTRIB_H
#include <qcstring.h>
#include <qlist.h>
/*! A Html option. A name, value pair */ /*! A Html option. A name, value pair */
struct HtmlAttrib struct HtmlAttrib
{ {
......
...@@ -1278,7 +1278,7 @@ void HtmlCodeGenerator::codify(const char *str) ...@@ -1278,7 +1278,7 @@ void HtmlCodeGenerator::codify(const char *str)
m_t << "\\"; m_t << "\\";
m_col++; m_col++;
break; break;
default: m_t << c; default: p=writeUtf8Char(m_t,p-1);
m_col++; m_col++;
break; break;
} }
...@@ -1403,11 +1403,6 @@ void HtmlCodeGenerator::writeCodeAnchor(const char *anchor) ...@@ -1403,11 +1403,6 @@ void HtmlCodeGenerator::writeCodeAnchor(const char *anchor)
if (m_streamSet) m_t << "<a name=\"" << anchor << "\"></a>"; if (m_streamSet) m_t << "<a name=\"" << anchor << "\"></a>";
} }
void HtmlCodeGenerator::linkableSymbol(int,const char *,Definition *,Definition *)
{
}
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
HtmlGenerator::HtmlGenerator() : OutputGenerator() HtmlGenerator::HtmlGenerator() : OutputGenerator()
......
...@@ -47,7 +47,6 @@ class HtmlCodeGenerator : public CodeOutputInterface ...@@ -47,7 +47,6 @@ class HtmlCodeGenerator : public CodeOutputInterface
void startFontClass(const char *s); void startFontClass(const char *s);
void endFontClass(); void endFontClass();
void writeCodeAnchor(const char *anchor); void writeCodeAnchor(const char *anchor);
void linkableSymbol(int,const char *,Definition *,Definition *);
void setCurrentDoc(Definition *,const char *,bool) {} void setCurrentDoc(Definition *,const char *,bool) {}
void addWord(const char *,bool) {} void addWord(const char *,bool) {}
...@@ -109,9 +108,6 @@ class HtmlGenerator : public OutputGenerator ...@@ -109,9 +108,6 @@ class HtmlGenerator : public OutputGenerator
{ m_codeGen.endFontClass(); } { m_codeGen.endFontClass(); }
void writeCodeAnchor(const char *anchor) void writeCodeAnchor(const char *anchor)
{ m_codeGen.writeCodeAnchor(anchor); } { m_codeGen.writeCodeAnchor(anchor); }
void linkableSymbol(int line,const char *symName,
Definition *symDef,Definition *context)
{ m_codeGen.linkableSymbol(line,symName,symDef,context); }
// --------------------------- // ---------------------------
void setCurrentDoc(Definition *context,const char *anchor,bool isSourceFile); void setCurrentDoc(Definition *context,const char *anchor,bool isSourceFile);
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#define HTMLHELP_H #define HTMLHELP_H
#include <qstrlist.h> #include <qstrlist.h>
#include <qdict.h>
#include "index.h" #include "index.h"
#include "ftextstream.h" #include "ftextstream.h"
......
...@@ -339,7 +339,7 @@ bool setTranslator(const char *langName) ...@@ -339,7 +339,7 @@ bool setTranslator(const char *langName)
#ifdef LANG_UA #ifdef LANG_UA
else if (L_EQUAL("ukrainian")) else if (L_EQUAL("ukrainian"))
{ {
theTranslator=new TranslatorDecoder(new TranslatorUkrainian); theTranslator=new TranslatorUkrainian;
} }
#endif #endif
#ifdef LANG_GR #ifdef LANG_GR
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
* input used in their production; they are not affected by this license. * input used in their production; they are not affected by this license.
* *
*/ */
#include "htmlattrib.h"
#include <qfileinfo.h> #include <qfileinfo.h>
#include "latexdocvisitor.h" #include "latexdocvisitor.h"
#include "docparser.h" #include "docparser.h"
...@@ -26,7 +27,6 @@ ...@@ -26,7 +27,6 @@
#include "message.h" #include "message.h"
#include "parserintf.h" #include "parserintf.h"
#include "msc.h" #include "msc.h"
#include "htmlattrib.h"
#include "cite.h" #include "cite.h"
#include "filedef.h" #include "filedef.h"
#include "config.h" #include "config.h"
......
This diff is collapsed.
...@@ -267,7 +267,6 @@ class LatexGenerator : public OutputGenerator ...@@ -267,7 +267,6 @@ class LatexGenerator : public OutputGenerator
void endFontClass(); // {} void endFontClass(); // {}
void writeCodeAnchor(const char *) {} void writeCodeAnchor(const char *) {}
void linkableSymbol(int,const char *,Definition *,Definition *) {}
void setCurrentDoc(Definition *,const char *,bool) {} void setCurrentDoc(Definition *,const char *,bool) {}
void addWord(const char *,bool) {} void addWord(const char *,bool) {}
......
...@@ -19,6 +19,7 @@ CONFIG = console warn_on staticlib $extraopts ...@@ -19,6 +19,7 @@ CONFIG = console warn_on staticlib $extraopts
HEADERS = arguments.h \ HEADERS = arguments.h \
bufstr.h \ bufstr.h \
cite.h \ cite.h \
clangparser.h \
classdef.h \ classdef.h \
classlist.h \ classlist.h \
cmdmapper.h \ cmdmapper.h \
...@@ -179,6 +180,7 @@ SOURCES = arguments.cpp \ ...@@ -179,6 +180,7 @@ SOURCES = arguments.cpp \
ce_lex.cpp \ ce_lex.cpp \
ce_parse.cpp \ ce_parse.cpp \
cite.cpp \ cite.cpp \
clangparser.cpp \
classdef.cpp \ classdef.cpp \
classlist.cpp \ classlist.cpp \
cmdmapper.cpp \ cmdmapper.cpp \
......
...@@ -313,7 +313,7 @@ void ManGenerator::codify(const char *str) ...@@ -313,7 +313,7 @@ void ManGenerator::codify(const char *str)
case '\n': t << "\n"; firstCol=TRUE; col=0; break; case '\n': t << "\n"; firstCol=TRUE; col=0; break;
case '\\': t << "\\"; col++; break; case '\\': t << "\\"; col++; break;
case '\"': c = '\''; // no break! case '\"': c = '\''; // no break!
default: t << c; firstCol=FALSE; col++; break; default: p=writeUtf8Char(t,p-1); firstCol=FALSE; col++; break;
} }
} }
//printf("%s",str);fflush(stdout); //printf("%s",str);fflush(stdout);
......
...@@ -256,7 +256,6 @@ class ManGenerator : public OutputGenerator ...@@ -256,7 +256,6 @@ class ManGenerator : public OutputGenerator
void endLabels(); void endLabels();
void writeCodeAnchor(const char *) {} void writeCodeAnchor(const char *) {}
void linkableSymbol(int,const char *,Definition *,Definition *) {}
void setCurrentDoc(Definition *,const char *,bool) {} void setCurrentDoc(Definition *,const char *,bool) {}
void addWord(const char *,bool) {} void addWord(const char *,bool) {}
......
This diff is collapsed.
...@@ -391,6 +391,7 @@ void marshalEntry(StorageIntf *s,Entry *e) ...@@ -391,6 +391,7 @@ void marshalEntry(StorageIntf *s,Entry *e)
marshalBool(s,e->hidden); marshalBool(s,e->hidden);
marshalBool(s,e->artificial); marshalBool(s,e->artificial);
marshalInt(s,(int)e->groupDocType); marshalInt(s,(int)e->groupDocType);
marshalQCString(s,e->id);
} }
void marshalEntryTree(StorageIntf *s,Entry *e) void marshalEntryTree(StorageIntf *s,Entry *e)
...@@ -768,6 +769,7 @@ Entry * unmarshalEntry(StorageIntf *s) ...@@ -768,6 +769,7 @@ Entry * unmarshalEntry(StorageIntf *s)
e->hidden = unmarshalBool(s); e->hidden = unmarshalBool(s);
e->artificial = unmarshalBool(s); e->artificial = unmarshalBool(s);
e->groupDocType = (Entry::GroupDocType)unmarshalInt(s); e->groupDocType = (Entry::GroupDocType)unmarshalInt(s);
e->id = unmarshalQCString(s);
return e; return e;
} }
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -56,11 +56,12 @@ class MemberList : public QList<MemberDef> ...@@ -56,11 +56,12 @@ class MemberList : public QList<MemberDef>
void countDocMembers(bool countEnumValues=FALSE); void countDocMembers(bool countEnumValues=FALSE);
int countInheritableMembers(ClassDef *inheritedFrom) const; int countInheritableMembers(ClassDef *inheritedFrom) const;
void writePlainDeclarations(OutputList &ol, void writePlainDeclarations(OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, ClassDef *cd,NamespaceDef *nd,FileDef *fd,
GroupDef *gd,const DefinitionIntf::DefType compoundType,
ClassDef *inheritedFrom,const char *inheritId); ClassDef *inheritedFrom,const char *inheritId);
void writeDeclarations(OutputList &ol, void writeDeclarations(OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
const char *title,const char *subtitle, const char *title,const char *subtitle,const DefinitionIntf::DefType compoundType,
bool showEnumValues=FALSE,bool showInline=FALSE, bool showEnumValues=FALSE,bool showInline=FALSE,
ClassDef *inheritedFrom=0); ClassDef *inheritedFrom=0);
void writeDocumentation(OutputList &ol,const char *scopeName, void writeDocumentation(OutputList &ol,const char *scopeName,
......
...@@ -965,7 +965,7 @@ MemberList *NamespaceDef::getMemberList(MemberListType lt) const ...@@ -965,7 +965,7 @@ MemberList *NamespaceDef::getMemberList(MemberListType lt) const
void NamespaceDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QCString &title) void NamespaceDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QCString &title)
{ {
MemberList * ml = getMemberList(lt); MemberList * ml = getMemberList(lt);
if (ml) ml->writeDeclarations(ol,0,this,0,0,title,0); if (ml) ml->writeDeclarations(ol,0,this,0,0,title,0,DefinitionIntf::TypeNamespace);
} }
void NamespaceDef::writeMemberDocumentation(OutputList &ol,MemberListType lt,const QCString &title) void NamespaceDef::writeMemberDocumentation(OutputList &ol,MemberListType lt,const QCString &title)
......
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